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

Silicon Valley

Las computadoras como las conocemos, han recorrido un camino muy largo e interesante desde que la necesidad trabajar con más información se volvió una prioridad para la ciencia, la guerra y la economía, es por eso que el transistor marcó la diferencia de una era en el ramo computacional ya que cambió por completo la industria electrónica. Su concepto implicaba una gran mejora en cuanto a los dispositivos utilizados manejar estados lógicos en circuitos electrónicos, ya que miniaturizaba diversos componentes electrónicos en uno solo haciendo posible la creación de dispositivos más complejos, mismos que hicieron posible llevar a cabo el primer alunizaje. La pasión por la ciencia, motivada por la revolución de hacer la vida de las personas cada vez mejor, es el incentivo adecuado (además del dinero) que llevó a un grupo de científicos a desarrollar la tecnología necesaria bajo el nombre de “FairChild Semiconductor”, hoy “Intel”, después de diversos conflictos de intereses y grandes pol...

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

The State of Parallel Programming

Anteriormente hemos hablado del gran reto de cambiar el paradigma del desarrollo del software, pues este ha logrado mantenerse al grado de que la misma comunidad que lo mantiene fue poco a poco integrando algunos elementos del paralelismo, y a pesar de esto el “mindset” que se requiere para paralelizar procesos durante el desarrollo no se encuentra normalizado. Tal como el caso de los lenguajes de programación más populares, buscando la forma de ofrecer las funciones más actuales. No obstante, al paralelizar con estas herramientas no soluciona el principal problema, de lo que el cambio de paradigma refiere. Según UBM TechWeb, necesitamos más y mejores herramientas para paralelizar tareas en especial cuando nos involucramos con código lo suficientemente complejo como para necesitar debuggeo intensivo, pues muchas veces podemos recaer en paralelización incorrecta, incluso aunque las estadísticas nos digan que un buen número de programadores están familiarizados con...