'da "atomik" bir çağrı çağrısı OpenMPI içinde bir atomik çağrının stdout'a (veya herhangi bir akışa) yazılması için bir komut veya teknik olup olmadığıyla ilgileniyorum.MPI
Dikkat ettiğim şey, MPI programlarının yürütülmesi sırasında, kodun (veya diğer akışların) yazılmasına yönelik çağrıların, her bir kodun belirli bir kod bölümüne geldiğinde yazabileceği gibi, kafa karıştırıcı hale gelebileceğidir. Sonuçları raporlarken, konuyu kafa karıştırıcı birkaç prova tarafından bir satır yazılabilir.
//Proc 10 - results calculated somewhere above
// result1 = 10
// result2 = 11
cout << "My results are: " << result1 << " " << resul2 << endl;
ve: Yani 2 farklı procs böyle bir şey yapabilir
//Proc 20 - results calculated somewhere above
// result1 = 20
// result2 = 21
cout << "My results are: " << result1 << " " << resul2 << endl;
Ama sonuç olabilir:
My results are: 20 My results are: 10 11 21
Ne aradığım bir gibi bir şey " "ya da" atomik cout'u bloke etme (dosya akışları gibi diğer akışlara yazmanın yanı sıra). Bu yüzden, bir cout'u yazmaya başladığımda, ifadenin sonuna kadar veya akışa bir bitiş veya bitiş akışı verilene kadar engellenir. Bu durumda olsaydı, (tabii ki, hala ilk gelirdi hangi hattı bilemeyiz ama) 2 satır ayrı olacağını garanti ediyorum:
My results are: 20 21
My results are: 10 11
İki farklı PROCESSES veya TWO iş parçacığı? –
2 farklı süreç hakkında sorular soruyordum. –
Aynı makinede veya farklı makinelerde mi çalışıyorsunuz? –