aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--aoc/n1.lyx341
1 files changed, 233 insertions, 108 deletions
diff --git a/aoc/n1.lyx b/aoc/n1.lyx
index 186cd9a..53fc5b4 100644
--- a/aoc/n1.lyx
+++ b/aoc/n1.lyx
@@ -179,7 +179,26 @@ densidad de integración
Estos transistores se usan para aumentar los recursos del chip mediante
paralelismo y cachés, por lo que los programas limitados por CPU aumentaban
su velocidad de forma cuadrática sin cambios.
- No obstante, actualmente esto plantea varios problemas.
+ Por ejemplo, la empresa de procesadores Intel evoluciona sus diseños en
+ dos pasos: una fase
+\emph on
+\lang english
+tick
+\emph default
+\lang spanish
+ en la que disminuye el tamaño de los componentes, optimiza el diseño de
+ los núcleos y aprovecha el aumento en densidad de transistores para conseguir
+ mejor rendimiento y eficiencia energética, y una fase
+\emph on
+\lang english
+tock
+\emph default
+\lang spanish
+ en la que diseña una nueva arquitectura y amplia la ISA.
+\end_layout
+
+\begin_layout Standard
+No obstante, actualmente esto plantea varios problemas.
\end_layout
\begin_layout Section
@@ -417,6 +436,114 @@ disponibilidad
\end_layout
\begin_layout Section
+Medidas de rendimiento
+\end_layout
+
+\begin_layout Standard
+Podemos medir el rendimiento de un procesador por el tiempo de ejecución
+ de algún programa o su productividad o
+\emph on
+\lang english
+throughput
+\emph default
+\lang spanish
+ (operaciones de algún tipo por unidad de tiempo).
+ Se puede usar el tiempo de ejecución real, que incluye la sobrecarga de
+ todo el sistema, o el tiempo de CPU usado para el cálculo.
+ La
+\begin_inset Quotes cld
+\end_inset
+
+
+\series bold
+aceleración
+\series default
+
+\begin_inset Quotes crd
+\end_inset
+
+ de un procesador o un programa respecto a otro (funcionalmente equivalente)
+ es el tiempo de ejecución del segundo entre el del primero.
+ El
+\series bold
+ancho de banda
+\series default
+ es el trabajo total realizado en un tiempo determinado, y la
+\series bold
+latencia
+\series default
+ o
+\series bold
+tiempo de respuesta
+\series default
+ es el tiempo entre el inicio y el final de una operación.
+\end_layout
+
+\begin_layout Standard
+Los
+\series bold
+\emph on
+\lang english
+benchmarks
+\series default
+\emph default
+\lang spanish
+ son programas usados para comparar el rendimiento.
+ Hay de varios tipos:
+\emph on
+\lang english
+kernels
+\emph default
+\lang spanish
+ (como multiplicación de matrices), programas de juguete (como ordenación
+ de elementos),
+\emph on
+\lang english
+benchmarks
+\emph default
+\lang spanish
+ sintéticos (como Dhrystone) o suites de
+\emph on
+\lang english
+benchmarks
+\emph default
+\lang spanish
+ como SPEC06fp o TPC-C.
+\end_layout
+
+\begin_layout Standard
+La
+\series bold
+intensidad aritmética
+\series default
+ es el número de operaciones en coma flotante por byte u operando leído
+ de memoria para un cierto algoritmo.
+ El
+\series bold
+modelo de rendimiento
+\emph on
+\lang english
+Roofline
+\series default
+\emph default
+\lang spanish
+ consiste en medir el rendimiento de coma flotante en
+\series bold
+FLOPS
+\series default
+ (operaciones de punto flotante por segundo) en función de la intensidad
+ aritmética, midiendo así tanto el ancho de banda de memoria como el rendimiento
+ de punto flotante.
+\end_layout
+
+\begin_layout Standard
+Algunos aspectos relevantes son la frecuencia de reloj, el número de transistore
+s, el tamaño de la caché de cada nivel, la cantidad de memoria direccionable,
+ el ancho de banda del bus de memoria, el número de núcleos por chip, el
+ tamaño de la litografía y el tamaño de los operandos.
+\end_layout
+
+\begin_layout Section
Paralelismo
\end_layout
@@ -565,113 +692,7 @@ Los clústeres y centros de datos usan memoria distribuida entre los ordenadores
y vectorización SIMD.
\end_layout
-\begin_layout Section
-Medidas de rendimiento
-\end_layout
-
-\begin_layout Standard
-Podemos medir el rendimiento de un procesador por el tiempo de ejecución
- de algún programa o su productividad o
-\emph on
-\lang english
-throughput
-\emph default
-\lang spanish
- (operaciones de algún tipo por unidad de tiempo).
- Se puede usar el tiempo de ejecución real, que incluye la sobrecarga de
- todo el sistema, o el tiempo de CPU usado para el cálculo.
- La
-\begin_inset Quotes cld
-\end_inset
-
-
-\series bold
-aceleración
-\series default
-
-\begin_inset Quotes crd
-\end_inset
-
- de un procesador o un programa respecto a otro (funcionalmente equivalente)
- es el tiempo de ejecución del segundo entre el del primero.
- El
-\series bold
-ancho de banda
-\series default
- es el trabajo total realizado en un tiempo determinado, y la
-\series bold
-latencia
-\series default
- o
-\series bold
-tiempo de respuesta
-\series default
- es el tiempo entre el inicio y el final de una operación.
-\end_layout
-
-\begin_layout Standard
-Los
-\series bold
-\emph on
-\lang english
-benchmarks
-\series default
-\emph default
-\lang spanish
- son programas usados para comparar el rendimiento.
- Hay de varios tipos:
-\emph on
-\lang english
-kernels
-\emph default
-\lang spanish
- (como multiplicación de matrices), programas de juguete (como ordenación
- de elementos),
-\emph on
-\lang english
-benchmarks
-\emph default
-\lang spanish
- sintéticos (como Dhrystone) o suites de
-\emph on
-\lang english
-benchmarks
-\emph default
-\lang spanish
- como SPEC06fp o TPC-C.
-\end_layout
-
-\begin_layout Standard
-La
-\series bold
-intensidad aritmética
-\series default
- es el número de operaciones en coma flotante por byte u operando leído
- de memoria para un cierto algoritmo.
- El
-\series bold
-modelo de rendimiento
-\emph on
-Roofline
-\series default
-\emph default
- consiste en medir el rendimiento de coma flotante en
-\series bold
-FLOPS
-\series default
- (operaciones de punto flotante por segundo) en función de la intensidad
- aritmética, midiendo así tanto el ancho de banda de memoria como el rendimiento
- de punto flotante.
-\end_layout
-
-\begin_layout Standard
-Algunos aspectos relevantes son la frecuencia de reloj, el número de transistore
-s, el tamaño de la caché de cada nivel, la cantidad de memoria direccionable,
- el ancho de banda del bus de memoria, el número de núcleos por chip, el
- tamaño de la litografía y el tamaño de los operandos.
-\end_layout
-
-\begin_layout Section
+\begin_layout Subsection
Límites del paralelismo
\end_layout
@@ -756,5 +777,109 @@ e aumentar la cantidad total de cálculos a cambio de disminuir la parte
secuencial.
\end_layout
+\begin_layout Subsection
+Software paralelo
+\end_layout
+
+\begin_layout Standard
+Podemos usar
+\series bold
+paralelismo de datos
+\series default
+, en que se ejecuta una misma tarea en varios datos a la vez, y
+\series bold
+paralelismo de tareas
+\series default
+, en que se ejecutan distintas tareas a la vez.
+ No obstante, hay que tener en cuenta que comenzar un hilo o proceso, comunicar
+ datos compartidos, sincronizar o hacer computación redundante tiene un
+ coste en el rango de milisegundos.
+\end_layout
+
+\begin_layout Standard
+Debemos balancear la carga para evitar que haya núcleos rápidos esperando
+ a otros lentos y debemos gestionar los recursos compartidos de forma segura,
+ considerando estas cuestiones a la hora de decidir la granularidad de las
+ tareas y modelar el rendimiento.
+\end_layout
+
+\begin_layout Section
+Tipos de ordenadores
+\end_layout
+
+\begin_layout Standard
+Distinguimos:
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Ordenadores empotrados
+\series default
+, usados para controlar dispositivos, pequeños y baratos.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Móviles
+\series default
+,
+\emph on
+\lang english
+tablets
+\emph default
+\lang spanish
+, etc.
+ Con más potencia pero enfocados en la eficiencia energética y una baja
+ latencia.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Ordenadores de escritorio
+\series default
+: Enfocados en la relación rendimiento/precio.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Servidores
+\series default
+: Enfocados en la disponibilidad, la escalabilidad y el rendimiento.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+\emph on
+\lang english
+Clusters
+\series default
+\emph default
+\lang spanish
+: Enfocados en disponibilidad y rendimiento/precio.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Supercomputadores
+\series default
+: Con gran velocidad en punto flotante, red de interconexión y consumo de
+ energía.
+ Se usan para ciencia, ingeniería, negocios y defensa.
+\end_layout
+
+\begin_layout Standard
+Se considera que el primer supercomputador es el CDC 6600, aunque el término
+ se acuñó para el Cray-1, un ordenador con arquitectura de carga y almacenamient
+o sin caché de datos ni memoria virtual y con control cableado, pero con
+ registros e instrucciones vectoriales, unidades funcionales muy segmentadas
+ y varios bancos de memoria.
+\end_layout
+
\end_body
\end_document