Ir al contenido principal

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.

Incluso cuando hablamos de paralelismo, el software puede volverse nuestro principal interés, ya que aún con un gran potencial de paralelismo en hardware, es sumamente necesario que encontremos una manera cada vez más coherente de manejar múltiples procesos de manera que este paradigma se normalice.

Es bastante probable que una de las razones por las que el paralelismo no ha alcanzado todo su potencial al 100%, incluso a pesar de haberlo integrado a nuestro paradigma lo más que hemos podido en las últimas décadas, es en realidad porque necesitemos mejorar o cambiar la forma en cómo aprendemos a programar buscando que el paralelismo esté siempre presente. Como ya he venido mencionando en entradas anteriores, este cambio de paradigma no será una cuestión sencilla para muchos; sin embargo es bueno tener fe en las siguientes generaciones de computólogos.

Comentarios

Entradas más populares de este blog

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 un...

Teaching Concurrency with Erlang

Como presentamos anteriormente en la entrada correspondiente a Erlang, nos queda claro que el Paralelismo aunque es diferente a la concurrencia, ambos nos ayudan a alcanzar nuestro deseado objetivo de tener un paradigma de desarrollo de software más enfocado al aprovechamiento de recursos listos para multiproceso. A medida que la tecnología avanza, el interés por hacer programas Concurency-Oriented incrementa debido a que cada vez se integra tecnología más compleja y completa que satisface diversas necesidades que han surgido con el tiempo, así como la miniaturización, la eficiencia y por supuesto la potencia. Actualmente tenemos procesadores que tienen al menos dos núcleos, y gracias a un poco de astucia mercantil e ingenieril, podemos decir que ambos núcleos se pueden sentir como cuatro. Así mismo contamos con teléfonos móviles que cuentan con hasta 8 núcleos y tienen arquitecturas interesantes como BIGlittle; sin embargo esta necesidad por “tirar más núcleos al problema”...

¿Sueñan los androides con ovejas eléctricas?

Siempre he pensado que el concepto de humanidad, para los seres humanos puede llegar a ser un misterio de manera muy cotidiana. A lo largo de la historia, el protagonista Rick Deckard cuestiona, la caracterización del “humano”, pues aún cuando es un género que recurre en gran medida a la fantasía, el “Cyberpunk” nos ayuda a que estas cuestiones tengan un verdadero sentido, especialmente en el mundo actual, donde lo cibernético puede quedar más a la vista como algo cotidiano. En el mundo donde la novela toma lugar, los robots son parte de la vida cotidiana, androides y animales cibernéticos conviven y ayudan a los seres humanos a realizar sus labores diarias. Dichos robots son descritos con un aspecto muy apegado a la naturaleza de lo que pretenden ser, razón por la que muchas veces suelen ser confundidos con sus contrapartes naturales; sin embargo, a pesar de que los a los androides tienen un aspecto y comportamiento humano no logran desarrollar lo que se define c...