আমি সম্প্রতি এই উত্তরগুলির একটি প্রাথমিক পয়েন্ট হিসাবে ব্যবহার করে এই সমস্যাটি মোকাবিলা করেছি। মনে রাখা সবচেয়ে সহায়ক জিনিস হ'ল যে বোডগুলি হ'ল এক ধরণের সাধারণ এন-বডি সিমুলেশন: প্রতিটি বিড এমন একটি কণা যা প্রতিবেশীদের উপর একটি শক্তি প্রয়োগ করে।
আমি লিন্ডে কাগজ পড়তে অসুবিধা পেয়েছি; আমি পরিবর্তে এস জে প্লিম্পটনের "ফাস্ট প্যারালাল অ্যালগরিদমস ফর শর্ট রেঞ্জ মলিকুলার ডায়নামিক্স" দেখার পরামর্শ দিই , যা লিণ্ডা রেফারেন্স করেছে। প্লিম্পটনের কাগজ আরও পরিসংখ্যান সহ আরও ভাল পরিসংখ্যান সহ বিশদ:
সংক্ষেপে, অ্যাটম-পচন পদ্ধতিগুলি প্রতিটি প্রসেসরের স্থায়ীভাবে পরমাণুর একটি উপসেট নির্ধারণ করে, জোর-পচন পদ্ধতিগুলি প্রতিটি প্রোকে জোড়াকৃতির বল গণনার একটি উপসেট নির্ধারণ করে, এবং স্থানিক-পচন পদ্ধতিগুলি প্রতিটি ক্রমকে সিমুলেশন বাক্সের একটি উপ-অঞ্চল নির্ধারণ করে ।
আমি আপনাকে এডি চেষ্টা করার পরামর্শ দিচ্ছি। এটি বোঝা এবং বাস্তবায়ন করা সবচেয়ে সহজ। এফডি খুব মিল। এখানে এফডি ব্যবহার করে সিউডিএর সাথে এনভিডির এন-বডি সিমুলেশন রয়েছে, যা আপনাকে টাইলিং এবং হ্রাস কীভাবে সিরিয়াল পারফরম্যান্সকে মারাত্মকভাবে ছাড়িয়ে যেতে সহায়তা করতে পারে তার একটি মোটামুটি ধারণা দেওয়া উচিত।
এসডি বাস্তবায়নগুলি কৌশলগুলি সাধারণত অপ্টিমাইজ করে এবং প্রয়োগ করতে কিছু কোরিওগ্রাফির প্রয়োজন হয়। তারা প্রায় সবসময় দ্রুত এবং আরও ভাল স্কেল।
কারণ এডি / এফডি প্রতিটি বিডের জন্য "প্রতিবেশী তালিকা" তৈরি করা প্রয়োজন। প্রতিটি বিডের যদি তার প্রতিবেশীদের অবস্থান জানতে হয় তবে তাদের মধ্যে যোগাযোগ হ'ল ( এন ²)। প্রতিটি বোড চেকের ক্ষেত্রের আকার হ্রাস করতে আপনি ভারলেট প্রতিবেশী তালিকা ব্যবহার করতে পারেন, যা আপনাকে প্রতিটি পদক্ষেপের পরিবর্তে প্রতি কয়েক বার সময় অনুসারে তালিকাটি পুনর্নির্মাণের অনুমতি দেয়, তবে এটি এখনও ও ( এন ²)। এসডিতে প্রতিটি কক্ষ প্রতিবেশীর তালিকা রাখে, যেখানে এডি / এফডি প্রতিটি বিডের প্রতিবেশীর তালিকা থাকে। সুতরাং প্রতিটি বোড একে অপরের সাথে যোগাযোগ করার পরিবর্তে, প্রতিটি ঘর একে অপরের সাথে যোগাযোগ করে। যোগাযোগের যে হ্রাস হ'ল গতি বৃদ্ধি আসে।
দুর্ভাগ্যক্রমে বোডসের সমস্যাটি এসডিটিকে সামান্যতমভাবে ক্ষতিগ্রস্থ করে। প্রত্যেকটি প্রসেসরের একটি ঘরের ট্র্যাক রাখা সর্বাধিক সুবিধাজনক যখন পুরো অঞ্চলগুলিতে কিছুটা সমানভাবে বিতরণ করা হয়। তবে আপনি Boids একসাথে ক্লাস্টার করতে চান ! যদি আপনার পলগুলি সঠিকভাবে আচরণ করে, আপনার প্রসেসরের বেশিরভাগ অংশ একে অপরের সাথে খালি তালিকা বিনিময় করবে এবং কোষের একটি ছোট গ্রুপ এডি বা এফডি একই গণনা সম্পাদন করবে।
এটি মোকাবেলা করার জন্য, আপনি যে কোনও সময় খালি কোষের সংখ্যা হ্রাস করতে, বা কোয়াড-ট্রিগুলির জন্য বার্নস-হট অ্যালগরিদম ব্যবহার করতে হয় গাণিতিকভাবে কোষগুলির আকার (যা ধ্রুবক) টিউন করতে পারেন। বিএইচ অ্যালগরিদম অবিশ্বাস্যভাবে শক্তিশালী। অদ্ভুতভাবে, সমান্তরাল আর্কিটেকচারে এটি প্রয়োগ করা অত্যন্ত কঠিন। এটি কারণ যে কোনও বিএইচ গাছ অনিয়মিত, তাই সমান্তরাল থ্রেডগুলি বন্য আকারে পরিবর্তিত গতিতে এটি পেরিয়ে যাবে, যার ফলে থ্রেড বিচ্যুতি ঘটে। সলমন এবং ডাবিনস্কি প্রসেসরের মধ্যে সমানভাবে চতুর্ভুজ বিতরণ করার জন্য অर्थোগোনাল রিকার্সিভ বাইসেকশন অ্যালগরিদম উপস্থাপন করেছেন, যা বেশিরভাগ সমান্তরাল আর্কিটেকচারের জন্য পুনরাবৃত্তভাবে পুনঃস্থাপন করতে হবে।
আপনি দেখতে পাচ্ছেন, আমরা স্পষ্টতই এই মুহুর্তে অপ্টিমাইজেশন এবং কালো যাদুবিদ্যার ক্ষেত্রের মধ্যে আছি। আবার, প্লিম্পটনের কাগজটি পড়ার চেষ্টা করুন এবং দেখুন এটি কোনও অর্থবোধ করে কিনা।