# getLeaderRank: ERROR: Unknown accessor name

**URL:** <https://precice.discourse.group/t/getleaderrank-error-unknown-accessor-name/210>\
**Category:** Using preCICE\
**Tags:** communication, inactive\
**Created:** [April 15, 2020, 2:09pm UTC](https://precice.discourse.group/t/getleaderrank-error-unknown-accessor-name/210 "2020-04-15T14:09:46Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![ajaust](https://yyz2.discourse-cdn.com/free1/user_avatar/precice.discourse.group/ajaust/32/160_2.png) [@ajaust](https://precice.discourse.group/u/ajaust)\
**Post date:** [April 15, 2020, 2:09pm UTC](https://precice.discourse.group/t/getleaderrank-error-unknown-accessor-name/210/1 "2020-04-15T14:09:47Z")

</div>

Hi,

I am setting up preCICE on a cluster and in some configurations I get the following error

```
[com::MPIDirectCommunication]:118 in getLeaderRank: ERROR: Unknown accessor name "BiotSolverMaster"!

```

and I have no idea where this comes from.

Some quick facts:

- My simulation has two participants named `BiotSolver` and HDFlowSolver`.
- Any of the two solverr might show the error message.
- Both solvers are implemented in FEniCS. Therefore I use the preCICE-Python bindings.
- I am still on preCICE 1.6.1 (due to compatibility reasons).
- Most of the software has been installed Spack (including preCICE), but not FEniCS.
- The simulation is started via SLURM.
- I use mpich 3.3.1 with GCC 9.2.0.
- This problems seems to become worse the more nodes I use. 2 nodes seems to be fine, but already 3 nodes seems to be a problem.
- Sometimes the simulation seems to hang at the beginning similar to what is described [in the documentation](https://github.com/precice/precice/wiki/Problems-with-Establishing-the-Communication). The solutions proposed do not seem to solve my problem.
- This are the logfiles I get: [biotsolver-18921.log](https://precice.discourse.group/uploads/short-url/xJtax0UKzyiUiisd61QB3zH5h8G.log) (2.2 KB) [hdflowsolver-18921.log](https://precice.discourse.group/uploads/short-url/3x0kH2wfhkGVnJURV2BeoBVCJof.log) (1.2 KB)
- This is my [SLURM batch script](https://precice.discourse.group/uploads/short-url/knxUdpzAWZ2MqWn5CPrvv8re4nC.txt) (1.9 KB). As you can see I am getting desparate.

Could anyone point me in a useful direction for debugging this issue? Is this a network issue or rather a MPI problem?

Thanks in advance!

Best,  
Alex

---

<div class="post-metadata">

**Author:** ![ajaust](https://yyz2.discourse-cdn.com/free1/user_avatar/precice.discourse.group/ajaust/32/160_2.png) [@ajaust](https://precice.discourse.group/u/ajaust)\
**Post date:** [April 15, 2020, 2:28pm UTC](https://precice.discourse.group/t/getleaderrank-error-unknown-accessor-name/210/2 "2020-04-15T14:28:01Z")

</div>

Some observation:

It seems that starting the executable inside the jobscript with

```bash
time srun --mpi=pmi2 -n 12 python3 biot_solver.py biot.input > biotsolver-${SLURM_JOBID}.log 2>&1 &

```

instead of `mpirun` makes the error `getLeaderRank: ERROR: Unknown accessor name` disappear.

The hanging of the simulation at the start seems to be preCICE distributing the meshes and computing the meshes (?!). I will monitor this further and report again.

---

<div class="post-metadata">

**Author:** ![uekerman](https://yyz2.discourse-cdn.com/free1/user_avatar/precice.discourse.group/uekerman/32/2199_2.png) [@uekerman](https://precice.discourse.group/u/uekerman)\
**Post date:** [April 16, 2020, 6:25am UTC](https://precice.discourse.group/t/getleaderrank-error-unknown-accessor-name/210/3 "2020-04-16T06:25:15Z")

</div>

Hi @ajaust,

Your job script indeed looks desparate 🙈  
What is your preCICE config? Do you use MPI or TCP/IP for m2n communication? If TCP/IP which network do you use?  
What is missing in your job script is to pin your mpi jobs to nodes [like done here](https://github.com/precice/precice/wiki/SuperMUC-NG#job-script-for-ateles).  
In the past we also had problems with participants started on the same node.

---

<div class="post-metadata">

**Author:** ![ajaust](https://yyz2.discourse-cdn.com/free1/user_avatar/precice.discourse.group/ajaust/32/160_2.png) [@ajaust](https://precice.discourse.group/u/ajaust)\
**Post date:** [April 16, 2020, 8:29am UTC](https://precice.discourse.group/t/getleaderrank-error-unknown-accessor-name/210/4 "2020-04-16T08:29:34Z")

</div>

Thanks! At the moment I can say that starting the job from my jobscript with `time srun --mpi=pmi2 -n 12` made the situation a bit more stable, but the simulation still tends to hand in the beginning where both solvers just show `[impl::SolverInterfaceImpl]:232 in initialize: Setting up slaves communication to coupling partner/s`. It seems to be be a bit random though so I cannot reproduce it properly at the moment. ☹

I have attached my [precice-config.xml](https://precice.discourse.group/uploads/short-url/1xTTqwgdypj6UIktcf3mK3Cw8UG.xml) (5.1 KB) for completeness!

I use TCP/IP (sockets) for the communication. I have tried to set the communication interface explicitly to `eth0`, but I am not sure if this changes much. I did it just now and restarted a setup that would else hang during initialization and it runs now. At the moment, I am not sure whether this is actually related or not. A lot of things happening seem to be a unpredictable at the moment.

Would you recommend trying the MPI communication interface? My libraries and solver a are built on top of MPICH so the support should be better than for OpenMPI.

I have tried to look about [information on running preCICE on clusters](https://github.com/precice/precice/search?q=cluster&type=Wikis) which led me mainly to the information about [the MAC cluster](https://github.com/precice/precice/wiki/mac_cluster) and [SuperMUC](https://github.com/precice/precice/wiki/SuperMUC) and CooLMUC. The information about CooLMUC mentioned Slurm so it I assumed it would be easy to run jobs with Slurm.

I did not search for the term “Slurm” which would have led me to the page that you have linked. However, even then I am not sure if would have followed the job script on that page as it is not obvious whether it is so elaborate due to Slurm or due to the configuration of the supercomputer. Maybe we should add some of the information on network troubleshooting page or add a new page to the wiki that collects links to and/or information about running preCICE on clusters.

Is it a problem of Slurm or preCICE when participants share nodes? I tried to get my processes at least grouped by Slurm such that there would be minimal sharing with `-m block`, but it seems that Slurm does not care about that.

---

<div class="post-metadata">

**Author:** ![uekerman](https://yyz2.discourse-cdn.com/free1/user_avatar/precice.discourse.group/uekerman/32/2199_2.png) [@uekerman](https://precice.discourse.group/u/uekerman)\
**Post date:** [April 16, 2020, 4:17pm UTC](https://precice.discourse.group/t/getleaderrank-error-unknown-accessor-name/210/5 "2020-04-16T16:17:37Z")

</div>

> [@ajaust](#):
>
> Would you recommend trying the MPI communication interface? My libraries and solver a are built on top of MPICH so the support should be better than for OpenMPI.

In our experience, sockets are more reliable, but MPI is definitely worth a try.

> [@ajaust](#):
>
> I have tried to set the communication interface explicitly to `eth0` , but I am not sure if this changes much.

Is there no infiniband? `ib0` or similar? Normally this is crucial, with `lo` you can only connect to sockets on the same node.

> [@ajaust](#):
>
> A lot of things happening seem to be a unpredictable at the moment.

Sounds a lot like it depends on which hardware you get and how the threads are pinned.

> [@ajaust](#):
>
> Maybe we should add some of the information on network troubleshooting page or add a new page to the wiki that collects links to and/or information about running preCICE on clusters.

Yes, good idea.

> [@ajaust](#):
>
> Is it a problem of Slurm or preCICE when participants share nodes?

No, more of the concrete supercomputer. Was a problem on HazelHen IIRC.

---

<div class="post-metadata">

**Author:** ![ajaust](https://yyz2.discourse-cdn.com/free1/user_avatar/precice.discourse.group/ajaust/32/160_2.png) [@ajaust](https://precice.discourse.group/u/ajaust)\
**Post date:** [April 17, 2020, 7:57am UTC](https://precice.discourse.group/t/getleaderrank-error-unknown-accessor-name/210/6 "2020-04-17T07:57:33Z")

</div>

> [@uekerman](#):
>
> In our experience, sockets are more reliable, but MPI is definitely worth a try.

Then I willstick with sockets for the moment.

> [@uekerman](#):
>
> Is there no infiniband? `ib0` or similar? Normally this is crucial, with `lo` you can only connect to sockets on the same node.

No Infiniband, but a bit faster than normal standard network. It is an internal cluster of the institute. I want to get some experience with my code + preCICE and MPI before I go to the big machine.  
I will see how it is going when specifying the network interface explicitly. The cluster here at the moment is also undergoing heavy maintenance.

From the preCICE documentation

> For certain systems, you need to specify the network over which the TCP/IP sockets get connected: `network="..."` . It defaults to `"lo"` .

it was not really clear to me that I **must** specify the network interface in the preCICE configuration.

> [@uekerman](#):
>
> Sounds a lot like it depends on which hardware you get and how the threads are pinned.

I guess it might be (the lack of) pinning or a configuration issue. It is a small system with only few (=16) identical nodes.

> [@uekerman](#):
>
> No, more of the concrete supercomputer. Was a problem on HazelHen IIRC.

At least this problem is solved with Hazel Hen being disassembled. 😉

---

<div class="post-metadata">

**Author:** ![fsimonis](https://yyz2.discourse-cdn.com/free1/user_avatar/precice.discourse.group/fsimonis/32/6_2.png) [@fsimonis](https://precice.discourse.group/u/fsimonis)\
**Post date:** [January 2, 2024, 10:39am UTC](https://precice.discourse.group/t/getleaderrank-error-unknown-accessor-name/210/7 "2024-01-02T10:39:36Z")

</div>

Closed on January 2, 2024, 10:39am UTC


