আরকজিআইএস ফাংশনটির কাস্টম বাস্তবায়ন


9

আমি আর্কজিআইএস ফাংশনটির একটি কাস্টম বাস্তবায়ন তৈরি করতে কী লাগে তা সন্ধান করতে চাই। বিশেষ করে, আমি বাস্তবায়ন করতে চাই GeoAnalyst.ISurfaceOp2.Visibility অর্ডার দ্রুত রান করার জন্য এটি পেতে ()। এখনই, ভিজিবিলিটি () তে প্রতি কলটিতে ~ 3 সেকেন্ড লাগছে। আমার সীমিত বোঝাপড়া থেকে, বাধাটি হ'ল ফাইল সিস্টেমে অস্থায়ী রাস্টারদের লেখা। এটি যদি স্মৃতিতে করা যায় তবে আমি সন্দেহ করি যে প্রক্রিয়াজাতকরণের সময়টি হ্রাস পাবে। আমি এটি নেট প্রকল্পে করছি, তবে যে কোনও ভাষায় সমাধানগুলি স্বাগত।


কেন কেবল অস্থায়ী রাস্টারদের একটি র‌্যাম ডিস্কে লেখা হয়নি? তারপরে আপনাকে স্ক্র্যাচ থেকে দৃশ্যমানতার বিকল্পটি কোড করতে হবে না, যা তার নিজস্ব ঝুঁকি এবং ব্যয় নিয়ে আসে।
শুক্র

ভালই শোনা যাচ্ছে. আমি কীভাবে এটি করতে যাব? নীচের উত্তরে @ রাডার রাজ্যগুলি কি এটি সম্ভব নয়?
রস ফুহরমান

4
আপনি আপনার সিস্টেমে একটি র‌্যাম ডিস্ক ইনস্টল করেছেন ; ওএসের সাথে বিশদ আলাদা হয়। তারপরে আপনি এতে আর্কজিআইএস স্ক্র্যাচ ফোল্ডারটি নির্দেশ করুন। আপনি কোনও এসএসডি ব্যবহার করে প্রায়শই করতে পারেন বিশেষত যদি আপনার রাস্টারগুলি বিশাল হয় বা আপনার যদি খুব বেশি র্যাম না থাকে।
whuber

আমি র‌্যাম ডিস্ক আইডিয়া পছন্দ করি। একটি এসএসডি ঝুঁকিপূর্ণ যেহেতু তারা অবিচ্ছিন্ন পঠন / লেখার ক্রিয়াকলাপের জন্য দুর্দান্ত নয় কারণ আপনি এটি দ্রুত পরিধান করতে পারেন।
রাডার

2
ফ্ল্যাশ-ভিত্তিক এসএসডি ১-৫ মিলিয়ন বেঁচে থাকবে, @ রাডার লিখেছেন, তবে ডিআরএএম এসএসডিগুলি "পরিশ্রম" করবে না। পরিদর্শন storagesearch.com (লট) আরও তথ্যের জন্য।
whuber

উত্তর:


5

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

অতএব, ইন্টারমিডিয়েট ডিস্ক I / O এর কারণে বাধা বিপ্লব করার একটি উপায় হল একটি র‌্যাম ডিস্ক স্থাপন করা (অতিরিক্ত র‌্যাম প্রয়োজনে কিনতে হবে) এবং সেখানে স্ক্র্যাচ ফোল্ডারটি স্থাপন করা। (এটি সাধারণত একটি সফ্টওয়্যার সেটিং হয়))

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

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

কোনও সম্পূর্ণ দৃশ্যমানতার গণনার জন্য প্রয়োজনীয় পরিমাণ গণনা (একটি নির্লজ্জ অ্যালগরিদমে, প্রতিটি ঘরটি প্রতিটি দৃষ্টিকোণের জন্য একবার দৃশ্যমানতার জন্য পরীক্ষা করাতে হবে) দেওয়া উচিত, কমপক্ষে সন্দেহ করা উচিত যে কম্পিউটারের গতি, ডিস্ক আই / ও নয়, সমস্যা হতে পারে এখানে. যদি এটি হয় তবে র‌্যাম ডিস্ক বা এসএসডি সময় এবং অর্থের অপচয় হবে। পরিবর্তে, অন্তর্নিহিত অ্যালগরিদম বিশ্লেষণ এবং উন্নত করার জন্য প্রচেষ্টা পরিচালিত করা উচিত ।

আর্কজিআইএস-র সাহায্যে র‌্যাম ডিস্কের কার্যকারিতা অন্য থ্রেডে হাজির হয়েছে কিনা সে সম্পর্কে কিছু আলোচনা ।


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

এছাড়াও আমি জিপিইউর উল্লেখ করতে চাইছিলাম গোপন পৃষ্ঠ নির্ধারণের মতো জিনিসগুলি করতে অনুকূলিত , যা ইসুরফেসঅপ 2 -র মতোই বৈকল্পিক is ​​দৃশ্যমানতাটি করে।
কर्क কুইকেনডাল

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

এটি একটি দুর্দান্ত উত্তর। আমি প্রস্তাবিত প্রোফাইলিং করেনি, এবং এটি হাজির আছে পারে একটি ডিস্ক ইনপুট / আউটপুট বোতলের হও। সুতরাং, আমি একটি সমাধান প্রয়োগ করেছি যা একটি র‌্যাম ডিস্ক ব্যবহার করেছে (আমি আইএমডিস্কটি বেছে নিয়েছি)। শেষ পর্যন্ত, এই প্রক্রিয়াটি শেষ করার সময় কমেনি।
রস ফুহরমান

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

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