¿Cómo es tomar CS 205 (Fundamentos de computación para la ciencia computacional) en Harvard?

Imma te dejó terminar, pero Cris Cecka es el profesor más genial de todos los tiempos. De todos los tiempos

… Así que a la clase misma. Entré formalmente con solo entrenamiento de CS 50, pero como físico tienes que aprender a recoger una tonelada de Python en la carrera, por lo que había muy poca barrera de idioma, por así decirlo.

Primero, requisitos previos . Al menos cuando me inscribí, el sitio web del curso decía que solo era necesaria experiencia en programación (es decir, CS 50). Y sí, esto es fácticamente correcto. Si desea sacar el máximo provecho del curso y realmente entender lo que está sucediendo (especialmente la paralelización de algoritmos numéricos como el FFT), le sugiero que tome esto después de un trabajo serio en las ciencias matemáticas, hasta llegar al punto donde entiendes por qué diablos importa cualquiera de estas cosas paralelizantes, y qué podrías hacer potencialmente con él. Hubo una cantidad de estudiantes que lucharon porque: a) no entendieron el punto, o b) no entendieron los conceptos lo suficiente como para poder resolver los problemas por sí mismos.

A continuación, experiencia de clase . Honestamente, tengo que decir que depurar el código paralelo es probablemente una de las cosas más dolorosas que he tenido que pasar en mi vida. No solo no funciona, sino que también se negará a proporcionarle cualquier mecanismo por el que no funciona. Oh, ¿mencioné que la gente de PyCUDA ha eliminado convenientemente todo rastro de documentación comprensible de la totalidad de las interwebs? (Este último punto podría ser una ligera exageración, pero solo una ligera). En general, coincidimos en que se supone que las personas que necesitan hacer un trabajo tan intenso que necesitan programas paralelos son lo suficientemente inteligentes como para resolver esto por sí mismas, por lo que No se han desarrollado mercados eficientes para los “tutoriales introductorios de programación paralela”.

Pero el curso en sí es impresionante . ¿Sabía que podría sumar una matriz aproximadamente un millón de veces más rápido de lo que está haciendo ahora, con un código probablemente mil veces más feo? Muy fresco. Con toda seriedad, la aceleración que obtienes después de aprender el material en este curso (y aprender a calcular la aceleración, por supuesto …) es nada menos que impresionante.

Finalmente, el profesor . Creo, independientemente del género, que todos en esta clase han sido fanboy / girl de Cris en algún momento del semestre. Quiero decir que es, como, brillante. Él paraleliza el código sobre la marcha y honestamente entiende esto mejor de lo que podría imaginarme que cualquier mortal lo entienda. Ah, claro, al final todos estábamos convencidos de que es un dios. Después de todo, nos dio habilidades MPI-CUDA “ninja”, todos saludan al maestro ninjutsu.