boostorg / boostorg/graph_parallel

Unhandled MPI_Requests generated by mpi_process_group constructor.

Aperta
#20 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
C++
Stelle
33
Fork
41
Merge medio
1g 11h
PR unite (30g)
1

Descrizione

The `boost::graph::distributed::mpi_process_group` class spawns some non-blocking communication in its constructor, but the resulting requests are never handled. I have tracked this down to the `global_trigger_launcher`, which has the following comment:

```
// TBD: do not forget to cancel any outstanding Irecv when deleted,
// if we decide to use Irecv
```

It looks like this was never done, but the default build configuration uses Irecv. To replicate this bug, simply create an mpi_process_group with any constructor, do nothing with it, and let it go out of scope. You will need some way to interact with the MPI profiling interface to detect leaked requests, such as LLNL's mpileaks:

https://github.com/LLNL/mpileaks

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Inizia con il costruttore distribuito di mpi_process_group e l’implementazione di global_trigger_launcher menzionata nell’issue. Riproduci il caso di uno scope vuoto con il profiling delle MPI requests, come LLNL's mpileaks, quindi traccia le requests non bloccanti create dalla configurazione Irecv predefinita. Il lavoro è completato quando la distruzione di un mpi_process_group non lascia alcuna MPI request in sospeso.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
cpp
Ambito
distributed-systems
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.