¿Cuán pesado es el cálculo paralelo / distribuido en la investigación científica?

Para un paralelismo bastante fácil (por ejemplo, openmp con bucles paralelos), puede concentrarse en el programa y optimizarlo.

Sin embargo, para muchos problemas, debe cambiar el algoritmo.

Piense en el conjunto de algoritmos que resolverían un problema.

Algunos de estos algoritmos pueden ser paralelos, y otros no. A menudo, el mejor algoritmo serial (no paralelo) no es paralelo, por lo que debe conocer otros modelos computacionales para un problema que luego puede ser paralelo.

El mejor algoritmo para ejecutar a escala (digamos 30 mil procesadores o más) puede ejecutarse a solo una décima parte de la velocidad del mejor algoritmo en serie en un único procesador. Pero si el mejor algoritmo en serie solo puede ejecutarse en un procesador, puede obtener una aceleración de hasta 3000x ejecutando en 30,000 procesadores.

La otra gran ganancia del procesamiento paralelo distribuido es que puede usar mucha más memoria y, por lo tanto, resolver problemas más grandes para avanzar en el campo científico.

A2A: Siempre puedes contribuir incluso con las matemáticas de la escuela secundaria en diferentes partes de la informática científica. La programación paralela, por ejemplo, implica mucho más sobre la arquitectura del sistema y la paralelización del cálculo.

El modelado del sistema es demasiado complicado que generalmente no hacemos modelos matemáticos puros, pero puede hacerlo si lo desea, por ejemplo, utilizando la teoría de colas.

Una parte clave de su pregunta es: “en el campo de la programación paralela en el contexto de la investigación científica”. No se define “investigación científica”. Obviamente, si su objetivo es utilizar la computación paralela en el área de la computación científica, entonces es útil tener una base en matemática y computación numérica. Pero si el contexto científico es la “informática” (aunque algunas personas no consideran esta “investigación científica”), un fondo de CS es más útil.

Se necesitan dos conjuntos de habilidades, 1) conocimiento del campo científico como la ciencia de los materiales o el clima, y ​​2) conocimiento de software y algoritmos distribuidos. Ninguna persona tendrá toda la comprensión, por lo que se necesita un equipo. Busque un equipo que necesite su experiencia. La licenciatura de CS sigue siendo muy valiosa, pero puede sesgarla hacia una disciplina como los sistemas distribuidos, tal vez en un programa de Maestría.