উবুন্টু অ্যাপ্লিকেশনগুলির সংকলন কীভাবে গতিযুক্ত করবেন (মেক, কমেক, জিসিসি)


11

আমি এখানে কিছু প্রোগ্রাম সংকলন করছি এবং আমার কাছে 4 টি কোর রয়েছে। সমস্ত কোর বা এটি প্রভাবিত করে এমন কিছু ব্যবহার করে বলার make, cmakeবা gccসংকলনের কোনও উপায় আছে কি ?

উত্তর:


13

যদি কোনও প্যাকেজ এটি সমর্থন করে তবে আপনি -jসমান্তরাল কাজগুলি চালনার জন্য পতাকা ব্যবহার করতে পারেন , যেমন:

make -j8

এই পতাকার আরও বিশদ স্ট্যাকওভারফ্লো প্রশ্নে পাওয়া যাবে যে যখন মাপ-কোটি উপলব্ধ কোরের সংখ্যার চেয়ে আরও বড় এক নম্বর পাস করা হয় তখন কেন মেক-জে আরও ভাল সম্পাদন করে?

বিতরণ সংকলন

আপনার যদি একাধিক মেশিন থাকে তবে ডিস্টিসি একবার যান। জড়িত মেশিনে sudo apt-get install distcc,। ধরে নিচ্ছি যে আপনার বিল্ড মেশিনটি 192.168.1.1:

  • সহায়ক মেশিনে, চালান:

    sudo distccd --log-file=/tmp/distccd.log --daemon -a 192.168.1.1
    
  • বিল্ড মেশিনে চলার আগে configureবা cmakeবিল্ড প্রক্রিয়াটির জন্য আপনি যে হোস্টগুলি ব্যবহার করতে চান তা আপনাকে নির্দিষ্ট করতে হবে। Ptionচ্ছিকভাবে, স্ল্যাশের পরে একযোগে কাজের সংখ্যা উল্লেখ করুন (4 এ ডিফল্ট করা):

    export DISTCC_HOSTS='localhost/4 192.168.1.2/8 192.168.1.3/8'
    

    সংকলকটি ডিস্টিসি ব্যবহার করুন:

    export PATH="/usr/lib/distcc:$PATH"
    

    এখন configureবা cmakeঅ্যাপ্লিকেশন এবং এর সাথে বিল্ড করুন:

    make -j$(distcc -j)
    

    মনে রাখবেন যে আপনি যদি /usr/lib/distccদু'বার আপনার পথের মধ্যে রাখেন তবে তা ব্যর্থ হবে। আপনার /usr/lib/distccএকবারে সেট করতে ভুলবেন না PATH

আরও তথ্যের জন্য, ডিস্টিসি (1) এবং ডিএসসিডিডি (1) এর জন্য ম্যানুয়াল পৃষ্ঠা দেখুন ।


ওএমজি যে জে ভাল। আমি 15 মিনিট থেকে 1 এরও কম গেলাম L ধন্যবাদ এল।
লুইস আলভারাডো

এটি ডিস্টিসি দিয়ে দ্রুত পেতে পারে, পিএইচপি সংকলন 2 মিনিটের মধ্যে করা হয়েছিল, কার্নেলটি 3 মিনিটে (তিনটি আই 5 মেশিনে) করা হয়েছিল
লেকেনস্টেইন

আমি যখন কাজ করব তখন ডিস্টিসি দিয়ে চেষ্টা করব। গতকাল এই সম্পর্কে একটি অনুরূপ প্রশ্ন জিজ্ঞাসা ছিল। সম্ভবত আপনি এখানে এটির সাহায্য করতে পারেন: Askubuntu.com/questions/106810/…
লুইস আলভারাডো

রুট হিসাবে ডিপিসিডি চালানো কোনও খারাপ পরিকল্পনা বলে মনে হচ্ছে। আমি কয়েকটি কারণে এটি ব্যবহার করি নি তবে আমি যখন ব্যবহার করেছি তখন আমি রুট ব্যবহার করতে পারি না কারণ এই মেশিনগুলিতে আমার অনুমতি ছিল না।
এএমএস

@ams আপনার এটিকে মূল হিসাবে চালানোর দরকার নেই। আপনি যদি এটি রুট হিসাবে চালান এবং ব্যবহারকারীদের স্যুইচ করতে চান তবে ব্যবহার করুন distccd --user nobody। অন্যথায়, এটি এটি কার্যকরকারী ব্যবহারকারীর অধীনে চলবে।
লেকেনস্টেইন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.