Para el blog de hoy voy a hablar sobre el artículo "Parallel Computing on any desktop" Ami Marowka, pero primero, la canción de este post será "Cheap Thrills" cover por Jacklyn Davies.
Hubo un momento hace muchos años en los que una computadora de múltiples núcleos era algo único para uso científico, militar o académico, sin embargo, desde hace varios años casi cualquier computadora cuenta con al menos dos núcleos (el mejor ejemplo de esto es el Raspberry Pi 3 B, que a un precio de 35$ USD cuenta con un procesador ARMv8 Cuad Core).
El aumento en procesadores en vez de poder de procesamiento puro (ciclos de procesador) ha hecho que los desarrolladores cada vez más necesiten recurrir a programación multinúcleo para aprovechar al máximo la capacidad de procesamiento de un ordenador, y cómo es de suponer, a medida que se ha vuelto más común se han desarrollado distintas librerías o han surgido nuevos paradigmas para facilitar la programación multinúcleo (para C existe la librería OPENMP, que abstrae gran parte del overhead que implica desarrollar aplicaciones multi-threaded en C, como locks/semáforos), facilitando al desarrollador convertir un programa single-threaded a multi-threaded cambiando una cantidad mínima de código.
Del lado de los nuevos paradigmas, más que "surgir" paradigmas nuevos, se han popularizado paradigmas existentes que hasta ahora habían sido poco aprovechados, específicamente los lenguajes de programación funcionales, han surgido lenguajes como Clojure y Elixir y se han popularizado lenguajes existentes como Haskell, Python enfocado a programación funcional y R.
La programación multinúcleo es la única forma en la que los programadores podemos aprovechar al máximo una computadora después de que se dejó de cumplir la ley de Moore, por lo que es indispensable que un desarrollador aprenda a desarrollar programas multi-threaded así cómo a identificar problemas comunes que pueden surgir (específicamente race conditions).
Wololo.
No hay comentarios:
Publicar un comentario