我試圖使用MPI(MPMD通信)來溝通兩個不同的進程。其中一個使用GLUT來渲染一些基於另一個進程發送的數據而生成的數據。Glut + MPI_Send,實際上並沒有阻止
我的問題是,在初始化階段,「消費者」(使用GLUT的人)將某些配置數據發送到「生產者」,但似乎MPI_Send調用沒有被阻止。例如,我從消費者向生產者發送4條不同的消息,每條消息都有不同的標籤。它似乎工作正常。然後我評論第一個MPI_Send,而不改變另一個進程的代碼(這意味着它們都不應該分別超過第一個MPI_Send和MPI_Recv)。問題在於發送者發送了所有這三個消息,並且似乎每個MPI_Send都返回MPI_SUCCESS,因爲在每個MPI_Send打印消息對應的正確進化之後我做了測試。同時,接收器不會進步。
我試圖在簡單的應用程序中重現此行爲,沒有GLUT,他們的工作。但與此同時,我認爲沒有理由讓GLUT引起這個問題。你有什麼建議嗎?
在此先感謝。
您錯誤地將_synchronous behaviour_與_blocking_相混淆。 –