¿Cómo debo estudiar la creación y programación de sistemas HPC?

16

Estoy en un campo que no necesariamente hace una gran cantidad de trabajo de HPC, y cuando lo encuentra, a menudo es el resultado de investigadores de otros campos que exploran nuevas aplicaciones para sus métodos y similares. Principalmente, lo que esto significa es que nunca se introduce realmente en el curso del estudio, o se cría mucho en talleres, seminarios y cosas por el estilo: es posible seguir toda la carrera sin necesidad de ello.

Sin embargo, al mismo tiempo, gran parte del trabajo que hago podría beneficiarse al hacer un mejor uso de los recursos de HPC disponibles para mí, principalmente en forma de simulaciones de Monte Carlo muy paralelas.

Mi problema es encontrar recursos para aprender cómo usar clusters, MPI, etc. Y separar lo bueno de lo malo, dado que no sé mucho.

¿Alguna sugerencia para libros sobre programación en este tipo de sistemas o sobre cómo configurar y ejecutar configuraciones de HPC muy modestas?

Fomite
fuente
¿Debería tener algo así como una etiqueta de "lista grande"?
shuhalo
@ Martin: no. Se debe tener respuestas de personas que realmente han hecho esto y saben lo que están hablando, no es una gigantesca lista de todo lo que posiblemente podría estar relacionado. Se modificó el título para reflejar esto.
Shog9

Respuestas:

13

Echa un vistazo a la Universidad HPC . En particular, la sección de recursos , que incluye cosas como

y mucho más.

Hay muchos programas de educación superior que incluyen cursos en HPC . Como ejemplo, mi propio programa incluye cursos en

  • Computación de alto rendimiento (2 semestres)
  • Paradigmas de programación paralela
  • Ingeniería científica de software
  • Programación de GPU y GPGPU

así como una variedad de cursos en computación científica y análisis numérico.

David Ketcheson
fuente
4

Mi experiencia personal es que HPC requiere un conjunto tan amplio de habilidades que es muy difícil hacerlo en un solo libro, receta, curso universitario. Tenga en cuenta que HPC no se trata de programar grandes máquinas o construir un clúster, sino de abordar grandes problemas científicos en la vanguardia de la informática.

No estoy seguro de que todos estén de acuerdo, pero creo que una lista de áreas involucradas en HPC podría ser:

¡Cada una de estas áreas es inmensamente grande y hay tanto conocimiento que es difícil obtener todo antes de intentar hacer algo!

En mi caso, comencé desde una esquina de la ingeniería y lentamente desarrollé experiencia y una red de colaboración. Al principio solo tenía un problema de ingeniería / matemática aplicada que quería resolver, desde allí pasé a la programación, a obtener más rendimiento a través de computadoras más potentes, al análisis numérico, a algoritmos avanzados, a computadoras paralelas, a algoritmos paralelos , a computadoras aún más grandes, a un modelo científico más completo, y eventualmente a un nuevo problema y estaba iterando nuevamente. Si miro hacia atrás, tratar de entender y resolver mi primer problema fue lo que creó mi plan de estudio. Tener un supervisor que pueda mantenerlo en el camino correcto también ayuda mucho, de lo contrario tenga cuidado de no perder de vista su objetivo final (en mi caso, este era el problema científico que tenía a la mano).

Si tengo que nombrar una cosa que realmente marque la diferencia al seguir el camino de HPC fue conocer gente de otras áreas, intercambiar ideas y aprovechar el conocimiento distribuido de la comunidad. Además, es importante no tener demasiado miedo de ser abiertamente ingenuo y hacer cosas tontas. ¡Los primeros pasos son siempre difíciles y los más importantes!

fcruz
fuente
2

Este es mi plan para enseñarme algunas bases de HPC la próxima primavera. He sido desarrollador durante la última década y media, y trabajo exclusivamente con tecnologías de Microsoft. También soy estudiante, así que puedo obtener software gratis a través de MSDN Academic Alliance(su perfil indica que es un estudiante graduado, por lo que debe verificar si su escuela participa), y hacer espacio para cosas en casa es el factor limitante. Mi oficina / den / ManCave ya tiene varias computadoras, así que ya puedo probar algunas cosas. Windows Server 2008 HPC aparece en algunos paquetes disponibles, pero pareció desaparecer del software descargable de mi escuela durante el semestre pasado (el "paquete de cómputo de clúster" es un complemento para el servidor 2003, mientras que el servidor 2008 hpc viene con una versión reducida del servidor 2008, con ccp, tendrá que deshabilitar los servicios que no necesita).

Mi topología planificada es el "Clúster habilitado para SOA", que es la cuarta imagen de esta página (haga clic en los cuadrados pequeños debajo de la imagen principal). Ya tengo Active Directory y algunos otros servidores ya configurados, así que estoy pensando en obtener 4 computadoras Dell de factor de forma pequeño y baratas en eBay (la reforma de Dell 655 SFF parece estar funcionando en el estadio de $ 100-200). Como solo estoy tratando de aprender algunas cosas, creo que solo necesito un "nodo principal", un "nodo intermediario" y 2 "nodos informáticos" y algunas tarjetas de Ethernet de repuesto para ver qué buss privado y de aplicación (de esa imagen ) hacer. La licencia MSDNAA permite hasta 16 nodos informáticos, que es mucho más de lo que estoy buscando.

He estado leyendo Beowulf Cluster Computing con Windows , y creo que tengo una idea de a qué me enfrento para algunas ideas en la oficina (hay una versión de Linux del libro, pero tengo 0 habilidades / plataformas de Linux en casa: haz lo que sea correcto para ti) Hay muchos grupos grandes disponibles en la oficina , pero ya están saturados, y las franjas horarias educativas "Quiero / necesito aprender X" son muy difíciles de conseguir. Ya se espera que uno sepa las cosas antes de poder enviar trabajos.

Tangurena
fuente