উত্তর:
প্রক্রিয়াটির ভিতরে, কলটি হবে sched_setaffinity()
বা পাঠ্য পদার্থগুলির জন্য,pthread_setaffinity_np()
সম্পর্কিত নোটে, আপনি যদি আপনার প্রোগ্রামের সিপিইউ অ্যাফিনিটি সম্পর্কে চিন্তিত হন তবে এটি কীভাবে মেমরি বরাদ্দ করছে সেদিকে মনোযোগ দেওয়া সার্থক হতে পারে। একাধিক কন্ট্রোলারের সাথে মেমোরি যুক্ত বৃহত সিস্টেমে (যেমন একাধিক সিপিইউ সকেট, প্রতিটি নিজস্ব নিজস্ব) পৃথক সিপিইউ-মেমরি জুটির মধ্যে পরিবর্তনশীল ল্যাটেন্সি এবং ব্যান্ডউইথ থাকতে পারে। আপনি numactl
কমান্ড বা সিস্টেম কলটি যে এটির সাথে কাজ করে তা ব্যবহার করে আপনিও NUMA সংযুক্তি সন্ধান করতে চাইবেন । আমি যে প্রোগ্রামটিতে কাজ করেছি তার থেকে এটি 10% পারফরম্যান্সের উন্নতি পেয়েছে।
taskset -c 1-3 ./a.out arg1 arg2
a.out
প্রসেসর 1, 2 বা 3 (শূন্য ভিত্তিক) এ সেট করা প্রদত্ত আর্গুমেন্ট এবং সান্নিধ্যের সাথে প্রক্রিয়া আরম্ভ করে ।
এখানে একটি ন্যূনতম সি পরীক্ষা প্রোগ্রাম রয়েছে যা এটি কার্যকরভাবে দেখাতে ব্যবহার করা যেতে পারে: https://stackoverflow.com -c / 50117787 # 50117787
taskset -p -c 1,3 45678
পরিবর্তে হওয়া উচিতtaskset -c 1,3 -p 45678
; যেমন, এটি-c 1,3
একটি মুখোশের স্পেসিফিকেশন এবং যেমন, অবশ্যই-p
এবং এর মধ্যে স্থাপন করা উচিতpid
।