পেটস্কিপিপি বনাম সি / সি ++ / ফোর্টরান ব্যবহারের দক্ষতা


11

সি / সি ++ / ফোর্ত্রান বনাম petsc4py কত ধীর?

আমি বুঝতে পেরেছি এটি কার্যকর করা হচ্ছে কোডের উপর উল্লেখযোগ্যভাবে নির্ভর করবে, তবে ম্যাট্রিক্স-ভেক্টর পণ্যটির মতো সাধারণ কিছু কী হবে?

উত্তর:


11

এটি বৈজ্ঞানিক প্রোগ্রামিং সম্প্রদায়ের একটি বহুল আলোচিত উদ্বেগ এবং আমি পারফরম্যান্স অনিশ্চয়তা গণ্য বিজ্ঞানের অন্যতম প্রধান "মিথ" হিসাবে বিবেচনা করব।

@ ফক্রুজ যেমন আলোচনা করেছেন, petsc4pyপিইটিএসসি লাইব্রেরিগুলির একটি মোড়ক, পাইথনের পিইটিএসসি-র পুনর্নির্মাণ নয়। অতএব, আপনি পিইটিএসসি তে এবং এর থেকে অনুলিপিগুলি থেকে, বা আপনার ড্রাইভার কোড / ফাংশন কলগুলিতে ওভারহেড থেকে যে কোনও পারফরম্যান্স জরিমানা আশা করতে পারেন। petsc4pyখুব সাবধানে প্রয়োগ করা হয়, এবং যতক্ষণ না আপনি বুঝতে পারবেন understandnumpyবহু মাত্রিক অ্যারে ইন্টারফেস, আপনি অনুলিপি অনুলিপি এড়াতে পারেন। আমি যে বেশিরভাগ ব্যবহারের ক্ষেত্রে কাজ করি তার জন্য পাইথনে কাজ করার পারফরম্যান্সের জরিমানা 10-40% এর অর্ডারে থাকে এবং আমি প্রায়শই অন্যান্য উপায়ে যথেষ্ট পরিমাণে লাভ করি যা এই পারফরম্যান্স হিটের চেয়ে বেশি হয়। প্রকৃতপক্ষে, আরও বেশ কয়েকজন অভিজ্ঞ এইচপিসি পাইথন বিকাশকারী আমি এই মতামতটি ধরে রেখেছি যে এই পারফরম্যান্সের পার্থক্যটি সাধারণত আরও আরও কমানো যেতে পারে এবং পাইথন যখন কম্পিউটারের ব্যয়বহুল ব্যয়বহুল কোড চালাচ্ছে, অবশ্যই এটি হবে।

petsc4pyসংগ্রহস্থলের নিজেই কর্মক্ষমতা / নমনীয়তা ট্রেড বন্ধ চিত্রিত করা দরকারী উদাহরণ একটি নম্বর বৈশিষ্ট্যগুলিও উপস্থিত রয়েছে। অল্পক্ষণের petsc4pyডেমো নামক জন্য উৎস সংগ্রহস্থলের perftest, যা উভয় একটি পাইথন চালক ও একটি সি ড্রাইভার (সরবরাহ করা একটি ফোরট্রান কার্নেল উপর ব্যবহার সমীকরণ একটি অরৈখিক সিস্টেমের solves App.f90যে ডিরেক্টরির মধ্যে)। এখানে কর্মক্ষমতা ওভারহেড 10% এর ক্রম অনুসারে।

কংক্রিটের উদাহরণ হিসাবে, আমি পাইক্লাউতে কাজ করা বিজ্ঞানীদের একটি দলের অংশ , একটি সফ্টওয়্যার প্যাকেজ যা সমান্তরাল গ্রিড পরিচালনার জন্য পিইটিএসসি এবং সেল ইন্টারফেসে রিমান সমস্যা সমাধানের জন্য লিগ্র্যাসি ফোর্টরান কার্নেলের ইন্টারফেস করে। আমরা একজন ফোর্টরান ড্রাইভারের কাছ থেকে স্যুইচিংয়ে পারফরম্যান্সের অবক্ষয়ের বিষয়ে মোটামুটি সাবধানতার সাথে অধ্যয়ন করেছি এবং আপনি সম্মেলন পত্রিকায় সারণি 1 এর পাঁচ পৃষ্ঠার নীচে ফলাফল দেখতে পাচ্ছেন । আমাদের ক্ষেত্রে, আমরা সহজেই আমাদের কোডটি পিইটিএসসি এবং ফোর্টরানে ইন্টারফেস করতে এবং কয়েক হাজার কোরের সমান্তরালভাবে দক্ষতার সাথে চালানোর সক্ষমতা অর্জনের জন্য সামান্য কিছুটা মূল অভিনেতার ব্যবসা করেছি।


আমার কাছেও একই রকম উদ্বেগ একটি ছোট্ট অস্ট্রাস্ট্রাক্ট কোড আর্ট। পিইটিএসসি কেবলমাত্র ডেটা স্ট্রাকচার এবং সলভার সরবরাহ করে তবে আমি এখনও জাল (4 গিগাবাইট ইনপুট ফাইল), পার্টিশন, ম্যাপিংস তৈরি করতে, উপাদানগুলির উপর লুপ তৈরি করতে, স্থানীয় (উপাদান) স্টিফনেস ম্যাট্রিকেস গণনা করতে পারি তার আগে পিইটিএসসি একত্রিত হয়ে সমাধান করতে পারে before । এই অ PETSc সম্পর্কিত স্টাফ বিশেষত I / O, ম্যাপিংস এবং উপাদান স্তর গণনার জন্য অজগর ধীর হয়ে উঠবে না। কারণ বাকি কোডগুলি যাইহোক সহজ।
stali

উপাদান-স্তরের গণনাগুলি সাধারণত কার্নেল হিসাবে পাস হয় ( App.f90উত্সটি দেখুন perftest)। আই / ও-তে কোনও পারফরম্যান্সের পার্থক্য নেই। আপনি কি উচ্চ-স্তরের প্যাকেজটির জন্য ফিএনসিএসের দিকে নজর রেখেছেন ?
অরন আহমদিয়া

তুমি ঠিক. আমি ধারণাটি পেয়েছি তবে আমার বিশেষ ক্ষেত্রে এ জাতীয় অনেকগুলি কার্নেল রয়েছে (বিভিন্ন ধরণের উপাদানগুলির জন্য আকৃতি ফাংশন, উপাদান স্তর গণনা, ম্যাপিংস ইত্যাদি) যা কোডের প্রায় 90%। আমি ফেনিক্সের দিকে কিছুক্ষণ আগে তাকিয়েছিলাম এবং বহিরাগত জালিয়াতির সাথে লেনদেন করা এবং বিসি চাপিয়ে দেওয়ার মতো অনেক বিবরণ প্রথম নজরে খুব পরিষ্কার ছিল না বা আরও জটিল বলে মনে হয়েছিল (কমপক্ষে আমার কাছে)। আমি ফোর্টরান ব্যবহার করি যা আমার মতো নন সিএস লোকের জন্য ব্যবহার করার জন্য (দুর্দান্ত পিইটিএসসি ডকুমেন্টেশন দেওয়া) মোটামুটি সোজা। আমার কাজের জন্য আমি আসলে পাইথন এর চেয়ে সহজ মনে করি :)।
stally

7

পেটসকপিপি পেটস্কের অ্যাক্সেসের আরও একটি উপায় , তবে পাইথন থেকে , বা একই কথা বলা যায় যে, পেটসক 4পি বাইন্ডিং সরবরাহ করে যাতে পাইথন থেকে আপনি পিইটিএসসি ডেটা স্ট্রাকচার এবং রুটিনগুলি অ্যাক্সেস করতে পারেন যা বোঝানো হয় সমান্তরাল পিডিই সলভারগুলির বিকাশের প্রচেষ্টা হ্রাস করার জন্য (যে স্কেল)

পিইটিএসসি তাদের সমাধানকারীদের বিভিন্ন স্তরের বিমূর্ততা সরবরাহ করে এবং আপনি নিজের সমাধানকারী প্রয়োগ করতে পিইটিএসসি ব্যবহার করতে পারেন। সফ্টওয়্যার বিমূর্তনের সর্বনিম্ন স্তরে, পিইটিএসসি বিএলএএস, ল্যাপাক এবং এমপিআই ব্যবহার করে এবং সর্বোপরি এগুলি বাস্তবায়নের জন্য তত দ্রুত হবে।

এখন, পেটস 4 পিইটিএসসি-র বাইন্ডিংগুলি প্রয়োগ করতে সাইথন ব্যবহার করে। সিথন ব্যবহারের ওভারহেড পিইটিএসসি থেকে কতগুলি গণনা করা যাচ্ছে তার সাথে সম্পর্কিত। আপনি যদি পিইটিএসসি থেকে উচ্চ স্তরের পিডিই সলভার ব্যবহার করেন তবে ওভারহেডগুলি এমন পরিমাণে ছোট হওয়া উচিত যা আপনার সেগুলি নিয়ে চিন্তা করার দরকার নেই।

পিইটিএসসি বনাম জিইএমভের পারফরম্যান্স তুলনার চেয়ে একটি গুরুত্বপূর্ণ প্রশ্নটি যদি পিইটিএসসি আপনার কাজের উপযুক্ত সরঞ্জাম হয়। আপনার যদি অ-তুচ্ছ সমান্তরাল পিডিই সলভার প্রয়োগ করতে হয় তবে সম্ভবত সম্ভবত পিইটিএসসি আপনাকে সত্যই সহায়তা করবে। যাইহোক, আপনার যদি জেএমভি একটি গুচ্ছ করার দরকার হয় তবে আপনি একটি বিএলএএস লাইব্রেরি চান want শুভকামনা!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.