Acerca del servicio
TraducidoDesarrollo código de alto rendimiento en Chapel, un lenguaje diseñado específicamente para la computación científica productiva a gran escala. Si tu modelo, solucionador o canal de procesamiento de datos está atascado en un núcleo, moveré el cálculo a todos los núcleos disponibles y luego a través de todo un clúster. Mi tarea principal es convertir código numérico ordinario en un programa que mantenga miles de hilos ocupados sin obligarte a reescribir todo a mano. Utilizo bucles paralelos forall, dominios distribuidos y el modelo de localidad para distribuir arreglos a través de nodos, y donde el algoritmo necesita un control más fino aplico paralelismo de tareas a través de begin, cobegin y variables de sincronización. Trabajos típicos que realizo: portar núcleos secuenciales de C o Fortran a Chapel, paralelizar operaciones de plantillas y matrices, construir tablas hash distribuidas y recorridos de grafos, y perfilar por qué el cálculo se detiene en el movimiento de datos en lugar de en la aritmética. Mido todo. Antes de considerar el trabajo terminado, muestro curvas de escalado fuerte y débil para que veas cómo se comporta el código a medida que crecen los núcleos y el tamaño del problema, y explico de dónde provienen los límites. Los resultados incluyen código fuente limpio comentado, una receta para compilar bajo tu compilador y lanzador, un breve informe de escalado y memoria, e instrucciones para ejecutar en tu hardware o programador. He escrito código de Chapel para métodos de Monte Carlo, tareas de N-cuerpos, pasos de hidrodinámica computacional y álgebra lineal dispersa grande. Corrección primero, luego velocidad: añado pruebas reproducibles y verifico resultados contra una base confiable antes de ajustar. Nombra la cantidad de nodos, tipo de conexión y núcleo que causa el cuello de botella, y te daré estimaciones honestas de aceleración y esfuerzo.