Portar campanyes de simulació a més escala
Executar models més grans, estudis paramètrics més amplis i experiments numèrics més exigents amb un ús previsible dels recursos.
COMPUTACIÓ D'ALT RENDIMENT
Ajudem el programari científic i d'enginyeria a aprofitar clústers, paral·lelisme i maquinari modern sense perdre validesa dels resultats ni facilitat de manteniment.
La computació d'alt rendiment consisteix a fer que càlculs científics i d'enginyeria exigents funcionin bé en maquinari real. Inclou l'algorisme, l'organització de la memòria, els patrons de comunicació, l'estratègia d'I/O, el model d'execució i la manera de mesurar el rendiment.
Afegir maquinari no garanteix resultats més ràpids ni més fiables. Un sistema HPC útil fa encaixar la càrrega numèrica amb la màquina: CPU, GPU, jerarquia de memòria, interconnexions, emmagatzematge, planificadors i restriccions de l'equip que l'haurà d'explotar.
Executar models més grans, estudis paramètrics més amplis i experiments numèrics més exigents amb un ús previsible dels recursos.
Identificar els colls d'ampolla reals en càlcul, comunicació, accés a memòria o I/O en lloc d'endevinar on es perd el temps.
Organitzar compilació, llançament, planificació i moviment de dades al voltant dels sistemes on el programari s'executa de debò.
Avaluar si GPU o altres acceleradors encaixen amb la càrrega i reestructurar el codi quan l'acceleració té sentit.
Convertir benchmarks i proves d'escalabilitat en controls repetibles que revelin regressions abans que afectin la producció.
Millorar emmagatzematge, checkpointing, reinici, postprocessament i estratègies de sortida per a execucions grans i campanyes llargues.
Intervenim quan el rendiment depèn alhora del comportament numèric, l'arquitectura del codi i les restriccions del maquinari. Podem treballar dins d'una base de codi existent, definir una estratègia d'escalabilitat o desenvolupar l'entorn que fa que l'HPC sigui pràctic per a un equip d'enginyeria.
Analitzar càrregues de treball, estudiar l'escalabilitat i separar el cost algorítmic dels colls d'ampolla d'implementació o de sistema.
Dissenyar o millorar l'execució paral·lela amb MPI, memòria compartida, descomposició de tasques o models híbrids.
Reestructurar moviments de dades, patrons d'emmagatzematge i accessos a memòria quan limiten el rendiment o l'escalabilitat.
Desenvolupar scripts, plantilles de jobs, orquestració d'execucions i entorns reproduïbles per a clústers i processos batch.
Crear proves de rendiment, execucions de referència i controls CI que segueixin conjuntament velocitat, escalabilitat i sortida numèrica.
Millorar checkpointing, reinici, execució de campanyes, logs i postprocessament perquè els grans càlculs es puguin operar amb fiabilitat.
Aquest treball és pertinent per a equips amb simulacions, solvers o pipelines numèrics massa lents, fràgils o difícils d'executar a l'escala que necessiten. És especialment rellevant quan aquests càlculs ja tenen un paper operatiu.
També ho és per a equips que passen del càlcul d'escriptori als clústers, o de grans execucions puntuals a campanyes de simulació repetibles que requereixen rendiment, traçabilitat i fiabilitat.