আর্কজিআইএসে মাল্টকোর প্রসেসিং অনুকূলকরণের পদ্ধতি


12

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

আর্ক / পাইথনে কি কেউ সমান্তরাল বা মাল্টিথ্রেডেড জিওপ্রসেসিং পদ্ধতি তৈরি করেছে? এমন কোনও হার্ডওয়্যার বাধা আছে যা স্বতন্ত্র কাজগুলিতে মাল্টিকোর প্রসেসিংকে বাধা দেয়?

স্ট্যাকওভারফ্লোতে আমি একটি আকর্ষণীয় উদাহরণ পেয়েছি যা আমার আগ্রহ নিয়েছে, যদিও এটি কোনও ভূ-প্রসেসিংয়ের উদাহরণ নয়:

from multiprocessing import Pool
import numpy

numToFactor = 976

def isFactor(x):
    result = None
    div = (numToFactor / x)
    if div*x == numToFactor:
        result = (x,div)
    return result

if __name__ == '__main__':
    pool = Pool(processes=4)
    possibleFactors = range(1,int(numpy.floor(numpy.sqrt(numToFactor)))+1)
    print 'Checking ', possibleFactors
    result = pool.map(isFactor, possibleFactors)
    cleaned = [x for x in result if not x is None]
    print 'Factors are', cleaned

1
আমার আর্কের অভিজ্ঞতায় এটি প্রায় সর্বদা হয় 1 এর মধ্যে নেমে আসে) আপনার ডেটা {সংখ্যক মূল} অংশে বিভক্ত করা, প্রক্রিয়াজাতকরণ এবং পুনরায় সমাবেশ করা বা 2) মেমরির মধ্যে সমস্ত কিছু পড়তে দেওয়া এবং এক্স এপিআইকে থ্রেডিং পরিচালনা করতে দেওয়া। যে নোট this is not meant to discourage
ভালভ লন্ডন

ধন্যবাদ ভালভ লন্ডন সম্ভবত আরও নতুন আইভি ব্রিজ প্রযুক্তি এবং কেপলার জিপিইউ আরও পরিশীলিত প্রক্রিয়াজাতকরণ পদ্ধতির জন্য অনুমতি দেবে।
হারুন

ইএসআরআই বিশ্লেষণ এবং জিওপ্রসেসিং টিমের কোনও প্রোডাক্ট ইঞ্জিনিয়ারের কাছ থেকে পাইথন মাল্টিপ্রসেসিং সম্পর্কিত দরকারী ব্লগের লিঙ্কটি এখানে। ব্লগস.এসরি.com
হারুন

উত্তর:


11

মাল্টিকোর আরকি স্ক্রিপ্টের উদাহরণ এখানে is প্রক্রিয়াটি খুব সিপিইউ-নিবিড় তাই এটি খুব ভালভাবে স্কেল করে: আরকিজিআইএস ডেস্কটপের জন্য আরকিপি / পাইথনে বিল্ডিং শ্যাডো উত্পাদনের জন্য পোর্টিং এভিনিউ কোড?

এই উত্তরে আরও কিছু সাধারণ তথ্য: একক মডেলটিতে সমবর্তী প্রক্রিয়াগুলি চালানো যেতে পারে?


11

আমার অভিজ্ঞতায় সবচেয়ে বড় সমস্যা হ'ল স্থায়িত্ব পরিচালনা করা। আপনি যদি এক রাতেই ছয় সপ্তাহের প্রসেসিং করেন তবে আপনার ছয় সপ্তাহ অবর্ণনীয় ত্রুটি এবং ত্রুটিও থাকবে।

বিকল্প পদ্ধতি হ'ল স্বতন্ত্র স্ক্রিপ্টগুলি বিকাশ করা যা স্বতন্ত্রভাবে চলতে পারে এবং সমস্যা সৃষ্টি না করে ব্যর্থ হতে পারে:

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

1
আমি দেখতে পেয়েছি যে মাল্টিপ্রসেসিং মডিউলটি অন্তর্ভুক্ত করে এই পদ্ধতির পক্ষে ভাল one কিছু এক্সটেনশান, যেমন স্থানিক বিশ্লেষক, একই ফাংশনের একাধিক অনুলিপি একই সাথে চলতে থাকে তবে খুব ভাল কাজ করে না, তাই এর মতো কিছু আপনি যে বর্ণনাটি দিয়েছিলেন তা ব্যবহারকারী-নিয়ন্ত্রিত ফর্মের জন্য কুইউংয়ের অনুমতি দেয় (অর্থাত্‍ একই সময়ে সেই কাজগুলি নির্ধারণ করা এড়ানো বা ফাইল লক করার কারণে একই জিওডাটাবেসগুলি একবারে ব্যবহার করা এড়ানো) সেরা হতে চলেছে।
নিকসান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.