https://github.com/charmplusplus/charm4py
Parallel Programming with Python and Charm++
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.5%) to scientific vocabulary
Keywords
asynchronous-tasks
distributed-computing
hpc
parallel-programming
python
runtime
Last synced: 5 months ago
·
JSON representation
Repository
Parallel Programming with Python and Charm++
Basic Info
- Host: GitHub
- Owner: charmplusplus
- License: apache-2.0
- Language: Python
- Default Branch: main
- Homepage: https://charm4py.readthedocs.io
- Size: 2.09 MB
Statistics
- Stars: 295
- Watchers: 12
- Forks: 23
- Open Issues: 36
- Releases: 1
Topics
asynchronous-tasks
distributed-computing
hpc
parallel-programming
python
runtime
Created about 8 years ago
· Last pushed 8 months ago
Metadata Files
Readme
Changelog
License
Authors
README.rst
========
Charm4py
========
.. image:: https://github.com/charmplusplus/charm4py/actions/workflows/charm4py.yml/badge.svg?event=push
:target: https://github.com/charmplusplus/charm4py/actions/workflows/charm4py.yml
.. image:: https://readthedocs.org/projects/charm4py/badge/?version=latest
:target: https://charm4py.readthedocs.io/
.. image:: https://img.shields.io/pypi/v/charm4py.svg
:target: https://pypi.python.org/pypi/charm4py/
Charm4py (Charm++ for Python *-formerly CharmPy-*) is a distributed computing and
parallel programming framework for Python, for the productive development of fast,
parallel and scalable applications.
It is built on top of `Charm++`_, a C++ adaptive runtime system that has seen
extensive use in the scientific and high-performance computing (HPC) communities
across many disciplines, and has been used to develop applications that run on a
wide range of devices: from small multi-core devices up to the largest supercomputers.
Please see the Documentation_ for more information.
Short Example
-------------
The following computes Pi in parallel, using any number of machines and processors:
.. code-block:: python
from charm4py import charm, Chare, Group, Reducer, Future
from math import pi
import time
class Worker(Chare):
def work(self, n_steps, pi_future):
h = 1.0 / n_steps
s = 0.0
for i in range(self.thisIndex, n_steps, charm.numPes()):
x = h * (i + 0.5)
s += 4.0 / (1.0 + x**2)
# perform a reduction among members of the group, sending the result to the future
self.reduce(pi_future, s * h, Reducer.sum)
def main(args):
n_steps = 1000
if len(args) > 1:
n_steps = int(args[1])
mypi = Future()
workers = Group(Worker) # create one instance of Worker on every processor
t0 = time.time()
workers.work(n_steps, mypi) # invoke 'work' method on every worker
print('Approximated value of pi is:', mypi.get(), # 'get' blocks until result arrives
'Error is', abs(mypi.get() - pi), 'Elapsed time=', time.time() - t0)
exit()
charm.start(main)
This is a simple example and demonstrates only a few features of Charm4py. Some things to note
from this example:
- *Chares* (pronounced chars) are distributed Python objects.
- A *Group* is a type of distributed collection where one instance of the specified
chare type is created on each processor.
- Remote method invocation in Charm4py is *asynchronous*.
In this example, there is only one chare per processor, but multiple chares (of the same
or different type) can exist on any given processor, which can bring flexibility and also performance
benefits (like dynamic load balancing). Please refer to the documentation_ for more information.
Contact
-------
We would like feedback from the community. If you have feature suggestions,
support questions or general comments, please visit the repository's `discussion page`_
or email us at .
Main author at
.. _Charm++: https://github.com/charmplusplus/charm
.. _Documentation: https://charm4py.readthedocs.io
.. _discussion page: https://github.com/charmplusplus/charm4py/discussions
Owner
- Name: charmplusplus
- Login: charmplusplus
- Kind: organization
- Repositories: 1
- Profile: https://github.com/charmplusplus
GitHub Events
Total
- Create event: 17
- Issues event: 4
- Watch event: 4
- Delete event: 19
- Member event: 3
- Issue comment event: 18
- Push event: 81
- Pull request review comment event: 12
- Pull request review event: 38
- Pull request event: 36
- Fork event: 2
Last Year
- Create event: 17
- Issues event: 4
- Watch event: 4
- Delete event: 19
- Member event: 3
- Issue comment event: 18
- Push event: 81
- Pull request review comment event: 12
- Pull request review event: 38
- Pull request event: 36
- Fork event: 2
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 3
- Total pull requests: 17
- Average time to close issues: over 1 year
- Average time to close pull requests: 19 days
- Total issue authors: 1
- Total pull request authors: 5
- Average comments per issue: 1.33
- Average comments per pull request: 0.59
- Merged pull requests: 10
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 2
- Pull requests: 17
- Average time to close issues: about 3 hours
- Average time to close pull requests: 19 days
- Issue authors: 1
- Pull request authors: 5
- Average comments per issue: 0.0
- Average comments per pull request: 0.59
- Merged pull requests: 10
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- ZwFink (3)
- mayantaylor (2)
- matthiasdiener (1)
- adityapb (1)
Pull Request Authors
- mayantaylor (12)
- ritvikrao (11)
- ZwFink (3)
- AdvaitTahilyani (3)
- rik404 (2)
- matthiasdiener (1)
- adityapb (1)
- stevenqie (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 504 last-month
- Total dependent packages: 0
- Total dependent repositories: 1
- Total versions: 8
- Total maintainers: 2
pypi.org: charm4py
Charm4py Parallel Programming Framework
- Documentation: https://charm4py.readthedocs.io
- License: Free for non-commercial use
-
Latest release: 0.12.3
published almost 7 years ago
Rankings
Stargazers count: 3.8%
Forks count: 8.4%
Dependent packages count: 10.1%
Average: 12.5%
Downloads: 18.9%
Dependent repos count: 21.6%
Maintainers (2)
Last synced:
6 months ago
Dependencies
setup.py
pypi
- cython *
- greenlet *
- numpy >=1.10.0
.github/workflows/charm4py.yml
actions
- actions/checkout v2 composite