Mi sugerencia es aprender paradigmas de programación para el procesamiento paralelo y obtener una cuenta en una máquina paralela para que pueda practicar. Comience por convertir algunos de sus programas más utilizados para funcionar en un entorno distribuido.
Dos paradigmas de programación comunes para la computación paralela son la interfaz de paso de mensajes (MPI), que a veces se denomina “lenguaje ensamblador de programación paralela” porque lo único que realmente hace es permitirle pasar mensajes entre diferentes procesos. Estos mensajes pueden ser bloqueantes o no bloqueantes. La forma en que interactúan los procesos depende completamente del programador.
El otro paradigma común es OpenMP, que son un montón de directivas de compilación que especifican cuándo y cómo vectorizar un bucle, qué subprocesos deben ejecutarse en paralelo, qué variables se comparten y cuáles son locales de subprocesos, si el programa debe “cuello de botella” en cierto punto, etc. Lo bueno de OpenMP es que estas directivas, que se especifican en la misma sintaxis que el preprocesador de C, simplemente son ignoradas por los compiladores no paralelos. Tanto MPI como OpenMP están disponibles para C y Fortran y probablemente para otros lenguajes.
- ¿Cómo explicaría las pruebas probabilísticamente comprobables y el teorema de PCP a un estudiante universitario en informática?
- ¿Cuáles son algunas buenas implementaciones de MapReduce para gráficos, lo que significa un marco de gráficos de código abierto altamente distribuido y de uso general, y qué tan bien funcionaron para usted en la práctica?
- ¿Cómo puede un investigador académico decidir si publica los resultados que podrían meterlo en problemas legales?
- ¿Por qué el aprendizaje de la red neuronal se ralentiza a medida que el error disminuye? ¿Esto necesita ser el caso?
- ¿Por qué no hay investigador libre en informática?