Download presentation
Presentation is loading. Please wait.
Published byJohn Francis Modified over 9 years ago
1
Update on CSDMS Adoption (and Infiltration) of CCA Dr. Scott Peckham Chief Software Architect for CSDMS January 17, 2008 csdms.colorado.edu CCA Winter 2008 Meeting Boulder, Colorado
2
We are 8 months into our project, have written/approved bylaws, have hired people, established an executive committee, steering committee and 5 working groups. Not all working groups have met; still in planning phase. Have defined many of our technical requirements. "Shopped around" to compare component-based architectures such as ESMF, OpenMI and CCA. We want to use only open-source tools and our products will be open-source. Helped with alpha testing of Boyana's Contractor-based build system. (Mac OS 10.4 & 10.5, Cygwin). We feel that tools like this and Bocca will promote more rapid adoption of CCA by our community. Successfully used Bocca to create some simple CCA "demo" projects. Status of the CSDMS Project
3
CCA: The Ccaffeine Tool
4
How to best accommodate Windows users (e.g. Cygwin). We can probably contribute money to support a postdoc to work on this. Contributing to testing and the tutorials. Any tutorials on HPC? An inventory of currently available components that we may be able to use. How best to package components for sharing with other projects. (A package manager in Bocca ?) Learning about the experiences of other communities with regard to interfaces. Any common themes, advice or "recommended practices"? Contributing to a componentized, wxPython version of the Ccafe GUI (now in Java) with ability to "zoom in" to see the wiring diagram of a component that was built from components. Extension of Bocca that would allow creation of stand-alone executables. Any papers that this group would consider "recommended reading" on CCA. Our Near-term Interests
5
Babel is an impressive tool and is a strong selling point for the adoption of CCA by our community. Python support is attractive due to rich set of existing packages (see next slide), GUIs & graphics. Bocca is also an impressive tool with user-friendly syntax that greatly enhances CCA usability. We expect it to play a key role in the use of CCA by our community. From a newcomer's perspective, the CCA website is the “point of entry” and the source of first impressions. It has lots of useful information (papers, PPTs, tutorials, meetings, etc.). However, some web content is outdated, very few components are "visible” (Toolkit & Components links) & some key selling points (e.g. awards) are “buried” in PPTs. “Potential customers” also want to know about longevity, funding, maturity, impact, who else is using CCA, etc. The SciDAC history is a bit difficult for a newcomer to unravel. Web searches reveal (1) unfunded projects (e.g. Alexandria), (2) inactive projects (e.g. XCAT, CCAIN), (3) obsolete acronyms (e.g. CCTTSS to TASCS, TOPS to PERI, TSTT to ITAPS). A CCA history page and removal of obsolete web pages would help with these issues. Feedback on CCA and Tools
6
Butler, H. (2005) A guide to the Python universe for ESRI users, ArcUser (April-June 2005), p. 34-37. (tools for ellipsoids, datums, file formats like shapefiles) Python: Batteries Included, special issue of "Computing in Science & Engineering devoted to Python, May-June 2007, vol. 9(3), 66 pp. Nice collection of articles, incl. papers on ipython, matplotlib, GIS.
7
is Middleware for HPC CORBACOM.NETBabel BlueGene, Cray, Linux, AIX, & OS X No Yes* FortranNoLimited Yes Multi-Dim ArraysNo Yes Complex NumbersNo Yes LicensingVendor Specific Closed Source Open Source 2006 “The world’s most rapid communication among many programming languages in a single application.” Million calls/sec CORBA Babel.NET COM Performance (in process) CCA: The Babel Tool
8
Language interoperability is a powerful feature of the CCA framework. Components written in different languages can be rapidly linked with hardly any performance cost. This allows us to “shop” for open-source solutions (e.g. libraries), gives us access to both procedural and object-oriented strategies (legacy and modern code), and allows us to add graphics & GUIs at will.
10
Tentative Functional Specs for the CSDMS Support for multiple operating systems (especially Linux, Mac OS X and Windows) Support for parallel (multi-proc.) computation (via MPI standard) Language interoperability (e.g. CCA is language neutral) to support code contributions written in C, Fortran as well as more modern object-oriented languages (e.g. Java, C++, Python) Support for both legacy (non-protocol) code and more structured code submissions (procedural and object-oriented) Should be able to interoperate with other coupling frameworks Support for both structured and unstructured grids Platform-independent GUI (e.g. via wxPython) Large collection of open-source tools
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.