precice / precice/python-bindings

SolverInterface with MPI.COMM_WORLD not working

Open
#59 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Cython
Stars
30
Forks
19
PR merge metrics
No merged PRs in 30d

Description

I just tried to run the following script:

import precice
from mpi4py import MPI

solver_interface = precice.Interface("SolverOne", "precice-config.xml", 0, 1, MPI.COMM_WORLD)

It unfortunately resulted in a segmentation fault.

Note that we actually have a test for this case:
https://github.com/precice/python-bindings/blob/8463bf1160a734f0de76fc53090f779a4a6cae5a/test/test_bindings_module.pyx#L21-L23

However, it is not actually testing what we want it to test. I assume this is due to the mocked up preCICE version that we use for testing hiding problems with MPI.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the shown SolverInterface call with mpi4py and MPI.COMM_WORLD. Then inspect test/test_bindings_module.pyx at the linked test and determine how to exercise the binding without the mocked preCICE version hiding the failure. Done means the MPI case no longer segfaults and the test detects regressions.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.