Skip to main content

Package that supports mpi tests in pytest

Project description

https://travis-ci.org/NOhs/pytest-easyMPI.svg?branch=master https://img.shields.io/badge/License-MIT-blue.svg https://app.codacy.com/project/badge/Grade/23f4495e7d19402f93aa29b92885f281

Welcome to the pytest-easyMPI package!

This package aims at making MPI code testing as similar to testing regular serial code as possible. In doing so hopefully the users of this plugin can focus more on writing tests of their MPI code and spend less time figuring out how to integrate MPI tests into their other test cases.

Short example

The following shows an example of how to combine a serial and a parallel test in a single test file. The parallel test is run using 4 MPI ranks:

from pytest_easyMPI import mpi_parallel

def test_serial():
    assert True

@mpi_parallel(4)
def test_parallel():
    # Import MPI only inside the test that needs it
    # (to avoid spawning too many MPI communicators)
    from mpi4py import MPI

    data = MPI.COMM_WORLD.gather(MPI.COMM_WORLD.Get_rank())
    if MPI.COMM_WORLD.Get_rank() == 0:
        assert sum(range(MPI.COMM_WORLD.Get_size())) == sum(data)

The test can then be run by calling:

pytest

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytest-easyMPI-0.0.1.tar.gz (9.0 kB view details)

Uploaded Source

File details

Details for the file pytest-easyMPI-0.0.1.tar.gz.

File metadata

  • Download URL: pytest-easyMPI-0.0.1.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.3

File hashes

Hashes for pytest-easyMPI-0.0.1.tar.gz
Algorithm Hash digest
SHA256 d664cbc12643c37307ad5be1ded83145ec2b2b0d2686edaed7d5178661cd2d67
MD5 166f25125b296d18b4483a2d6a953852
BLAKE2b-256 c8a7378664b4f9bf9f059f43d8fe8eb6ca726be7c93a7fcccc5018605ac143be

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page