Abstract

We present a relatively straightforward way to integrate existing software packages into a full multi-scale simulation package in which each application runs in its own address space and there is no run-time intervention by the researcher. The PUPIL (Program for User Package Interfacing and Linking) architectural concept is to provide a simulation Supervisor, implemented as a Manager and various Workers which involve small wrapper interfaces written and installed within each application package and various communication services. The different, autonomous packages (“Calculation Units”) are plugged into the PUPIL system which one then operates as a software driver for them. Well-defined protocols are provided for communication between the different Calculation Units and the PUPIL system. The CORBA communication protocol is used to exchange information between running processes. All simulation directives from the user are stored in an XML file that is interpreted by the PUPIL Manager and Workers. An initial version has been designed using the Object Oriented (OO) paradigm and implemented in Java as a fast prototyping language. Tests of implementation ease and of operational correctness (on toy physical systems) have been carried out. In the former category, we document how interfaces to both DL_POLY and SIESTA were done relatively straightforwardly. In the latter category, the most demanding test was the joining of three different packages to do a MD calculation with pattern recognition to identify the QM-forces region and an external QM force calculation. The results show that PUPIL provides ease of operation and maintenance with little overhead.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call