কোনও জটিল মডেলকে বারবার বারবার সেট করার ক্ষেত্রে কীভাবে আমি কম্পিউটেশনাল দক্ষতাটি অনুকূল করতে পারি?


12

MCMCglmmমিশ্রিত প্রভাবগুলির মডেলটি চালাতে প্যাকেজটি ব্যবহার করে আমার পারফরম্যান্সের সমস্যা হচ্ছে । কোডটি এর মতো দেখাচ্ছে:

MC1<-MCMCglmm(bull~1,random=~school,data=dt,family="categorical"
, prior=list(R=list(V=1,fix=1), G=list(G1=list(V=1, nu=0)))
, slice=T, nitt=iter, ,burnin=burn, verbose=F)

তথ্যগুলিতে প্রায় 20,000 পর্যবেক্ষণ রয়েছে এবং প্রায় 200 স্কুলে সেগুলি ক্লাস্টার করা হয়। আমি ডেটাফ্রেম থেকে সমস্ত অব্যবহৃত ভেরিয়েবলগুলি ফেলে রেখেছি এবং চালানোর আগে মেমরি থেকে সমস্ত অন্যান্য অবজেক্ট সরিয়ে ফেলেছি। আমার সমস্যাটি হ'ল এটি চালাতে খুব দীর্ঘ সময় লাগে, যদি না আমি পুনরাবৃত্তিগুলি অগ্রহণযোগ্যভাবে সংখ্যায় কম না করি। 50,000 পুনরাবৃত্তির সাথে, এটি 5 ঘন্টা সময় নেয় এবং আমার চালনার জন্য অনেকগুলি বিভিন্ন মডেল রয়েছে। সুতরাং আমি জানতে চাই যে কোড প্রয়োগকরণ বা আমি ব্যবহার করতে পারি এমন অন্যান্য প্যাকেজগুলি দ্রুত করার কোনও উপায় আছে কিনা। আমি ব্যবহার করছি MCMCglmmকারণ আমি এলোমেলো প্রভাবগুলির জন্য আত্মবিশ্বাসের অন্তর চাই।

অন্যদিকে, আমি এই বছরের শেষের দিকে একটি নতুন পিসি পাওয়ার আশা করছিলাম তবে কিছুটা ভাগ্য নিয়ে আমি সেটিকে এগিয়ে আনতে সক্ষম হতে পারি, তাই আমি ভাবছিলাম যে কীভাবে নতুন হার্ডওয়্যারে সীমিত পরিমাণে অর্থ ব্যয় করা যায় - আরও র‌্যাম , দ্রুত সিপিইউ ইত্যাদি টাস্ক ম্যানেজারটি দেখে আমি বিশ্বাস করি না যে এটি র‌্যামই সমস্যা (এটি কখনই শারীরিক ব্যবহৃত 50% এর উপরে হয় না), তবে সিপিইউ ব্যবহার 50% এরও বেশি পায় না, যা আমাকে বিজোড় হিসাবে আঘাত করে strikes । আমার বর্তমান সেটআপটি একটি ইন্টেল কোর i5 2.66GHz, 4 জিবি র‌্যাম, 7200 আরপিএম এইচডিডি। অতিরিক্ত র‌্যাম ব্যয় করে কেবলমাত্র দ্রুততম সিপিইউ নেওয়া কি যুক্তিসঙ্গত? আমি স্ট্যাটিস্টিকাল কম্পিউটিং সমস্যার উপর স্তরের 3 সিপিইউ ক্যাশে আকারের প্রভাব সম্পর্কে কী ভেবেছি?

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


আমি মনে করি না যে এমসিএমসি এ জাতীয় সমস্যার জন্য দীর্ঘ সময় নেয় এটি অবাক হওয়া উচিত। আমি নিশ্চিত যে এটি দ্রুত চালিত করার সম্ভবত উপায় আছে। তবে সঠিক উত্তরটি খোলার জন্য এখনও সময় লাগবে।
মাইকেল আর চেরনিক

@ মিশেল চেরনিক, আপনাকে ধন্যবাদ - আমি জানি যে এটি এখনও সময় নিতে পারে। আমি এটিকে যথাসম্ভব কমিয়ে আনতে চাই, এটাই সব। আমার বাবার ওর কাজটিতে ওরাকল স্পার্ক টি 4 আছে এবং এটি এমসিএমসি বেশ দ্রুত চালায়;)
জো কিং

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

ম্যাক্রো, সহায়ক সম্পাদনার জন্য আপনাকে ধন্যবাদ। আমি এটিও ব্যবহার করেছি glmer(যেমন আপনি আমার অন্যান্য পোস্টগুলি থেকে জানেন) এবং এটি প্রায় 20 সেকেন্ড সময় নেয় তবে সমস্যাটি হ'ল এটি আত্মবিশ্বাসের অন্তর বা মানক ত্রুটি দেয় না এবং আমি কোনও মেইলিং লিস্টে যা পড়েছি তা থেকে লেখকের লেখক সংরক্ষণাগার সংরক্ষণ করে lme4প্যাকেজটি বলেছে যে এলোমেলো প্রভাবগুলির নমুনা বিতরণ খুব স্কিউ হতে পারে, সুতরাং সেই পরিসংখ্যানগুলি রিপোর্ট করা হয়নি। প্রকৃতপক্ষে আমি MCMCglmmএখনও পর্যন্ত খুঁজে পেয়েছি যে আমার ক্ষেত্রে তারা স্বাভাবিকের দিকে আসছেন (এটি যে খুব বেশি সাহায্য করে না - আমি কেবল বলছি)। যদি আমি এটিকে এসও-তে স্থানান্তরিত করার জন্য অনুরোধ করি তবে এটি আরও ভাল হবে?
জো কিং

1
আমি এমসিএমসিগিএমএমএম এর নির্দিষ্টকরণগুলি জানি না, তবে এমসিসিএম পদ্ধতিগুলি প্রচুর ব্যবহার করেছি। এমসিমিসি সম্পর্কে দুর্দান্ত বিষয়টি হ'ল এটি বিব্রতকরভাবে সমান্তরাল (এটি একটি প্রযুক্তিগত শব্দ!)। আপনার যদি একাধিক কোর থাকে তবে আপনি প্রতিটিটিতে স্বতন্ত্র চেইনগুলি চালান তারপরে ফলাফলটি সজ্জিত করুন। এমসিএমসিটি এভাবে চালাচ্ছি, তবে এটি করার জন্য আমি আমার নিজস্ব সমান্তরাল সি ++ কোড (এমপিআই ব্যবহার করে) লিখেছি। তখন হার্ডওয়ারের পরামর্শের ক্ষেত্রে, যতটা সম্ভব কোর সহ কোনও কিছুর জন্য যান। এটি ধরে নিয়েছে যে আপনি যে কোনও সরঞ্জাম ব্যবহার করছেন তা একাধিক কোরের সুবিধা নিতে পারে। আপনার প্রশ্নে এসইউ দিতে তথ্যের শর্তে, আপনি কোরের ব্যবহার করতে পারবেন কিনা তা সন্ধান করুন।
বোগদানভিস্ট

উত্তর:


3

এটি কেন অ্যামাজনের ইসি 2 ক্লাউড-কম্পিউটিং পরিষেবা বা অনুরূপ কোনও পরিষেবাতে চালাবেন না ? MCMCpackএটি হ'ল, যদি আমি সঠিকভাবে মনে করি, বেশিরভাগ সি তে প্রয়োগ করা হয়, তবে আপনি যদি আপনার মডেল জটিলতা, পুনরাবৃত্তি ইত্যাদির হ্রাস না করেন তবে ইসি 2, বা অনুরূপ ক্লাউড-কম্পিউটিং পরিষেবাদিগুলির সাথে একাধিক উদাহরণ থাকতে পারে it আপনি চান এমন চশমাগুলি এবং আপনার মডেলগুলি একবারে চালান।


এর মধ্যে একটি পরিবর্তন: এম 2.4xlarge (68.7 গিগাবাইট র‌্যাম বিকল্প) -এ চালানো আপনি সম্পূর্ণ মেশিনটি পাচ্ছেন তার গ্যারান্টি দেওয়ার একমাত্র উপায়, যাতে আপনি ভিএমগুলিতে (ভার্চুয়াল মেশিনে) ঘটতে পারে এমন র‌্যাম ক্যাচিংয়ের সমস্যাটি অগত্যা হিট না করে that / এএমআই) যা মেশিনের ভগ্নাংশে চলে।
ইলেটর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.