Quando si utilizza MPI_Isend
, il parametro MPI_Request
può essere un puntatore nullo (quando al mittente non interessa il messaggio dopo l'invio)?Parametro richiesta MPI_Isend
risposta
Risposta breve no - il parametro di gestione richiesta non può essere NULL
.
MPI_Isend()
avvia un'operazione di invio asincrona. Tutte le operazioni asincrone sono dati una maniglia richiesta che deve essere agito in un secondo momento in uno dei seguenti modi:
- blocco e attendere che l'operazione per finire con
MPI_Wait()
e gli amici - prova l'operazione per il completamento con
MPI_Test()
e gli amici fino a quando il test risulta positivo - libera la maniglia con
MPI_Request_free()
Entrambe le funzioni di attesa e la prova libera la richiesta una volta che è stata completata. Puoi anche liberarlo immediatamente dopo che è stato restituito da MPI_Isend()
. Questo non annulla l'operazione, ma contrassegna la richiesta di cancellazione non appena è finita. Non sarai in grado di ottenere lo stato dell'operazione di invio.
Se non vi interessa circa l'esito dell'operazione asincrona (ad esempio, stato di completamento, messaggio di ricevere lo status, il codice di errore, ecc), la cosa giusta da fare è la seguente:
MPI_Request req;
...
MPI_Isend(..., &req);
MPI_Request_free(&req);
...
Caveat : funziona per mandate asincrone poiché è possibile escogitare un altro metodo per verificare che l'operazione di invio sia stata completata, ad es il processo di destinazione potrebbe rispondere dopo aver ricevuto il messaggio. Ma non si dovrebbe mai liberare una richiesta di ricezione asincrona e si dovrebbe attendere o testare per il completamento, in quanto non ci sarà modo di sapere quando l'operazione è stata completata.
Questo è corretto. Volevo solo aggiungere che c'è un motivo per completare un 'MPI_Request' in qualche modo. È possibile che un'implementazione MPI differisca il lavoro effettivo di invio di un messaggio fino alla chiamata 'MPI_Wait' (o equivalente). Se una richiesta viene avviata e mai completata, è possibile che il messaggio non venga mai inviato. –
Grazie! Ho ampliato la parola "risultato" per riflettere meglio ciò che avevo in mente. –
- 1. Parametro richiesta Yii2 dall'URL
- 2. Errore di segmentazione MPI in MPI_Isend()
- 3. Richiesta parametro Perdere segno Plus
- 4. Parametro richiesta di uscita per modello
- 5. Invio booleano come parametro di richiesta
- 6. Aggiungere il parametro di richiesta per richiedere
- 7. Ok per chiamare MPI_Isend più volte su un buffer?
- 8. Parametro grant_type non valido o parametro mancante su POST per la richiesta di token di accesso
- 9. routing al controllore con una richiesta, non vuota parametro GUID
- 10. Symfony: indirizzo di posta elettronica come parametro di richiesta
- 11. Passo intestazioni di richiesta verso il Ribbon iRule parametro chiave
- 12. oggetti di richiesta Flask/Werkzeug formano il parametro
- 13. Come rimuovere un singolo parametro da un oggetto richiesta Symfony2
- 14. Ottieni il parametro di richiesta con Play Framework?
- 15. Come verificare se l'URI della richiesta ha qualche parametro
- 16. Parametro di richiesta iniettata di dipendenza con CDI e JSF2
- 17. Come inviare una richiesta HTTP con un parametro di intestazione?
- 18. Come utilizzare il parametro del percorso di richiesta nella richiesta di modulo Laravel 5?
- 19. Richiesta query richiesta SQL richiesta
- 20. MVC Web Spring: utilizza la stessa richiesta di mapping per il parametro di richiesta e la variabile di percorso
- 21. RICHIESTA RICHIESTA RICHIESTA Restituisce Nessuna uscita
- 22. Richiesta DoDragDrop DragSource
- 23. Ottenere il nome parametro
- 24. Richiesta SOAP con attributo
- 25. Come specificare il parametro di timeout della richiesta HTTP sul contenitore di servlet Java
- 26. Come utilizzare la variabile percorso anziché il parametro richiesta con risorsa $ AngularJS
- 27. Come creare una richiesta POST usando Powershell se body ha un parametro @type
- 28. Come modificare il valore di un parametro di richiesta in laravel
- 29. Come verificare se un parametro 'sconosciuto' viene fornito nella stringa di query di una richiesta?
- 30. bodyParser del espresso nodo non può ottenere il parametro nella richiesta GET
Provalo? Dovrebbe dare un segfault se non può. – aztaroth
Ok, ho provato e la risposta è no: MPI controlla che il puntatore della richiesta non sia nullo e altrimenti stampa un errore. – sunmat