Charm++

From HP-SEE Wiki

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