Simultáneamente a mi investigación sobre los métodos del subespacio de Krylov, tengo la opción de explorar las matemáticas detrás de HPC un paso adelante o la teoría de la computación (hardware, sistema operativo, compiladores, etc.). Actualmente, sé tanto suficiente para simplemente sobrevivir. Por ejemplo, sé cómo derivar las ecuaciones para CG y los conceptos básicos de los métodos iterativos, pero no tengo idea de los detalles y cosas más complicadas como los preacondicionadores y la convergencia. Del mismo modo, conozco los conceptos básicos del método de elementos finitos (forma débil, forma no débil, cosas como Codomain y Galerkin y otras cosas), pero no sabré las profundidades del mismo. En el frente computacional, sé cómo codificar en serie en todos los idiomas posibles y puedo usar OpenMP y MPI lo suficientemente bien. No entiendo bien el hardware y el almacenamiento en caché.
Mi pregunta es: ¿En qué debería concentrarse uno: Matemáticas o Computación? ¿Son inseparables en HPC? ¿Se recomienda que uno aprenda sobre uno y no sobre el otro?
EDITAR: Actualmente me estoy especializando en Ingeniería Mecánica (lo cual lamento) y tengo toneladas de cursos en ingeniería y computación (fluidos, transferencia de calor, etc.). Me uniré a la escuela de posgrado para HPC este año y quiero fortalecer algunos aspectos (Matemáticas / Comp / Híbrido) antes de comenzar mis estudios de posgrado. Me gustan las matemáticas y la composición por igual (por lo que "Hacer lo que más disfrutas" es redundante).
fuente
HPC es una combinación de matemáticas, computación, informática y aplicaciones. Debe ser capaz de comprenderlos a todos para ser verdaderamente exitoso a largo plazo. Sin embargo, no necesariamente necesita alcanzar el mismo nivel de competencia en todos ellos.
En el argumento de la computación versus las matemáticas, para un ingeniero, diría que los problemas de implementación numérica son más importantes al principio. Si espera hasta que haya aprendido la teoría matemática y luego comience la implementación, puede pasar mucho tiempo trabajando en cosas que, aunque sin duda útiles, pueden no afectar directamente su investigación de tesis.
Entonces, me inclinaría hacia la comprensión de los aspectos computacionales al principio, y luego regresaría y llenaría los agujeros en la teoría matemática. Los problemas de hardware también se pueden aprender, pero gran parte de cómo eso afecta al software también dependerá de la plataforma, por lo que, nuevamente, puede que no sea el primer elemento de su agenda.
Otros, por supuesto, pueden estar en desacuerdo conmigo; como usted dijo, esto es más una opinión que una pregunta objetiva.
fuente
Toma tantos cursos como puedas en ambos. Lo hice, y no me arrepiento.
Suponiendo que esté interesado en una carrera de investigación, puede tener éxito con cualquier combinación de ambas. Encuentra colaboradores cuyo conocimiento complemente el tuyo. Sé una gran cantidad de matemáticas en lo que se refiere a la precisión y la estabilidad de los métodos numéricos, pero mucho menos sobre HPC. Tengo colaboradores que conocen muy bien HPC, por lo que trabajando juntos podemos obtener métodos numéricos innovadores que se ejecutan en máquinas grandes. Yo hago los cálculos y ellos hacen el cálculo, en su mayor parte.
Dicho eso, creo que las matemáticas
mientras que los temas de HPC
Esta es una sobregeneralización y seguramente atraerá comentarios en desacuerdo. Pero creo que hay verdad en ello.
fuente
Estoy de acuerdo con aeismail y Oxberry. Decidí escribir una respuesta porque parece que estás enfrentando las mismas preguntas que estaba tratando de encontrar una respuesta el año pasado. También me especialicé en ingeniería mecánica (y la odié, especialmente la mecánica sólida), pasé mucho tiempo trabajando con métodos numéricos en CFD u optimización. Ahora estoy haciendo mi maestría en Matemática Aplicada y Ciencias Computacionales. Desde mi punto de vista, primero debe decidir qué quiere hacer en el futuro. Si quieres comenzar a modelar o desarrollar métodos numéricos, entonces definitivamente deberías ir a las matemáticas. Pasé dos años trabajando con métodos de Volumen Finito y Elementos Finitos sin conocer la base profunda y ahora que estoy tomando clases de matemática aplicada, todo tiene mucho más sentido para mí. Me doy cuenta de cómo funcionan exactamente los métodos y ya no estoy caminando ciegamente solo experimentando con todo. Ahorra mucho tiempo y esfuerzo. Pero si decide que desea dedicarse al desarrollo de software y temas relacionados, puede centrarse en la parte de HPC. En mi experiencia, hay muchos paquetes que están optimizados y listos para usar para muchas aplicaciones numéricas. Por lo tanto, no será la mejor idea para mí pasar mucho tiempo desarrollando mi propio software, así que decidí trabajar más en la parte matemática.
fuente
No creo en una dicotomía teoría / aplicación, pero también es importante abordar los campos de una manera que no esté completamente fuera de contexto. Creo que la teoría de la comprensión le proporciona una intuición general sobre el problema que es muy valiosa, ya que le evita tener que centrarse en concreto después de concreto (es decir, una implementación en particular frente a otra), y le permite ver el panorama general. Sin embargo, esta comprensión no surge de un vacío, y no puedes COMENZAR a este nivel ... así no es como funciona el cerebro. ¡No se puede llegar al concepto de bosque sin haber visto un árbol!
Eso no quiere decir que la teoría también tenga un papel subordinado en esta pregunta. Es decir que la comprensión teórica proporciona una economía mental significativa cuando se considera una clase de problemas, pero no puede existir sin los concretos que lo impulsan (al menos en las teorías computacionales).
Entonces, para responder a su pregunta: si todo lo que le interesa es la implementación, ese es el resultado, pero no en mejorar / alterar esta implementación, la teoría no será tan importante. Sin embargo, si desea producir la suya, entonces está en desventaja competitiva con aquellos que entienden mejor la teoría. A menos que, por supuesto, produzcas el tuyo a lo largo de los años, eso es mejor :)
fuente