Charm++

From HP-SEE Wiki

Revision as of 14:04, 2 August 2011 by Compchem (Talk | contribs)
Jump to: navigation, search

Contents


Authors/Maintainers

http://charm.cs.uiuc.edu/people

Summary

charm++ is a machine independent parallel programming system (an object-oriented asynchronous message passing parallel programming paradigm). Programs written using this system will run unchanged on MIMD machines with or without a shared memory. It provides high-level mechanisms and strategies to facilitate the task of developing even highly complex parallel applications. charm++ programs are written in C++ with a few library calls and an interface description language for publishing charm++ objects. charm++ supports multiple inheritance, late bindings, and polymorphism. Programs consist of potentially medium- grained processes (called chares), a special type of replicated process, and collections of chares. These processes interact with each other via messages. There may be thousands of medium-grained processes on each processor, or just a few, depending on the application. The “replicated processes” can also be used for implementing novel information sharing abstractions, distributed data structures, and intermodule interfaces. The system can be considered a concurrent object-oriented system with a clear separation between sequential and parallel objects.

Features

  • Listed features

Architectural/Functional Overview

Charm++ Runtime System

Usage Overview

Charm++ Programming Tutorial

Dependencies

  • list of all relevant dependencies on other libraries

HP-SEE Applications

  • IsyMAB

Resource Centers

  • BG, BG
  • HPCG, BG
  • IFIN_Bio, RO
  • NCIT-Cluster, RO

Usage by Other Projects and Communities

Some of the applications that have been created using Charm++:

Recommendations for Configuration and Usage

Please describe here any common settings, configurations or conventions that would make the usage of this resource (library or tool) more interoperable or scalable across the HP-SEE resources. These recommendations should include anything that is related to the resource and is agreed upon by administrators and users, or across sites and applications. These recommendations should emerge from questions or discussions opened by site administrators or application developers, at any stage, including installation, development, usage, or adaptation for another HPC centre.

Provided descriptions should describe general or site specific aspects of resource installation, configuration and usage, or describe the guidelines or convention for deploying or using the resource within the local (user/site) or temporary environment (job). Examples are:

  • Common configuration settings of execution environment
  • Filesystem path or local access string
  • Environment variables to be set or used by applications
  • Options (e.g. additional modules) that are needed or required by applications and should be present
  • Minimum quantitative values (e.g. quotas) offered by the site
  • Location and format of some configuration or usage hint instructing applications on proper use of the resource or site specific policy
  • Key installation or configuration settings that should be set to a common value, or locally tweaked by local site admins
  • Conventions for application or job bound installation and usage of the resource