ওপেনএমপি-এর মতো ভাগ করা মেমরি মোডে এমপিআই -৩.০ কীভাবে চালানো যায়


14

আমি 5 টি মাত্রিক জনসংখ্যার ভারসাম্য মডেলকে সংখ্যাসূচকভাবে সমাধান করার জন্য কোডটি সমান্তরাল করছি। বর্তমানে আমার কাছে ফরটারনে একটি খুব ভাল এমপিআইসিএইচ 2 সমান্তরাল কোড রয়েছে তবে আমরা প্যারামিটারের মানগুলি বাড়ানোর সাথে সাথে বিতরণকারী মেমরি মোডে চালানোর জন্য অ্যারেগুলি খুব বড় হয়ে যায়।

আমার কাছে 15 টি নোড সহ একটি ক্লাস্টারে অ্যাক্সেস রয়েছে, যেখানে প্রতিটি নোডে দুটি 8 টি মূল সিপিইউ এবং 128 জিবি র‌্যাম রয়েছে। আমি ভাগ করে নেওয়া মেমরি মোডে MPI-3.0 সহ একটি প্রোগ্রাম চালাতে লিখতে চাই যাতে প্রতিটি প্রক্রিয়া প্রতিটি অ্যারের নিজস্ব অনুলিপি তৈরি না করে।

ক্লাস্টারে কিছু চালানোর আগে উবুন্টু চলমান ডেস্কটপে আমাকে এটি পরীক্ষা করতে হবে। এটি ক্লাস্টারের মূলত একটি ফলক যাতে এটিতে দুটি 8 কোর সিপিইউ এবং 128 জিবি র‌্যাম রয়েছে। আমি এতে আমার কোডটি লিখছি এবং পরীক্ষা করবো, সুতরাং দয়া করে উবুন্টু কম্পিউটারে প্রোগ্রামগুলি চালনার দিকে আপনার প্রতিক্রিয়াগুলি সন্ধান করুন।

আমি পড়েছি যে ওপেনএমপি এর মতো ভাগ করা মেমরি মোডে এমপিআই -৩.০ চালানোর উপায় রয়েছে এর ডিফল্ট বিতরণ মেমরি মোডের পরিবর্তে।

প্রশ্নাবলী:

  1. আমার কোডটি কীভাবে পরিবর্তন করতে হবে? অন্যান্য এমপিআই ফাংশনগুলিতে কি আমাকে কলগুলি যুক্ত করতে হবে MPI_WIN_ALLOCATE?

  2. ভাগ করা মেমরি মোডে MPI-3.0 চালানোর জন্য আমি কীভাবে আমার কোডটি সংকলন করব? এটি বেশ কয়েকটি নোডের বেশি হলে এটি কী আলাদা হবে?

আপনি যদি পারেন তবে নমুনা সংকলন স্ক্রিপ্টগুলি দিন। আমার কাছে কেবল জিএনইউ সংকলক রয়েছে। আমি যে ক্লাস্টারটি ব্যবহার করি তা ইন্টেল সংকলকগুলিকে সমর্থন করে না।


1
হ্যাঁ আপনার একটি ভাগ করা মেমরি সিস্টেমে এমপিআই চালানো উচিত। তবে এটি যেভাবে বাস্তবে প্রোগ্রাম করা হয়েছে তা অভিন্ন হবে। আপনার কোড ভাগ এবং বিতরণ মেমরি সিস্টেম উভয়ের জন্য একই হওয়া উচিত। এটি কীভাবে চালানো হয় তা কেবলমাত্র পার্থক্য।
নাককনোস সমস্ত

তদ্ব্যতীত, যদিও আমি এটি পরীক্ষা করেছি না, আমি বিশ্বাস করি যে mpiexec -n 8 /path/to/applicationআপনার কম্পিউটারটিতে 8 টি ভিন্ন নোড রয়েছে তা ভেবে জাল করার জন্য আপনার কোডটি চালাতে সক্ষম হবেন ।
নাককনোস সমস্ত

আমি এটি ইতিমধ্যে একটি ভাগ করা মেমরি সিস্টেমে চালিত করেছি তবে আমি চাই যে ওপেনএমপি-র মতো কম্পিউটারের র‌্যাম র‌্যাম ভাগ করে। আমার কিছু অ্যারে 6 গিগাবাইট তাই শেয়ার্ড মেমোরি মোডে পরিচালনা করতে আমার প্রতিটি নোডের সমস্ত কোর দরকার।
ফ্রাঙ্কলিন বেটেন

2
আচ্ছা এটি একটি গবেষণা প্রকল্পের জন্য। সুতরাং আমার সমস্যার আকার বড় করতে হবে। আমার কাছে ইতিমধ্যে ওয়ার্কিং কোড রয়েছে সুতরাং স্কেল আপ প্রতিরোধ করার একমাত্র জিনিসটির প্রয়োজন মেমরি। আমি এমপিআই সম্মেলনগুলি থেকে কিছু নথি এবং পাওয়ারপয়েন্টগুলি পেয়েছি যা সুপারিশ করে যে এমপিআই -৩.০ একতরফা যোগাযোগ ক্যাটাগরির আওতায় যুক্ত হওয়া নতুন কল ফান্টের সাথে মেমরি ভাগ করতে পারে। MPI_WIN_ALLOCATE_SHARE এর মতো ফাংশন
বেটেন

2
www.eurompi2014.org/tutorials/hoefler-advanced-mpi-eurompi14.pdf cs.utexas.edu/users/flame/BLISRetreat2014/slides/…
ফ্র্যাংকলিন বেটেন

উত্তর:


0

আমি এই লিঙ্কটি স্ট্যাক ওভারফ্লোতেও পেয়েছি। আমি শপথ করছি আমি চিরকালের জন্য আমার মতো প্রশ্নগুলির সন্ধান করেছি তবে মনে হয় স্ট্যাক ওভারফ্লোতে কোনও প্রশ্ন অনুসন্ধান করার সর্বোত্তম উপায় হল একটি প্রশ্ন করা শুরু করা এবং এটি অনুরূপ পোস্টগুলির পরামর্শ দেবে।

যাইহোক এখানে লিঙ্কটি যা প্রকৃতপক্ষে বলে যে আপনি এমপিআই 3.0 + ওপেনপ্যামের মতো ভাগ করা মেমরি মোডে চালাতে পারেন। আমি খুঁজে পেয়েছি এমন অন্যান্য উত্সও রয়েছে যা প্রস্তাব দেয় এবং কিছু এমন অবস্থা যা আপনি করতে পারেন তবে এটি কীভাবে সংস্থান করতে বা সংস্থান দেবে তা ব্যাখ্যা করতে পারেন না।

/programming/24797298/mpi-fortran-code-how-to-share-data-on-node-via-openmp

এই লিঙ্কে এখানে প্রদত্ত পরামর্শ অনুসরণ করার পরে আমি আমার কোডের শীর্ষে 'mpi_f08' ব্যবহারের বিষয়টি নিয়ে দৌড়েছি। আমি gfortran-4.8 ব্যবহার করছি যা আপাতত mpi_f08 ইউএসই করার জন্য যথেষ্ট ফোরট্রান ২০০8 সমর্থন নেই। এই লিঙ্কটিতে থাকা কোনও ব্যক্তি সম্ভবত ইনটেল ফোর্ট্রান ২০০৮ সংকলকটি ব্যবহার করছেন। আপনি ইউএসই এমপিআই ব্যবহার করতে পারেন যা Fortran2003 পর্যন্ত বেশ কভার করে। তবে আমি মনে করি না যে ফোর্টরান ২০০-এ টাইপ () ফাংশন রয়েছে যা রিমোট মেমরি অ্যাক্সেস ফাংশনগুলি যেমন MPI_WIN_ALLOCATE_SHARED ব্যবহার করার জন্য প্রয়োজন, সুতরাং আপনি এগুলি FORTRAN2008 ব্যতীত ব্যবহার করতে পারবেন না। তবে সত্যই নিশ্চিতভাবে বলার মতো পর্যাপ্ত সংস্থান আমার কাছে নেই তবে যা আমি পেয়েছি তা সেটিকে বোঝায়।


1
আপনি তিনটি ফোর্টরান ইন্টারফেসের সাথে এমপিআই_ওয়াইন_লোকট_শ্যাਾਰড ব্যবহার করতে পারেন। তদ্ব্যতীত, আপনি ফোর্টরান 2003 আইএসও_সি_বিআইএনডিএন এবং সি ইন্টারফেস দিয়ে নিজের লেখাতে পারেন।
জেফ

দয়া করে আমাকে বলুন যে ফোর্টরান থেকে আরএমএ ব্যবহার করার জন্য কেন কোনও টাইপ () প্রয়োজন? আমি এ জাতীয় কোনও সীমাবদ্ধতা জানি না। RMA অনেক বছর ধরে F77 এর সাথে ব্যবহার করা হচ্ছে।
জেফ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.