ฉันกำลังโค้ดแบบขนานเพื่อแก้ตัวเลขแบบจำลองสมดุลประชากร 5 มิติ ขณะนี้ฉันมีรหัส MPICH2 ที่ดีมากใน FORTRAN แต่เมื่อเราเพิ่มค่าพารามิเตอร์อาร์เรย์จะใหญ่เกินไปที่จะทำงานในโหมดหน่วยความจำแบบกระจาย
ฉันสามารถเข้าถึงคลัสเตอร์ที่มี 15 โหนดโดยที่แต่ละโหนดมี CPU หลัก 8 ตัวและ RAM ขนาด 128GB ฉันต้องการเขียนเรียกใช้โปรแกรมด้วย MPI-3.0 ในโหมดหน่วยความจำที่ใช้ร่วมกันเพื่อให้แต่ละกระบวนการไม่สร้างสำเนาของแต่ละอาร์เรย์ขึ้นมาเอง
ก่อนที่ฉันจะรันอะไรก็ได้ในคลัสเตอร์ฉันต้องทดสอบบนเดสก์ท็อปที่ใช้ Ubuntu มันคือเบลดหนึ่งคลัสเตอร์ที่มี CPU 8 คอร์สองตัวและ RAM ขนาด 128 GB ฉันจะเขียนและทดสอบรหัสของฉันบนมันดังนั้นโปรดส่งคำตอบของคุณไปยังโปรแกรมที่ทำงานบนคอมพิวเตอร์ Ubuntu
ฉันได้อ่านแล้วว่ามีวิธีเรียกใช้ MPI-3.0 ในโหมดหน่วยความจำที่ใช้ร่วมกันเช่น OpenMP แทนที่จะเป็นโหมดหน่วยความจำเริ่มต้นแบบกระจาย
คำถาม:
ฉันจะเปลี่ยนรหัสได้อย่างไร ฉันต้องเพิ่มการเรียกไปยังฟังก์ชั่น MPI อื่น
MPI_WIN_ALLOCATE
หรือไม่?ฉันจะรวบรวมรหัสของฉันเพื่อเรียกใช้ MPI-3.0 ในโหมดหน่วยความจำที่ใช้ร่วมกันได้อย่างไร สิ่งนี้จะแตกต่างกันหรือไม่หากมีหลายโหนด
โปรดให้สคริปต์การรวบรวมตัวอย่างถ้าคุณทำได้ ฉันมีคอมไพเลอร์ GNU เท่านั้น คลัสเตอร์ที่ฉันใช้ไม่รองรับคอมไพเลอร์ของ Intel
mpiexec -n 8 /path/to/application
เพื่อปลอมคอมพิวเตอร์ของคุณโดยคิดว่ามันมี 8 โหนดที่แตกต่างกัน