दिलचस्प पोस्ट
कैसे मैं कोणीयसंग में काम कर रहा हूँ बुनियादी auth? मैं रनटाइम पर कैसे पता लगा सकता हूं कि .NET संस्करण 4.5 वर्तमान में आपका कोड चला रहा है? आवश्यकता के बीच अंतर, शामिल और need_once? कैसे isset () और खाली () से बचने के लिए जावास्क्रिप्ट में एंगल स्कोप वैरिएबल पास करें jQuery अजाक्स – स्थिति कोड 0? एपीके पर हस्ताक्षर किए जाने या "डिबग बिल्ड" की जांच कैसे करें? मैं iPhone पर ARP तालिका कैसे पूछूं? जावा को हेक्स में परिवर्तित करना और फिर से वापस करना ऑफ़लाइन वेब अनुप्रयोग के लिए छवि डेटा संग्रहीत करना (क्लाइंट-साइड स्टोरेज डेटाबेस) JQuery का उपयोग करके सीएसएस कैसे बदल सकता है? एक ही जेटी्री के लिए पेड़ कोल्डस्ड आइकन को अनुकूलित करना JSON Array से डुप्लिकेट ऑब्जेक्ट निकालें एक निश्चित वर्ण के बाद सब कुछ निकालें <Django Object> JSON सीरियलाइज करने योग्य नहीं है

MPI_Rank सभी प्रक्रिया के लिए इसी प्रक्रिया संख्या वापस आती है

मैं इस नमूना नमस्कार विश्व कार्यक्रम को ओपनएमपीआई और माइपरुन के साथ डेबियन 7 पर चलाने की कोशिश कर रहा हूं।

#include <stdio.h> #include <mpi/mpi.h> int main (int argc, char **argv) { int nProcId, nProcNo; int nNameLen; char szMachineName[MPI_MAX_PROCESSOR_NAME]; MPI_Init (&argc, &argv); // Start up MPI MPI_Comm_size (MPI_COMM_WORLD,&nProcNo); // Find out number of processes MPI_Comm_rank (MPI_COMM_WORLD, &nProcId); // Find out process rank MPI_Get_processor_name (szMachineName, &nNameLen); // Get machine name printf ("Hello World from process %d on %s\r\n", nProcId, szMachineName); if (nProcId == 0) printf ("Number of Processes: %d\r\n", nProcNo); MPI_Finalize (); // Shut down MPI return 0; } 

मेरी समस्या है MPI_Comm_Rank प्रक्रिया की सभी प्रतियों के लिए 0 देता है। जब मैं शेल पर यह आदेश चलाता हूँ:

 mpirun -np 4 helloWorld 

यह इस उत्पादन का उत्पादन करता है:

 Hello World from process 0 on debian Number of Processes: 1 Hello World from process 0 on debian Number of Processes: 1 Hello World from process 0 on debian Number of Processes: 1 Hello World from process 0 on debian Number of Processes: 1 

प्रक्रियाओं की संख्या अभी भी 1 क्यों है?

वेब के समाधान से एकत्रित समाधान "MPI_Rank सभी प्रक्रिया के लिए इसी प्रक्रिया संख्या वापस आती है"

सुनिश्चित करें कि दोनों mpicc और mpirun समान एमपीआई कार्यान्वयन से आते हैं जब mpirun लॉन्च किए गए प्रक्रियाओं के लिए जरूरी ब्रह्मांड की जानकारी प्रदान करने में विफल रहता है, तो इसका सबसे सामान्य कारण है कि निष्पादन योग्य एक अलग एमपीआई कार्यान्वयन (या एक ही कार्यान्वयन के एक अलग संस्करण) के विरुद्ध बनाया गया था, MPI_Init() तथाकथित MPI_COMM_WORLD एमपीआई आरंभीकरण और एक MPI_COMM_WORLD बनाता है जिसमें कॉलिंग प्रक्रिया शामिल है। इस प्रकार परिणामस्वरूप कई एमपीआई प्रक्रियाएं अपने स्वयं के अलग MPI_COMM_WORLD उदाहरणों में हैं।

आम तौर पर कमांड जैसे mpicc --showme , which mpicc और which mpirun आपको यह पता लगाने में मदद कर सकता है कि यह वास्तव में मामला है