Ir al contenido principal

Joe Armstrong on Erlang


Erlang es un lenguaje de programación semifuncional que posee una estructura dinámica, permite dar asignaciones únicas a variables, y de acuerdo a su definición, es tolerante a fallas, así como posee una característica que es de suma importancia para este blog, es que tiene incorporado el soporte para trabajos concurrentes.
En entradas anteriores hablábamos del cambio de paradigma, que es algo que de hecho hemos insistido hasta el cansancio en casi todas las entradas, pues el reto ya no es conseguir el hardware capaz de trabajar con multiprocesamiento, o en el caso de Erlang, concurrencia, y este lenguaje de programación es un acercamiento bastante acertado al mundo del paralelismo; sin embargo, paralelismo y concurrencia no son inherentemente lo mismo.
A pesar de que hablamos de conceptos algo distintos, el interés es muy similar pues la concurrencia nos ha ayudado a alcanzar algo así como “un paralelismo falso”. Podemos explicarlo de la manera más sencilla retomando una tecnología que probablemente utilizamos pero que puede que no seamos conscientes de hacerlo, esta es el “HyperThreading”, en este caso una tecnología de Intel que tiene diferentes nombres en la competencia pero que funciona igual en todas las plataformas, todos estos conceptos nos llevan a una premisa muy cierta acerca del HyperThreading y la concurrencia, pues no podemos aprovechar el paralelismo al 100% mientras nos perdemos de la concurrencia.

Gracias al paralelismo tenemos más procesadores a nuestra disposición, pero la concurrencia ayuda a aprovechar mejor este potencial, pues si reducimos el tiempo en el que esperamos a que un procesador termine una tarea y le damos otra para que pase la menor cantidad de tiempo muerto, podemos concluir que una gran parte de la optimización de procesos, se logra trabajando de manera más inteligente, para crear sistemas que sean mucho más reactivos y completos, y este es el paradigma del que poco a poco hemos partido hasta alcanzar lo que tenemos hoy en día en lo que respecta a programación paralelizable.

Comentarios

Entradas más populares de este blog

The Free Lunch Is Over

En las últimas décadas, miles de desarrolladores e investigadores han dedicado sus vidas a mejorar la forma en la que vivimos, así como la manera en la que realizamos ; sin embargo, seguir el mismo camino hasta su última consecuencia implica un límite, pues normalmente los materiales que usamos, los teoremas que aplicamos, funcionan bajo un conjunto de circunstancias limitadas. No es una tarea sencilla buscar otra manera, en gran medida desarrollar algo "mejor", suele ir de la mano con un cambio de paradigma (nada sencillo). En la entrada pasada habábamos de FairChild, una compañía que encontró una mejor manera de desarrollar electrónica, y concluímos en cómo la hoy llamada Intel, ha encontrado algunos inconvenientes en reducir su proceso de fabricación pues a pesar de que durante las últimas décadas ha controlado el mercado del silicio, se han dado cuenta que éstamos llegando a los límites que habían previsto, aún cuando su competencia ha logrado llegar al proceso de...

Welcome to the Jungle

“Welcome to the jungle we've got fun and games ♪♫♬” El ser humano siempre ha buscado alternativas para todo lo que le aqueja, si lo que estaba usando antes ya no satisface sus necesidas. Puede que las condiciones cambien o que las necesidades lo hagan. Así como hablamos en “The Free Lunch is Over”, tenemos que la problemática del proceso de miniaturización de las computadoras, está alcanzando un límite, este límite en realidad tiene un nombre y es conocido como “La ley de Moore”, la única alternativa obvia a no poder miniaturizar más es hacer chips más grandes. Anteriormente los chips que encontrábamos en muchas computadoras era ya de por sí muy grande y con especificaciones de energía que llegaban a ser exorbitantes si el rendimiento que buscábamos también era considerable, esta opción no parece ser tan mala para los fabricantes que rápidamente se aproximan a escalas subatómicas de medición, donde todo se vuelve un misterio de acuerdo a la física. Sin embargo la le...

Parallel Computing on any Desktop

OpenCL, CUDA, Tensor, etcétera… Hace tiempo la arquitectura de prácticamente cualquier computadora corría en una suerte de una única frecuencia de reloj que funcionaba en un único paquete de silicio, incluso casi cualquier pieza de software estaba escrita de tal manera en la que se aprovechara ese único núcleo al máximo, incluso gran parte del software que utilizamos hasta nuestros días, está optimizado para un único tiempo de ejecución. De cierto modo Ami Marowka plantea que todo es acerca de qué tan accesible se puede volver la tecnología, tenemos la idea de que Microsoft se volvió el rey de la accesibilidad con su filosofía, y de cierto modo va de acuerdo a la primera ley del paralelismo masivo, el punto importante de Ami es que gracias a la revolución tecnológica en el cómputo de sobremesa, la tecnología es cada vez más accesible. Incluso para desarrollos tecnológicos importantes tenemos RISC5 por el lado del Open Source, que ya no solo se limita a software. Inc...