সি / সি ++ / ফোর্ত্রান বনাম petsc4py কত ধীর?
আমি বুঝতে পেরেছি এটি কার্যকর করা হচ্ছে কোডের উপর উল্লেখযোগ্যভাবে নির্ভর করবে, তবে ম্যাট্রিক্স-ভেক্টর পণ্যটির মতো সাধারণ কিছু কী হবে?
সি / সি ++ / ফোর্ত্রান বনাম petsc4py কত ধীর?
আমি বুঝতে পেরেছি এটি কার্যকর করা হচ্ছে কোডের উপর উল্লেখযোগ্যভাবে নির্ভর করবে, তবে ম্যাট্রিক্স-ভেক্টর পণ্যটির মতো সাধারণ কিছু কী হবে?
উত্তর:
এটি বৈজ্ঞানিক প্রোগ্রামিং সম্প্রদায়ের একটি বহুল আলোচিত উদ্বেগ এবং আমি পারফরম্যান্স অনিশ্চয়তা গণ্য বিজ্ঞানের অন্যতম প্রধান "মিথ" হিসাবে বিবেচনা করব।
@ ফক্রুজ যেমন আলোচনা করেছেন, petsc4py
পিইটিএসসি লাইব্রেরিগুলির একটি মোড়ক, পাইথনের পিইটিএসসি-র পুনর্নির্মাণ নয়। অতএব, আপনি পিইটিএসসি তে এবং এর থেকে অনুলিপিগুলি থেকে, বা আপনার ড্রাইভার কোড / ফাংশন কলগুলিতে ওভারহেড থেকে যে কোনও পারফরম্যান্স জরিমানা আশা করতে পারেন। petsc4py
খুব সাবধানে প্রয়োগ করা হয়, এবং যতক্ষণ না আপনি বুঝতে পারবেন understandnumpy
বহু মাত্রিক অ্যারে ইন্টারফেস, আপনি অনুলিপি অনুলিপি এড়াতে পারেন। আমি যে বেশিরভাগ ব্যবহারের ক্ষেত্রে কাজ করি তার জন্য পাইথনে কাজ করার পারফরম্যান্সের জরিমানা 10-40% এর অর্ডারে থাকে এবং আমি প্রায়শই অন্যান্য উপায়ে যথেষ্ট পরিমাণে লাভ করি যা এই পারফরম্যান্স হিটের চেয়ে বেশি হয়। প্রকৃতপক্ষে, আরও বেশ কয়েকজন অভিজ্ঞ এইচপিসি পাইথন বিকাশকারী আমি এই মতামতটি ধরে রেখেছি যে এই পারফরম্যান্সের পার্থক্যটি সাধারণত আরও আরও কমানো যেতে পারে এবং পাইথন যখন কম্পিউটারের ব্যয়বহুল ব্যয়বহুল কোড চালাচ্ছে, অবশ্যই এটি হবে।
petsc4py
সংগ্রহস্থলের নিজেই কর্মক্ষমতা / নমনীয়তা ট্রেড বন্ধ চিত্রিত করা দরকারী উদাহরণ একটি নম্বর বৈশিষ্ট্যগুলিও উপস্থিত রয়েছে। অল্পক্ষণের petsc4py
ডেমো নামক জন্য উৎস সংগ্রহস্থলের perftest
, যা উভয় একটি পাইথন চালক ও একটি সি ড্রাইভার (সরবরাহ করা একটি ফোরট্রান কার্নেল উপর ব্যবহার সমীকরণ একটি অরৈখিক সিস্টেমের solves App.f90
যে ডিরেক্টরির মধ্যে)। এখানে কর্মক্ষমতা ওভারহেড 10% এর ক্রম অনুসারে।
কংক্রিটের উদাহরণ হিসাবে, আমি পাইক্লাউতে কাজ করা বিজ্ঞানীদের একটি দলের অংশ , একটি সফ্টওয়্যার প্যাকেজ যা সমান্তরাল গ্রিড পরিচালনার জন্য পিইটিএসসি এবং সেল ইন্টারফেসে রিমান সমস্যা সমাধানের জন্য লিগ্র্যাসি ফোর্টরান কার্নেলের ইন্টারফেস করে। আমরা একজন ফোর্টরান ড্রাইভারের কাছ থেকে স্যুইচিংয়ে পারফরম্যান্সের অবক্ষয়ের বিষয়ে মোটামুটি সাবধানতার সাথে অধ্যয়ন করেছি এবং আপনি সম্মেলন পত্রিকায় সারণি 1 এর পাঁচ পৃষ্ঠার নীচে ফলাফল দেখতে পাচ্ছেন । আমাদের ক্ষেত্রে, আমরা সহজেই আমাদের কোডটি পিইটিএসসি এবং ফোর্টরানে ইন্টারফেস করতে এবং কয়েক হাজার কোরের সমান্তরালভাবে দক্ষতার সাথে চালানোর সক্ষমতা অর্জনের জন্য সামান্য কিছুটা মূল অভিনেতার ব্যবসা করেছি।
App.f90
উত্সটি দেখুন perftest
)। আই / ও-তে কোনও পারফরম্যান্সের পার্থক্য নেই। আপনি কি উচ্চ-স্তরের প্যাকেজটির জন্য ফিএনসিএসের দিকে নজর রেখেছেন ?
পেটসকপিপি পেটস্কের অ্যাক্সেসের আরও একটি উপায় , তবে পাইথন থেকে , বা একই কথা বলা যায় যে, পেটসক 4পি বাইন্ডিং সরবরাহ করে যাতে পাইথন থেকে আপনি পিইটিএসসি ডেটা স্ট্রাকচার এবং রুটিনগুলি অ্যাক্সেস করতে পারেন যা বোঝানো হয় সমান্তরাল পিডিই সলভারগুলির বিকাশের প্রচেষ্টা হ্রাস করার জন্য (যে স্কেল)
পিইটিএসসি তাদের সমাধানকারীদের বিভিন্ন স্তরের বিমূর্ততা সরবরাহ করে এবং আপনি নিজের সমাধানকারী প্রয়োগ করতে পিইটিএসসি ব্যবহার করতে পারেন। সফ্টওয়্যার বিমূর্তনের সর্বনিম্ন স্তরে, পিইটিএসসি বিএলএএস, ল্যাপাক এবং এমপিআই ব্যবহার করে এবং সর্বোপরি এগুলি বাস্তবায়নের জন্য তত দ্রুত হবে।
এখন, পেটস 4 পিইটিএসসি-র বাইন্ডিংগুলি প্রয়োগ করতে সাইথন ব্যবহার করে। সিথন ব্যবহারের ওভারহেড পিইটিএসসি থেকে কতগুলি গণনা করা যাচ্ছে তার সাথে সম্পর্কিত। আপনি যদি পিইটিএসসি থেকে উচ্চ স্তরের পিডিই সলভার ব্যবহার করেন তবে ওভারহেডগুলি এমন পরিমাণে ছোট হওয়া উচিত যা আপনার সেগুলি নিয়ে চিন্তা করার দরকার নেই।
পিইটিএসসি বনাম জিইএমভের পারফরম্যান্স তুলনার চেয়ে একটি গুরুত্বপূর্ণ প্রশ্নটি যদি পিইটিএসসি আপনার কাজের উপযুক্ত সরঞ্জাম হয়। আপনার যদি অ-তুচ্ছ সমান্তরাল পিডিই সলভার প্রয়োগ করতে হয় তবে সম্ভবত সম্ভবত পিইটিএসসি আপনাকে সত্যই সহায়তা করবে। যাইহোক, আপনার যদি জেএমভি একটি গুচ্ছ করার দরকার হয় তবে আপনি একটি বিএলএএস লাইব্রেরি চান want শুভকামনা!