sábado, 2 de febrero de 2019

4to núcleo: Paralelización a la puerta de tu casa


Algo que he notado con estas últimas lecturas, es el tono que usan los autores para describir las diferencias entre el paradigma de programación secuencial contra el paralelo. Más o menos siempre mencionan a las mismas, como que la paralela requiere de tener más cuidado con los errores sutiles o trampas que se pueden generar (deadlocks, race conditions etc.), así como la dificultad al momento de diseñar programas en torno a la paralelización. Varios autores mencionan que, aunque es difícil y “no muy atractivo”, este salto de perspectiva mental es necesario si se quiere llegar a optimizar y mantener a la par el uso de prácticas de hardware y software.

Creo que, como grupo de programadores, hemos vivido una muy buena parte de nuestra vida tecnológica en un mundo secuencial. Me incluyo a mí y a prácticamente todos los estudiantes de la carrera de sistemas porque ese es el modo de enseñar actual. No creo que este mal, al fin y al cabo, este enfoque permite entender de una manera simple cómo funcionan las computadoras y los programas y aplicaciones de una manera sencilla y sin meterse a detalles muy técnicos. Sin embargo, así como se enseña una clase de POO que, aunque a muchos no les gusta por el esfuerzo extra y cambio de mentalidad que requieren, es necesario impartir materias que tengan que ver con el paralelismo.

Este comentario no viene solamente porque me parece interesante el concepto de hacer varias cosas a la vez, sino también de como la tendencia en el hardware ya no va hacia la rapidez solamente, sino de cuantas cosas puedes hacer al mismo tiempo. Esto proviene de las limitantes físicas que tenemos al momento de hacer los componentes de nuestras computadoras. Debido a esto, creo que es un buen momento de pasar a esta tendencia, antes de que llegue una nueva y vuelva a cambiar el juego por completo. Como la computación cuántica, por ejemplo.

No hay comentarios.:

Publicar un comentario