W programie kontenery są kojarzone przez adaptacyjny system uruchomieniowy bezpośrednio z fizycznymi procesorami. Kojarzenie to jest zupełnie transparentne dla programisty co pozwala środowisku na dynamiczne zmiany w przydzielaniu procesorów kontenerom podczas wykonywania programu. To z kolei zapewnia obsługę takich mechanizmów jak measurement-based load balancing, fault tolerance, automatic checkpointing, jak również możliwość zmiany ilości procesorów wykorzystywanych przez program.

Biblioteka wspierająca symulowanie dynamiki molekularnej (dynamika molekularna – molecular dynamics simulation package NAMD) jest zaimplementowana właśnie z użyciem Charm++.

Adaptive MPI (AMPI) jest implementacją standardu Message Passing Interface na czele z Charm++ runtime system i udostępnia jego możliwości dla bardziej tradycyjnego modelu programowania, jakim jest MPI.

AMPI zamyka każdy proces MPI w migrowalnym na poziomie użytkownika wątku, pod postacią obiektu Charm++. Poprzez wbudowanie każdego wątku w kontener, programy AMPI automatycznie zaczynają korzystać z