¿Cómo hacer mi propia supercomputadora? Que necesito

Creo que puedo responder mejor a esto con una serie de preguntas y respuestas. Uno o más de estos deberían acertar con lo que estás preguntando bastante bien.

¿Qué es una supercomputadora?
“Supercomputadora” es realmente un término vago. En realidad, solo hay una forma de definir una supercomputadora. Una supercomputadora es un sistema informático que tiene una capacidad de cálculo por unidad de tiempo entre los mejores sistemas informáticos existentes en ese momento. Para ser pedante, se deben agregar algunas otras limitaciones.

Por ejemplo, cualquier supercomputadora debería poder realizar cálculos interconectados utilizando el orden de todo el sistema. Es por eso que los grandes centros de datos no se consideran supercomputadoras. Las CPU pueden sumarse a una potencia computacional combinada masiva, pero la única forma de hacer que trabajen juntas en un problema realmente masivo sería encontrar una forma de dividirla en trozos pequeños que se puedan calcular de forma completamente aislada. Un supercompresor real tiene una gran capacidad de comunicación detrás de la gran capacidad computacional. Las supercomputadoras pueden resolver eficientemente problemas masivos de ingeniería y científicos que requieren que los procesadores intercambien resultados regularmente, después de cada pocos pasos para resolver un problema mayor.

En la práctica, las supercomputadoras se clasifican exclusivamente por capacidad computacional en operaciones de punto flotante por segundo (TFlop / s). Esto se basa en el resultado del punto de referencia LINPACK que requiere que el sistema resuelva un gran sistema de ecuaciones lineales, probando una combinación de capacidad de comunicación y potencia bruta. Las clasificaciones actuales se pueden encontrar en http://www.top500.org.

¿Cómo se diseñan y construyen las supercomputadoras?
La potencia computacional de un único procesador está limitada por el estado técnico de la técnica, teóricamente por las densidades máximas y las velocidades de conmutación, y por los problemas complementarios del consumo de energía y la generación de calor. La única forma de realizar una gran cantidad de cómputo muy rápidamente es usar muchos procesadores. Las supercomputadoras mejor calificadas tienen cientos de miles a millones de núcleos (un núcleo es solo una unidad computacional discreta donde varios “núcleos” pueden estar en el mismo chip o “procesador”). Dado un gran número de procesadores, también se requiere una red de alto rendimiento para mantenerlos ocupados. Los principios de arquitectura y diseño varían de un sistema a otro según el tipo de problemas para los que están destinados. Por ejemplo, la línea BlueGene de IBM se desempeña especialmente bien en los grandes problemas de ingeniería y científicos que ocupan un sistema completo y al mismo tiempo requieren grandes cantidades de cómputo. Otros sistemas funcionan mejor en problemas con requisitos computacionales más bajos o en grandes cantidades de trabajos de cómputo más pequeños.

¿Cómo puedo construir algo estructuralmente similar a una supercomputadora real?
Si desea probar suerte con hardware, todo lo que realmente necesita es una serie de CPU y algunos equipos de red. Usar cosas como las placas Raspberry Pi o Parallela estaría bien siempre que pueda obtener un montón de ellas. Ningún sistema que construya de esta manera será esplendoroso, pero si lo hace, le enseñará los problemas básicos que las personas que diseñan supercomputadoras deben tener en cuenta. En el camino aprenderá sobre el equilibrio del procesador, la memoria caché, la memoria y el rendimiento de la red. También aprenderá cosas peculiares, como la fluctuación del núcleo, en la que un único procesador puede ralentizar todo el sistema solo porque tiene que hacer un poco de contabilidad. ¡También puede aprender sobre el lado del software usando su propia computadora! Gran parte del software que se ejecuta en supercomputadoras es gratuito o de código abierto. Mientras trabajaba en el centro de computación científica de mi escuela, a veces me conectaba a nuestra supercomputadora BlueGene / Q o una de las estaciones de trabajo de forma remota, pero la mayor parte de mi trabajo de desarrollo consistía en desarrollar y probar software en mi propia computadora portátil miserable. Los programas que se ejecutan en casi todas las supercomputadoras utilizan la interfaz de paso de mensajes o MPI para la comunicación. Las dos implementaciones más comunes de esto son OpenMPI y MPICH y puede elegir cualquiera. Si miras a tu alrededor también hay otros paradigmas en uso. Incluso podría ingresar a la programación de GPU y CUDA si lo desea. Ninguno de estos requiere una supercomputadora para que pueda ejecutarlos en su propio sistema y dos de los beneficios de la computación paralela. Si escribe un buen código, ¡incluso puede obtener algún beneficio al usar múltiples procesos o hilos en un solo núcleo!

¿Cuál es el sistema informático más rápido que puedo construir con una cantidad razonable de dinero?
Si solo desea el sistema más potente por la menor cantidad de dinero, le recomendaría poner un par de miles en una buena estación de trabajo, varios escritorios rápidos o estaciones de trabajo para formar un clúster o incluso solo uno con varias GPU de alto rendimiento. El que elija se basará en el tipo de cálculo que necesita hacer y su presupuesto. Por ejemplo, las GPU se usan generalmente para la minería de Bitcoin, que es trivialmente paralelizable porque proporcionan un rendimiento de cálculo masivo y solo se requiere que hagan una pequeña cantidad de comunicación. No necesariamente quieres imitar una supercomputadora en lo pequeño. Construir una gran red de chips baratos solo te dará dolor de cabeza si quieres que funcione bien.

Servicios web de Amazon y una tarjeta de crédito de límite alto.

Supercomputadora de $ 4,829 por hora construida en la nube de Amazon para impulsar la investigación del cáncer

Haz lo que hizo Chris Fenton: Homebrew Cray-1A. Bwa haa haa (temblor del mundo, risa malvada).

GPU o CPU? Si quieres un gpu, entonces necesitas Nvidia tesla K80s, hay placas base de servidor que toman hasta cuatro pero necesitas una ranura para el monitor a menos que inicies sesión en el servidor con otra computadora pero que puede permitirte 4 teslas … Entonces necesitas una simulación para correr, o una educación en informática. Si ya tiene eso, puede considerar usar una de las muchas granjas de GPU que están disponibles en línea … ¡Por un precio!

Muchos procesadores y el software adecuado. P.ej. Construya su propia supercomputadora con placas Raspberry Pi | ZDNet

Unas 600 PC con procesadores Intel i7 en un clúster Beowulf deberían hacerlo.