He estado estas dos semanas en el curro inmerso en una aplicación. Es un simulador de no-tengo-muy-claro-qué, pero algo me dice que está relacionado con la física de altas energías. El caso es que simula un espacio tridimensional que parte en cubitos que con el tiempo se deforman y mueven, entonces en cada lapso de tiempo de longitud muy, muy corta, vamos, lo que viene siendo un diferencial, calcula las fuerzas, aceleraciones, nuevas velocidades y nuevas posiciones de los elementos.
La idea es hacer que ese código use unas instrucciones muy molonas que se les han ocurrido a los arquitectos para ver un poco si las instrucciones son molonas sólo sobre el papel, o si consiguen realmente que la simulación vaya rápida.
Los que hace la simulación para cada intervalo de tiempo, a grandes rasgos, es pasadas por los vértices a nivel individual calculando presiones, energías, densidades, temperaturas y vaya usted a saber qué, intercaladas con pasadas por los vértices en calidad de vértices de un cubo, calculando cosas a nivel del cubo.
Mi papel, en todo esto, es coger las pasadas que más tiempo consumen, mirarlas hasta que se me quemen las pestañas pensando cómo hacer que el compilador use estas instrucciones molonas, y cuando el compilador no me colabora, insertarlas yo a manubrio.
La última pasada que he acelerado era una de esas a nivel de cubo, haciendo malabares para usar unos 70 valores usando un papel de sucio en el que sólo puedes tener unos 24 números, sin tener que irte a por el cuaderno, que está lejos y tardas mucho en traerlo.
No es que sea ingeniería espacial. Conceptualmente no es muy complejo. A veces tengo que usar un poco de mi magia, pero son cosas que suelen ser mecánicas. La dificultad viene por lo fácil que es cometer un error y que pase desapercibido, y luego cazarlo cuando ves que el resultado no da es tedioso.
Toda esta introducción para contaros que hoy, después de un par de días trabajando en esta última pasada que os comento, la he conseguido hacer rular, y me han dado ganas de correr el pasillo, como un futbolista corre hacia la banda, y deslizar al final abriendo los brazos en símbolo de victoria, dedicado a la afición. O hacer la posición del arquero como hacía Kiko en sus buenos años. U ofrecer el anverso de la camiseta señalando mi dorsal con los pulgares como hacía Raúl.
Pero no. A los que pasamos el día entre ordenadores, pegándonos con simulatas, vectorizando, o insertando prebúsquedas no nos espera la gloria. A veces sí recibes el reconocimiento de algún colega cuando cuentas las batallitas en el bar, pero no la gloria de dedicar ese 20% de aceleración conseguido con un recorte de 10% en consumo energético a una aclamante afición. Eso es para otros...
Así que con las mismas me he ido a la cocina, me he puesto un vaso de squash de manzana, he descansado el celebro unos minutos y ahí ha acabado la celebración que había que volver al tajo.
Un abrazo y pasad buen finde
Lo que describes parece simulación con elementos finitos, que que yo sepa se utiliza un montón en dinámica de fluidos y termodinámica, pero no tenía ni idea de que la simulación de física de altas energías también se hacía así :-)
ResponderEliminarNo desanimes, ya sabes que aunque "la afición" no aplauda nosotros sí que te hacemos la ola ;-P
Me sumo al reconocimiento y a la ola...aunqe sea un lego...adiante..que diría un gallego
ResponderEliminar