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
Compartiendo para dos mundos
Hablando de programación paralela.
Tutoriales en: https://www.youtube.com/user/jambrizgdl
Twitter: @dogoteacher
Buscar este blog
lunes, 17 de febrero de 2014
Courseware de programación paralela en Intel
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
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
é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
jueves, 15 de noviembre de 2012
Intel vs NVidia
Tratando de colocarse en el mercado de tarjetas con co-procesadores para proporcionar procesamiento paralelo de "altos vuelos", Intel ha sacado su Xeon Phi (hace 2 días ).
La revista Dr Dobbs da más detalles en uno de sus artículos al respecto y en Youtube ya esta también un conjunto de videos que apoyan su aprendizaje!
¿quién ganará?
(a) Intel
(b) NVidia
jam
La revista Dr Dobbs da más detalles en uno de sus artículos al respecto y en Youtube ya esta también un conjunto de videos que apoyan su aprendizaje!
¿quién ganará?
(a) Intel
(b) NVidia
jam
lunes, 6 de agosto de 2012
Halide: The new MIT creation for image processing
Halide use parallelism for image-processing. You have to specify 2 things: the algorithm that you using and the processing schedule.
Halide is joining to the battle for the image processing against IAL
Halide usa la programación en paralelo para realizar el procesamiento de imágenes. Se necesita especificar 2 cosas: el algoritmo que se usará y una agenda del procesamiento ( como atacarás el problema usando la programación paralela ) Hay que recordar que hay varias formas de convertir un programa "serial" a paralelo .
Hay otros lenguajes de este tipo en la comunidad académica que buscan colocarse, uno de ellos IAL.
Para ver el artículo completo.
jam
Suscribirse a:
Entradas (Atom)