Abstract - Provide a short (one paragraph) description of your proposal.
Nowadays it is necessary to paralellize code most importantly within science areas and given the advanages that ROOT brings to the scientific calculations, mpi appears as an essential extension just because with this support it will be much easier for the user to write efficient and distributed routines without the need to resort to complicated syntaxes which we face when writing code with this separated dependencies. ROOT lacks this capability and we are giving this advantage to it to expand his usage and demand.
Application - Describe your application in detail. Provide some background, describe the work that you are expecting to do in the time leading to the GSoC start.
Brief History of the project
I am working in this project for some time, and in the past I used boost to serialize data, but it changed to TMessage class thanks to Fons, Axel and Rene and all the code that I've rewritten is working in a better way. Now I have prototype to show you at https://github.com/omazapa/RootMpi.
Deliverables -
1) Source Code in an repository that lets you use mpi in ROOT with the next features:
- Communication Framework for scalar, arrays and objects datatypes also for synchronous and asynchronous communication:
- Peer to Peer Communication
- Collective Communication
- Broadcast
- Scatter
- Gather (Allgather)
- Reduce (Allreduce)
- Multidimensional Integration parallelized.
- Basic Matrix/Vectors operation parallelized, addition, substraction, scalar product,Vector/Matrix Multiplication, vector norm Blacs-like.
- GUI to compile and run RootMpi Programs that lets you select Mpi and Root options.
- Code in cmake/cpack to create debian packages and windows packages using NSIS.
- Support for linux using OpenMpi.
- Documentation and Examples
License: http://root.cern.ch/drupal/content/license
Timeline - Outline at least three milestones and describe what you are planning to have accomplished for each of them.
April 23:
19:00 UTC
|
Accepted student proposals announced on the Google Summer of Code 2012 site.
|
|
Review the state of the art, design and examples code.
|
May 21:
|
1 . Finish all base code(Mentor guidelines), cmake files, and packages creation.(Work in collective communication)
2. Finish Broadcast (for scalars, arrays and objects) also for synchronous and asynchronous communication in RootMpiIntraCommunicator class, write test files and examples.
3. Finish Scatter(for scalars, arrays and objects) in RootMpiIntraCommunicator class, write a test files and examples.
4. Finish Gatter method for scalars, arrays and objects; also for synchronous and asynchronous communication in RootMpiCommunicator class, write a test files and examples
5. Finish Reduce for scalars, arrays and objects defined only on basic Mpi Operations (+,-,*,/), also for synchronous, asynchronous communication in RootMpiIntraCommunicator
6.Write a rootmpi exec program to compile and run code in an easy way.
7.Review and debug the code and also improve the documentation and examples.
|
Interim Period:
|
1. Mentors give students a helping hand and guidance on their projects.
2. Apply changes and guidelines from mentor.
3. Create debian package and tar.gz package for users.
|
July 9:
19:00 UTC
|
Mentors and students can begin submitting mid-term evaluations.
|
July 13:
19:00 UTC
|
1. Mid-term evaluations deadline;
2. Google begins issuing mid-term student payments provided passing student survey is on file.
|
Interim Period:
|
1. Write parallel multi-dimensional integration algorithms, examples, tests and documentation.
2. Parallelize Matrix/Vector operations, scalar product, addition and subtraction.
3. write a graphical user interface to run rootmpi programs, with an easy way to select mpi or root options.
4. Write Performance tests.
|
August 13:
|
Suggested 'pencils down' date. Take a week to scrub code, write tests, improve documentation, etc.
|
August 20:
19:00 UTC
|
Firm 'pencils down' date. Mentors, students and organization administrators can begin submitting final evaluations to Google.
|
August 24:
19:00 UTC
|
1. Final evaluation deadline
2. Google begins issuing student and mentoring organization payments provided forms and evaluations are on file.
|
|
|
Requirements - Tell us what do you expect from us, what help are you going to need.
- Help and guidance in data serialization, libraries design, Implementation and coupling with ROOT libraries.
Information about yourself - Tell us about yourself (be verbose!). A paragraph that states your work and education experience should suffice. List the projects that you have participated in, it can be open source projects, university projects, freelance projects or anything else which you think might be relevant. If you have a blog where you write about the work you do or things you study please provide a link to it. Do not forget to provide us with your email address and other contact details (e.g. Jabber ID, skype)
Full Name: Omar Andres Zapata Mesa
email: andresete.chaos@gmail.com
Systems’ Engineering Student 3th Year
ACADEMIC EVENTS
COMPLEMENTARY STUDIES
Computational Physics, Physics Institute, Universidad de Antioquia: Teacher Jorge Zuluaga Callejas, PhD.
WORK EXPERIENCE
Head Developer Phenomenology of Fundamental Interactions Group (Gfif)http://gfif.udea.edu.co Division of computer science Gfif Developers (GfifDev)
System Manager of Regional Center for Simulation and Advanced Computing (CRESCA), University’s headquarters of research (SIU), Universidad de Antioquia (2009)
Head developer of Computer Science Developer, of Computational Physics and Astrophysics Group (FACom) Univerdiad de Antioquia.
Computer Assistant in the Journal of Physics: Sociedad Colombiana de Física. (2010)
Google Summer of Code 2010 programmer, with the python organization in scipy (Scientific Python) division in the project Ipython (Interactive Python), Mentor: Fernando Perez University of California at Berkeley.
-
Software developer in C + + for Orbital Mechanics Group at the University of Texas at Austin, mentored by Dr. Cesar Ocampo.