El hardware de ahora
Los primeros códigos que resolvían las ecuaciones de Hartree-Fock estaban basados en computadoras seriales, esto significa que todo el trabajo lo hacía un procesador. Muchos de estos códigos prevalecieron por que los procesadores incrementaron su velocidad de manera importante, pero desafortunadamente para esos códigos el incremento de la velocidad de un procesador ha llevado a un sobrecalentamiento del mismo. Por este motivo las compañías fabricantes de procesadores han decidido no incrementar la velocidad del procesador, pero a cambio han dividido al procesador en cores. En este momento podemos encontrar en los supermercados computadoras personal con dos cores o en universidades o empresas servidores con procesadores de 4 cores.
Actualmente la tecnología ha permitido tener servidores
que gastan eficientemente la energía eléctrica además de construirlos
en un espacio reducido, contrario a lo que se tenía hace algunos
años. Además, los costos se han reducido de manera apreciable y
han permitido que se puedan construir supercomputadoras a partir
de la unión de varios servidores. Lo que ha llevado a la construcción
de los ahora llamados cúmulos o “clusters” de servidores y que
están predominando en el área del supercómputo. Sin embargo, se
avecina una nueva generación de supercomputadoras.
Es bien sabido
que la industria de los videojuegos ha invertido bastante para
tener consolas que hagan un despliegue gráfico eficiente y que
contengan el mayor número de efectos visuales. De manera natural
han trabajado con tareas en paralelo, además las tarjetas de video
han sido diseñadas para ser autónomas del procesador ya que tienen
sus propios circuitos y su propia memoria RAM. En el 2001 se empezó
a ver la posibilidad de llevar a cabo aplicaciones científicas
sobre tarjetas gráficas, las cuales se conocen como GPUs (Graphics
Processing Units, unidades de procesamiento gráfico). Para el 2006
ya se vio como una realidad el hacer cálculos científicos sobre
los GPUs. Evidentemente esto lleva a nuevas técnicas de programación para usar de manera simultánea a los CPUs y GPUs en un ambiente de clusters.
|