বুস্ট :: এমপিআই বা সি এমপিআই উচ্চ পারফরম্যান্স বৈজ্ঞানিক অ্যাপ্লিকেশনগুলির জন্য?


16

এমপিআই সম্পর্কে আমি যে জিনিসটি সবচেয়ে বেশি অপছন্দ করি তা হ'ল ডেটাটাইপগুলি (অর্থাত্ ডেটা ম্যাপ / মুখোশ) নিয়ে কাজ করে কারণ তারা এটিকে অবজেক্ট ওরিয়েন্টেড সি ++ এর সাথে পুরোপুরি ফিট করে না। boost::mpiতবে কেবল তাদের ওয়েবসাইট থেকে এমপিআই 1.1 সমর্থন করে:

বুস্ট :: এমপিআই হ'ল স্ট্যান্ডার্ড মেসেজ পাসিং ইন্টারফেসের একটি সি ++ বন্ধুত্বপূর্ণ ইন্টারফেস ... বুস্ট.এমপিআই বুস্ট.সিরিয়েশন লাইব্রেরি ব্যবহার করে ব্যবহারকারী-সংজ্ঞায়িত প্রকারের জন্য এমপিআই ডেটা টাইপ তৈরি করতে পারে

boost::mpiমারাত্মক বৈজ্ঞানিক কম্পিউটিংয়ের জন্য কারও সাথে কোনও অভিজ্ঞতা আছে ? আপনি এটি সুপারিশ করবেন? আপনার কি কোনও সমস্যা আছে (স্কেলিং সমস্যা, সংকলক সমস্যা, ত্রুটি, বাস্তবায়িত বৈশিষ্ট্য নেই, কিছু এমপিআই ২.২ বৈশিষ্ট্যের প্রয়োজন)?

আপনি boost::mpiসি ++ থেকে এমপিআই সি প্রয়োগের পরিবর্তে ব্যবহারের বিষয়ে মন্তব্য করতে পারেন ? আপনি উভয়কে একত্রিত করতে পারেন (বুস্ট ব্যবহার করুন: এমপিআই যখন আপনি করতে পারেন, সি-এমপিআই অন্য কোথাও)?

আপনি কোন বৃহত বৈজ্ঞানিক কোড ব্যবহার করে জানেন boost::mpi?


আপনার প্রয়োজনীয় সমস্ত ফাংশন সমর্থিত কিনা তা নিশ্চিত করার জন্য আপনার এই boost.org/doc/libs/1_50_0/doc/html/mpi/… এই পৃষ্ঠাটিও দেখতে হবে। এগুলি নিজে বাস্তবায়নের সম্ভাবনাও বিবেচনা করা উচিত।
আলেকজান্ডার

1
বুস্ট :: এমপিআই ব্যবহার করার জন্য আমি যে সর্বোত্তম কারণটি ভাবতে পারি তা হ'ল এটি স্বয়ংক্রিয়ভাবে সি ++ ধরণের সিরিয়ালাইজেশন সমর্থন করে। এমপিআই সি ইন্টারফেসটি এটি নিজে থেকে এটি করতে পারে না এবং আপনি অন্য কোনও মাধ্যমে নিজের সিরিয়ালাইজেশন না করতে চাইলে আপনার পাঠানো / রেকভি ইত্যাদির মাধ্যমে পাস করার জন্য আপনার সমস্ত সি ++ অবজেক্টের জন্য এমপিআই ডেটাটাইপগুলি তৈরি করতে হবে।
জেফ

এলিমেন্টাল (লিবিলেটাল.অর্গ) এমপিআই ইন্টারফেস ( github.com/elemental/Elemental/blob/master/src/core/imports/… ) মার্জিত উপায়ে স্বয়ংক্রিয় টাইপ সনাক্তকরণ করে। তবে এটি বুস্ট :: এমপিআই করে এমন অনেকগুলি কাজ করার চেষ্টা করে না।
জেফ

উত্তর:


13

আমি সবসময়ই ভেবেছি যে আমাদের এটি আমাদের নিজস্ব প্রকল্পে, ডিল.আইআইতে ব্যবহার করা উচিত, কারণ এটি খাঁটি এমপিআইয়ের চেয়ে উচ্চতর স্তর এবং এখানে এবং সেখানে কয়েকটি লাইন কোড সংরক্ষণ করতে পারে। এটি বলেছিল যে, আমি কয়েক বছর ধরে যা শিখেছি তা হ'ল বেশিরভাগ উচ্চ-স্তরের কোডের সাথে এতটা এমপিআই কোড শুরু হয় না - deal০০,০০০ লাইন কোডের কোড রয়েছে I আমার এমপিআইতে কেবল ~ 50 ডলার কল রয়েছে। এটি অবশ্যই পিইটিএসসি-র মতো একটি প্যাকেজের তুলনায় অনেক কম, তবে আমি মনে করি এটি সত্ত্বেও সত্য যে বেশিরভাগ কোডের এমপিআই কল কম থাকে যা প্রথমে প্রত্যাশিত হয় এবং ফলস্বরূপ, উচ্চতর স্তরের এমন কিছু ব্যবহারের উপকারিতা একের মতো দুর্দান্ত হয় না one প্রথম নজরে চিন্তা করতে পারে।

এরপরে এটি কী উত্সাহিত করে তা আপনার ট্রেড-অফগুলি কী তা বিবেচনা করার জন্য। আপনার কতটা MPI ব্যবহার করতে হবে এবং এটি কীভাবে বাহ্যিক গ্রন্থাগার তৈরি ও লিঙ্ক করার জন্য প্রয়োজনীয় অতিরিক্ত প্রচেষ্টার সাথে তুলনা করে।


6

আমি যতদূর জানি, এটি API এর চারদিকে boost::mpiকেবল একটি c++মোড়ক C। এই হিসাবে, আপনার ব্যবহার করতে সক্ষম হতে হবে boost::mpiএবং এতে স্যুইচ করতে হবেC যখনই কিছু কার্যকারিতা বাস্তবায়ন করা হয় না তখন API । সত্যই, তাদের ওয়েবপৃষ্ঠা থেকে:

বুস্ট.এমপিআই-এর পাতলা বিমূর্ততাগুলি এটিকে অন্তর্নিহিত সি এমপিআই লাইব্রেরিতে কলগুলির সাথে সহজেই একত্রিত করতে দেয়।

আমি নিজে এটি ব্যবহার করি নি, এবং এমন কোনও প্রধান লাইব্রেরিও জানি না যা আমি করি না, তবে আমি এটি কেবল একটি হালকা ওজনের র‍্যাপার হিসাবে প্রত্যাশা করি এবং যেমন Cএপিআইয়ের তুলনায় পারফরম্যান্স সম্পর্কে চিন্তা করা উচিত নয় ।


2
বুস্ট :: এমপিআই হ'ল এমপিআইয়ের একটি উপসেটের চারপাশে একটি মোড়ক; যেমনটি আমি স্মরণ করি, এটি কেবলমাত্র এমপিআই ১.২ সমর্থন করে, যা আমার দিক থেকে এমপিআই -২.২ বা এমপিআই -3 মানদণ্ড থেকে দূরে রয়েছে।
জেফ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.