Compartiendo para dos mundos

Hablando de programación paralela.
Tutoriales en: https://www.youtube.com/user/jambrizgdl
Twitter: @dogoteacher

Buscar este blog

miércoles, 12 de marzo de 2014

recursos para aprender programación paralela


En el link (minuto 8:48 ) habla que mas personas aprenden programación paralela 
(poco a poco, pero bueno algo es algo )

conoces recursos para aprender a programar de forma paralela usando los cores que tienes en tu compu?}

por favor, comparte si conoces algún otro mas.

introducción a la programación paralela -> https://www.udacity.com/course/cs344

Programacion paralela en .net framework ->  http://msdn.microsoft.com/es-es/library/dd460693(v=vs.110).aspx


Intel courseware sobre programación paralela -> http://software.intel.com/en-us/academic#pid-13124-91

exito en la semana!

jam


la enseñanza y la programación paralela

En el minuto 7 de la primara presentación el profesor hablaba sobre un problema que en lo personal creo que es el peor problema de la programación paralela:

"Most people do not learn parallel programming"   -- 
  la mayoría de las personas no aprende programación paralela


cuantos lenguajes les enseñan en la universidad?

cuando aprenderán programación paralela en esos lenguajes? ( si apenas hay tiempo de verlos en lo básico! )

existen lenguajes "pedagógicos" (es decir lenguajes que sirven para aprender ciertos conceptos de programación) , como Karel o Alice que enseñan programación estructurada u orientado a objetos, pero 

Hay algún lenguaje para enseñar conceptos de programación paralela?



éxito en la semana!

jam

lunes, 17 de febrero de 2014

Compiladores apoyando a la programación paralela

En el primer video del courseware de Intel, el expositor indica en una diapositiva lo siguiente:
"
Successful attempts require both
1. Understanding of where parallelism can be effective
2. Knowledge of how to design and implements good solutions.
"

Esto es correcto, pero también es cierto que actualmente hay vario compiladores que apoyan al dearrollador analizando su código y verificando los puntos donde se pueden genera hilos para aprovechar el paralelismo (con o sin la indicación explicita de parte del programador que convierta su código de "secuencial" a "paralelo" ).

Una de esas técnicas es muy sencilla, si ve que pueden partirse los datos que maneja el programa de forma que le toque una parte a un hilo distinto, el compilador generará el código necesario para que se generen los hilos que se requieren, por ejemplo:
for(i=0; i< 1000000; i++ )
{
 arreglo[ i ] = arreglo[ i ] * 50000;
}

El cálculo realizado en cada iteración solo afecta a un elemento y este valor calculado (por lo menos en el ciclo) no es dependiente de los otros valores en el ciclo, por lo tanto se podrán generar "n" cantidad de hilos que se repartan el trabajo de dicho ciclo.

éxito en la programación!

jam

Courseware de programación paralela en Intel

Recomendación para esta semana de auto-estudio:

Intel coloco hace tiempo este curso de programación paralela en base a videos.
El primer video habla de porque se requiere programar de forma paralela.

éxito en su programación

JAM


viernes, 26 de abril de 2013

programación paralela en .net

Estos son algunos de los principales recursos que puedes encontrar para iniciar en el mundo de la programación paralela para Microsoft .NET, están listados de menor a mayor complejidad:


http://channel9.msdn.com/Events/TechDays/TechDays-2011-Belgium/TD030
Parallel Programming in .NET 4.0 - Tasks and Threading

parallel computing on MSDN
http://msdn.microsoft.com/es-mx/vstudio/bb964701

Como depurar aplicaciones que tienen multiprocesos
http://msdn.microsoft.com/library/vstudio/ms164746(VS.110).aspx

Programando con subprocesos para ASP .net PERO! usando javascript!
http://msdn.microsoft.com/es-mx/library/windows/apps/hh700330.aspx

Patrones en el desarrollo de programación paralela usando .net
http://www.microsoft.com/en-us/download/details.aspx?id=19222

viernes, 5 de abril de 2013

Programación en tiempo real para JAVA

Encontré un artículo que recomiendo mucho en Dr Dobbs acerca de la programación en hilos para tiempo real de JAVA y posteriormente una Fe de Erratas sobre ese artículo escrito por el propio autor.

éxito el fin de semana!

jam

lunes, 11 de marzo de 2013

APIs disponibles para programación paralela en HTML5



La especificación HTML5 NO ha sido terminada y quedará lista para finales del 2014. Indica que para programar en forma paralela se tienen las siguientes opciones:
3 APIs distintas:
* Web Workers
* Parallel Javascript
* WebGL
* WebCL

Web workers
Es una API que especifica un modelo de programación basado en paso de mensajes. Sus objetos no comparten datos con los otros objetos "tradicionales" del DOM
(como Document).
Se implementa como un archivo javascript que se ejecuta de forma paralela a la página web que se está visualizando.
Entre la página web que se visualiza y el JS ejecutándose en paralelo se pueden enviar mensajes para disparar eventos.
Se recomienda para un uso de paralelismo "general" que no implica manejo de vectores y/o gráficos.

Parallel Javascript
También conocida como Rivel Trail, extiende la funcionalidad de JS por medio de estructuras que permiten el paralelismo y las operaciones que trabajan sobre ellas. Se recomienda para lograr mayor abstracción del cómputo paralelo en la aplicación web.

WebGL
Es un API de javascript basada en OpenGL ES 2.0 que trabaja con el objeto "canvas" de HTML5 . Se recomienda cuando se quiere sacar más provecho a la unidad de procesamiento de gráficos.

WebCL
Es un API de javascript que se basa en OpenCL ( el cual es un estándar de programación
en mutinucleos heterogéneos ). Es un modelo acelerador que genera un "kernel" que ejecuta el procesamiento que quieres.

Referencias
[1] Plan 2014. W3 Consorcium. http://dev.w3.org/html5/decision-policy/html5-2014-plan.html
Describe la planeación que se llevará a cabo este año para los entregables.
[2] Web Worker. Wikipedia. http://en.wikipedia.org/wiki/Web_worker
[3] WebGL- OpenGL ES 2.0 for the web. KHRONOS Group. http://www.khronos.org/webgl/
[3] WebCL . KHRONOS Group. http://www.khronos.org/webcl/
[4] RiverTrail. Intel. https://github.com/rivertrail/rivertrail/wiki