You are on page 1of 18

Eclipse plug-in to aid generating OpenMP and Pthreads code through Visual Programming!

Tecnolgico de Monterrey ! campus Guadalajara!

01/02/2008 !

Javier Gonzlez Snchez y Maria Elena Chavez Echeagaray !

1 !

Contenido!
1. 2. 3. 4. 5. Marco Contextual! Construccin del modelo visual! Validacin con RdP y Optimizacin de cdigo base! Generacin de cdigo! Conclusiones!

01/02/2008 !

Javier Gonzlez Snchez y Maria Elena Chavez Echeagaray !

2 !

Objetivo!
!
Crear un ambiente de programacin visual que facilite el modelado de sistemas paralelos y la enseanza de cmputo paralelo y multicore:! ! Proporcionando para ello un ambiente de desarrollo capaz de generar cdigo textual paralelo optimizado a partir de un modelo visual de la aplicacin. !

1
01/02/2008 ! Javier Gonzlez Snchez y Maria Elena Chavez Echeagaray ! 3 !

1
01/02/2008 ! Javier Gonzlez Snchez y Maria Elena Chavez Echeagaray ! 4 !

Introduction!
! The use of a traditional language to develop parallel programs is not that simple. This Eclipse plug-in is focused on facilitating teaching/learning techniques and implications of parallel, concurrent and multicore computing. ! How to improve the way in which we develop parallel computing?. How can we make this process easier?. Using a development environment which generate parallel textual code having as base a visual model of the system. Event though it cant warranty the best parallel solution it can warranty a functional solution.!

1
01/02/2008 ! Javier Gonzlez Snchez y Maria Elena Chavez Echeagaray ! 5 !

Introduccin!
Modelo visual a RdPM para su anlisis y optimizacin! ! !De la RdPM a pseudocdigo, el cul ser convertido a cdigo fuente para una plataforma particular.!

1
01/02/2008 ! Javier Gonzlez Snchez y Maria Elena Chavez Echeagaray ! 6 !

Modelo visual!
Se utiliza un lenguaje visual donde los programas son construidos mediante iconos, conectores y elementos de texto para crear expresiones multidimensionales.! Cada icono en el grafo representa una entidad diferente: estructura de control de ujo, datos o atributos.! Existen dos tipos de conectores, los cuales denen dos tipos de ujo: ejecucin y control.!

2
01/02/2008 ! Javier Gonzlez Snchez y Maria Elena Chavez Echeagaray ! 7 !

Modelo visual!
! !
Clasicacin de actores: ! Secuenciales ! Condicionales ! Ciclos y ! Control de ujo !

2
01/02/2008 ! Javier Gonzlez Snchez y Maria Elena Chavez Echeagaray ! 8 !

Validacin!
El ujo de ejecucin se analiza al momento de interconectar los elementos empleando anlisis incremental.! Se garantiza que los elementos sean correctos y que estn conectados de forma correcta en todo momento.! El ujo de control est conformado por iconos de control (semforos, candados, et al) y conectores.! Se aplica el mtodo de reachability tree a la RdP para garantizar que es correcta y se aplican tcnicas de fusin para reducir el modelo.! 3
01/02/2008 ! Javier Gonzlez Snchez y Maria Elena Chavez Echeagaray ! 9 !

Validacin!
El modelo visual es transformado a una RdP.! ! La RdP representa la ejecucin (tanto secuencial como concurrente) y el ujo de control (sincronizacin, semforos, candados, etc.)! ! La RdP dene el modelo formal del sistema.!

3
01/02/2008 ! Javier Gonzlez Snchez y Maria Elena Chavez Echeagaray ! 10 !

Validacin!
!Si la RdP satisface las caractersticas de alcanzabilidad y vivacidad, el modelo es correcto. !

3
01/02/2008 ! Javier Gonzlez Snchez y Maria Elena Chavez Echeagaray ! 11 !

Optimizacin!
El modelo formal puede ser optimizado. La optimizacin ! incluye:! Analizar la dependencia de datos. Para esto se utiliza el grafo subjacente a la RdP. Se intenta asegurar la disponibilidad de datos en cada nodo as cuidar los accesos concurrentes a datos compartidos. ! Aadir iconos de control. Analizar la dependencia de datos permite identicar la necesidad de elementos de control como apoyo al cuidado de los accesos concurrentes a datos compartidos.! 3
01/02/2008 ! Javier Gonzlez Snchez y Maria Elena Chavez Echeagaray ! 12 !

Optimizacin!
Reduccin de secuencias y fusin.! El nmero mximo de hilos a generar est predenido.!

La reduccin del modelo facilita el anlisis e impacta en la cantidad de lneas de codigo que se generar. Las propiedades de seguridad, alcanzabilidad y vivacidad se conservan.

3
01/02/2008 ! Javier Gonzlez Snchez y Maria Elena Chavez Echeagaray ! 13 !

Optimizacin!

!For a N value given


in a node, it is establish a parallel cyclic structure that allows to chunk a task. !

3
01/02/2008 ! Javier Gonzlez Snchez y Maria Elena Chavez Echeagaray ! 14 !

Results!
Code generation! Once we have the Petri net and wed optimized that net, we could transform it into a base code. Using this base code we would obtain the nal code.! Base code or pseudo code consists on a textual expression of the MPN of the system. ! Model projection: the textual representation of actors and trajectories are mapped to a programming language using parallel and multicore libraries to a pre-established architecture: distributed system, parallel system or multicore system.! 4
01/02/2008 ! Javier Gonzlez Snchez y Maria Elena Chavez Echeagaray ! 15 !

Results! !MPN structure with all


its data in places and transitions is converted into a plain text (pseudo-code le), this le is distributed in scenarios and each scenario is divided in ve code zones: global data, modules, actors and control and execution ow specications. !

4
01/02/2008 ! Javier Gonzlez Snchez y Maria Elena Chavez Echeagaray ! 16 !

Results!

!
Zones distribution at the le of the resultant source code. !

4
01/02/2008 ! Javier Gonzlez Snchez y Maria Elena Chavez Echeagaray ! 17 !

Conclusion!
This visual plug-in allows:! An easiest design and a better way to check for grammatical errors.! To validate your system through a formal tool.! To generate standard, ordered and reliable code.! Parallelism optimization. Even though this parallelism optimization could be limited by semantics, it is a good approach which will increase the systems performance according with Amdahl law.! 5
01/02/2008 ! Javier Gonzlez Snchez y Maria Elena Chavez Echeagaray ! 18 !

You might also like