This poster is about an Eclipse plug-in we are developing focused on facilitating teaching techniques and implications of parallel, concurrent and multicore computing. This plug-in could be improved to become a common developing tool.
This plug-in builds inside Eclipse an atmosphere of visual programming based on icons. The tool allows students to create a visual model of a problem (by the interconnection of representative icons of atomic structures) building a graph that represent a complete programmable system. Then, automatically generates trust code of the problem in C/C++, inlaying the necessary elements of openMP or Pthreads for concurrent or parallel systems, to compile, execute and play the resulting system that match the reference model.
Why visual programming for parallel, concurrent and multicore computing? Well, the visual programming languages represent a change in the notation more than a change in the level or the paradigm of the language; the purpose of the visual approach is to make the programming process easier, faster and reliable; a visual language basically is a language in which a program is constructed using graphical and textual elements to create multidimensional expressions. Multidimensionality is easily expressed in a visual form and represents directly the potential concurrence in the solution of the problem. Traditionally the programming languages have been based on phrases written in English language with the incorporation of mathematical expressions enough to develop a sequential and modular solution of problems. Plain text and mathematical expressions are not good tools to model parallelism or concurrency nether to teach them.
Why we care about multicore programming? Programming computers, for complex tasks, is generally a difficult task, mainly when the objective is to take advantage of the concurrent and parallel processing capacities. Multicore technology brings concurrency and parallelism concepts into desktop computers making them part of the daily use in software development. Developers and also teachers or students could have a really hard time trying to explode these capacities. As we increase the community involved in multicore programming, we could think on having more and better tools.
How our plug-in works? The plug-in uses a backend based on Petri nets to validate and to optimize the visual model also to generate code, code than runs over shared memory architectures using the Pthreads or openMP libraries and also will run on distributed systems using MPI standard.
Javier is professor at Tecnologico de Monterrey, campus Guadalajara since January 2000. Javier got his master degree in Computer Science by Instituto Politecnico Nacional in Mexico. He is a developer, project leader and consultant, working with privated companies and public institutions, making analysis, design, re-engineering and implantation of computational systems and web applications. Areas of interest: distributed and parallel computing, data bases, Web services, software architecture and modeling. Member of Association Computing Machinery (ACM) since 2002. His publications include topics in: anti-patterns, visual programming environments and distributed systems. More about me at www.javiergs.com
Maria Elena (Helen) is full-time teacher at Tecnologico de Monterrey, campus Guadalajara since January 2001. Helen got her master degree in Computer Sciences by Tecnologico de Monterrey campus Guadalajara. Areas of interest: programming, software engineering, data bases and networking. Member of the Association Computing Machinery (ACM) since 2000. Participate as staff member at Object Oriented Programming, Systems, Languages, and Applications (OOPSLA) as staff member (volunteer) at '98, '99, '00, '01, '02, '05.