What is COMODI?

This project is an international and interdisciplinary collaboration for addressing the problem of programming crisis in computational sciences [Post 2004], [Post 2005], [Lazar]. The component based approach with visual, automatic, intelligent assembling of components brings programming to new heights where the borderline between developers and users, writing new code and reusing old one, becomes diffuse. Once mature and widespread, component oriented programming will be the magic wand of disseminating science within the scientific community while making science accesible for everyone outside the community.

What makes COMODI different? We are committed to make the learning curve for developers the shortest possible without enforcing compatibility with some newly defined interfaces, knowledge of object-oriented concepts or other programming languages than the developer is used to.

We believe that the success of the project is up to the scientific software developer community in the first place. COMODI's popularity among non-programmer users will become an issue once the developer community has formed a certain tradition in producing and reusing computational components and the distributed component repository will provide a sufficient variety and quality of components such that "non-programmer" scientists can easily and confidently assemble computational projects.

The framework is constructed bottom-up with regular functions as atomic components. We claim that higher level constructs can be built on the top of this atomic layer.

Participants

    Zsolt I. Lazar1
    Mathe Zoltan2
    Lehel I. Kovacs2
    Katalin Kovacs1
    Andreea Fanea2
    Jouke Heringa3

Alumni
     Bazil Parv2
     Simona Motogna2
     Simon de Leeuw3
     Dragos Petrascu2
     Vladiela Ciobotariu-Boer2

1Theoretical and Computational Physics Chair, Faculty of Physics, Univ. Babes-Bolyai, Romania
2Department of Computer Science, Faculty of Mathematics and Computer Science, Univ. Babes-Bolyai, Romania
3PCMT Group, DelftChemTech, TU Delft, Netherlands

Software

Version 0.1 ([Para 2006]) can be downloaded here. It is a test version featuring a simple Python user interface. There is parser being developed for semi-automatic extraction of interface related information from any given source code once the EBNF description of the implementation is provided. Present prototype demonstrates interface extraction with built-in EBNF data for C. For now it only runs under Windows.


References

  1. D.E. Post, The Coming Crisis in Computational Science, Proceedings of the IEEE International Conference on High Performance Computer Architecture: Workshop on Productivity and Performance in High-End Computing, Madrid, Spain, February 14, 2004
  2. D.E. Post and L.G. Votta, Computational Science Demands a New Paradigm, Phys. Today, January 2005, p.35
  3. Zs.I. Lazar, B. Parv, A. Fanea, J. Heringa, S.W. de Leeuw, COMODI: Guidelines for a Component Based Framework for Scientific Computing, Studia Universitatis Babes-Bolyai, Series Informatica, Vol. XLIX, Nr. 2 (2004)
  4. Zs.I. Lazar and B. Parv, COMODI: Component Wiring in a Framework for Scientific Computing, Studia Universitatis Babes-Bolyai, Series Informatica, Vol. XLIX, Nr. 2 (2004)
  5. Zs.I. Lazar, Z. Mathe, L.I. Kovacs, COMODI: Architecture for a Component-Based Scientific Computing System, Proceedings of the STATE-OF-THE-ART IN SCIENTIFIC AND PARALLEL COMPUTING (PARA 06), UmeƄ, Sweden, June 18-21, 2006, Springer-Verlag Lecture Notes in Computer Science (in print)e
  6. Zs.I. Lazar, A. Fanea, D. Petrascu, V. Ciobotariu-Boer and B. Parv,COMODI: On the Graphical User Interface, IEEE Proceedings of the 7th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC 05), Timisoara, Romania, Sept. 25-29, 2005 (arXiv:cs.CE/0510034).
  7. R. Bramley, K. Chiu, S. Diwan and D. Gannon, A Component Based Services Architecture for Building Distributed Applications , Ninth IEEE International Symposium on High Performance Distributed Computing, August 01-04, 2000
  8. S. Krishnan, D. Gannon, XCAT3: A Framework for CCA Components as OGSA Services , Proceedings of HIPS 2004, 9th International Workshop on High-Level Parallel Programming Models and Supportive Environments. April (2004)
  9. T. M. Eidson, A Component-based Programming Model for Composite, Distributed Applications , ICASE Report No. 2001-15, May (2001).
  10. D.D. Bernholdt, W. R. Elwasif, J.S. Kohl and T.G.W. Epperly, A Component Architecture for High Performance Computing , Proceedings of the Workshop on Performance Optimization for High-Level languages and Libraries, New York, NY, June (2002)
  11. A. Mayer, S. McGough, M. Gulamali, L. Young, J. Stanton, S. Newhouse, J. Darlington, Meaning and Behaviour in Grid Oriented Components , Proceedings of the Third International Workshop on Grid Computing, Springer-Verlag (2002)
  12. J.P. Morrison, Flow-Based Programming: A New Approach to Application Development , Van Nostrand Reinhold (1994)
  13. J.P. Morrison, Asynchronous Component-Based Programming