ভার্চুয়াল মেশিনে আরও সিপিইউ কোরের সংকলনটি কেন ধীর হবে?


17

[২ # সম্পাদনা করুন] ভিএমওয়্যার থেকে যে কেউ যদি ভিএমওয়্যার ফিউশনটির একটি অনুলিপি নিয়ে আমাকে আঘাত করতে পারে তবে ভার্চুয়ালবক্স বনাম ভিএমওয়্যার তুলনার মতোই আমি আনন্দিত হতে পারব। কোনওভাবেই আমি সন্দেহ করি যে ভিএমওয়্যার হাইপারভাইজার হাইপারথ্রেডিংয়ের জন্য আরও ভালভাবে সুর করা হবে (আমার উত্তরটিও দেখুন)

আমি কিছু কৌতূহল দেখছি। আমি যখন আমার উইন্ডোজ 7 এক্স 64 ভার্চুয়াল মেশিনে করের সংখ্যা বাড়িয়েছি, সামগ্রিক সংকলনের সময়টি কমার পরিবর্তে বৃদ্ধি পাবে । সংকলন সাধারণত মধ্যবর্তী অংশের মতো সমান্তরাল প্রক্রিয়াকরণের জন্য উপযুক্ত (পোস্ট নির্ভরতা ম্যাপিং) আপনি কেবল নিজের প্রতিটি .c / .cpp / .cs / লিঙ্কারের জন্য আংশিক অবজেক্ট তৈরির জন্য যে কোনও ফাইলের জন্য একটি সংকলক উদাহরণ কল করতে পারেন ওভার। সুতরাং আমি কল্পনা করতাম যে সংকলনটি আসলে # কোরের সাথে খুব ভাল স্কেল করবে।

তবে আমি যা দেখছি তা হ'ল:

  • 8 টি কোর: 1.89 সেকেন্ড
  • 4 কোর: 1.33 সেকেন্ড
  • 2 কোর: 1.24 সেকেন্ড
  • 1 কোর: 1.15 সেকেন্ড

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

থ্যাঙ্কস সিড

[ সম্পাদনা: মন্তব্য সম্বোধন ]

@ মার্টিনবেকেট: শীতল সংকলন বাতিল করা হয়েছিল।

@ মনস্টারট্রাক: সরাসরি সংকলনের জন্য একটি ওপেনসোর্স প্রকল্পটি খুঁজে পেল না। দুর্দান্ত হতে পারে তবে এই মুহূর্তে আমার ডেভ এনভিকে স্ক্রুআপ করতে পারে না।

@ মিস্টার লিস্টার, @ ফিলোসোডাড: ভার্চুয়ালবক্স ব্যবহার করে ৮ টি এইচডাব্লু থ্রেড রাখুন, সুতরাং ইমুলেশন ছাড়াই 1: 1 ম্যাপিং হওয়া উচিত

@ থরজজর্ন: আমার কাছে ভিএম এবং একটি ছোট ভিএস ২০১২ প্রকল্পের জন্য .5.৫ গিগাবাইট রয়েছে - আমি পৃষ্ঠা ফাইলটি ট্র্যাশ করে আউট / আউট করতে যাচ্ছি এমন সম্ভাবনা খুব কমই।

@ সমস্ত: যদি কেউ কোনও ওপেন সোর্স ভিএস2010 / ভিএস ২০১২ প্রকল্পের দিকে নির্দেশ করতে পারে তবে এটি আমার (মালিকানাধীন) ভিএস ২০১২ প্রকল্পের চেয়ে আরও ভাল সম্প্রদায়ের রেফারেন্স হতে পারে। VS2012- এ সংকলনের জন্য অর্চার্ড এবং ডিএনএন-এর পরিবেশের টুইট করার প্রয়োজন মনে হয়েছে। আমি সত্যিই দেখতে চাই VMWare ফিউশন সহ কেউ এটি দেখতে পান কিনা (ভিএমওয়্যার বনাম ভার্চুয়ালবক্স সংকলনের জন্য)

পরীক্ষার বিবরণ:

  • হার্ডওয়্যার: ম্যাকবুক প্রো রেটিনা
    • সিপিইউ: কোর আই 7 @ ২.৩ গিগাহার্টজ (কোয়াড কোর, হাইপার থ্রেডড = উইন্ডো টাস্ক ম্যানেজারে ৮ টি কোর)
    • স্মৃতি: 16 গিগাবাইট
    • ডিস্ক: 256 জিবি এসএসডি
  • হোস্ট ওএস: ম্যাক ওএস এক্স 10.8
  • ভিএম প্রকার: ভার্চুয়ালবক্স 4.1.18 (টাইপ 2 হাইপারভাইজার)
  • অতিথি ওএস: উইন্ডোজ 7 x64 এসপি 1
  • সংকলক: ভিএস ২০১২ 3 সি # অ্যাজুরি প্রকল্পগুলির সাথে একটি সমাধান সংকলন করছে
    • ভিএস2012 প্লাগইন দ্বারা 'ভিএসকম্যান্ডস' নামে পরিমাপ করা সংকলনের সময়গুলি
    • সমস্ত পরীক্ষা 5 বার চালিত হয়, প্রথম 2 রান বাতিল হয়, সর্বশেষ 3 গড় হয় a

9
সম্ভবত ফাইল I / O ফাইলটি এটিকে ধীরে ধীরে ধীরে ধীরে কাজ করে এবং ভার্চুয়ালাইজড ড্রাইভটিতে ডিস্ক অ্যাক্সেস
মার্টিন Beckett

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

1
আমরা এখানে কি সংকলন করছি? আপনি নির্দিষ্ট স্কেলে আঘাত না করা পর্যন্ত অনেক সময় কোনও কার্যকে সমান্তরাল করার ওভারহেড প্রদান করে না। কীভাবে সংকলন অ্যাপাচি বা রাভেন্ডব করে দেখুন।
ওয়াট বার্নেট

2
আপনি সম্ভবত আপনার ভার্চুয়াল মেশিনে মেমরি ফুরিয়েছেন তাই এটি অদলবদল শুরু করে।

1
জাভা একটি আই 3 রচনা করতে 3.x ব্যবহার করে এর আগে আমার সাথে একই ঘটনা ঘটেছে। "2" থ্রেডগুলিতে এটি ডিফল্টরূপে দেওয়া কেবল 2 কোর ব্যবহারের জন্য স্পষ্টভাবে বলার চেয়ে 50% ধীরের কাছাকাছি, খুব ধীর ছিল। আমি মনে করি হাইপার-থ্রেডিং প্রসঙ্গে সুইচিং এবং আই / ও ওভারল্যাপিংয়ের সাথে এর কিছু সম্পর্ক রয়েছে to

উত্তর:


12

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

এটি প্রশ্নের উত্তর (এবং আমার ব্যক্তিগত কৌতূহল) এর ভিত্তিতে আমি যে নতুন পরীক্ষা করেছি তা ভিত্তি করে তৈরি। আমি একটি বৃহত ভিএস প্রকল্প ব্যবহার করেছি - উম্ব্রাকো সিএমএসের উত্স কোড যেহেতু এটি বিশাল, উন্মুক্ত উত্সাহিত এবং কেউ সরাসরি সমাধান ফাইলটি পুনরায় তৈরি করতে এবং পুনর্নির্মাণ করতে পারে (ইঙ্গিত: umbraco_675b272bb0a3\src\umbraco.slnভিএস2010 / ভিএস ২০১২ এ লোড আপ )।

এখন, আমি যা দেখছি তা আমি প্রত্যাশা করি, অর্থাত কমিয়ে দেয় !! ঠিক আছে, যেহেতু আমি খুঁজে পেয়েছি একটি নির্দিষ্ট সময়ে:

ফলাফলের সারণী

takeaways:

  • ভার্চুয়ালবক্স প্রক্রিয়াটির মধ্যে একটি নতুন ভিএম কোরের ফলে একটি নতুন ওএস এক্স থ্রেড আসে
  • প্রত্যাশার সাথে সংকলনের সময় স্কেল আপ করুন (সংকলনগুলি যথেষ্ট দীর্ঘ)
  • ৮ টি ভিএম কোরে, মূল অনুকরণ ভার্চুয়ালবক্সের মধ্যে লাথি মারছে কারণ পেনাল্টিটি বিশাল (50% হিট)
  • উপরেরটি সম্ভবত কারণ ওএস এক্স ভার্চুয়ালবক্সে 4 টি হাইপার-থ্রেডেড কোর (8 এইচ / ডাব্লু থ্রেড) উপস্থাপন করতে অক্ষম

এই শেষ পয়েন্টটি আমাকে 'ক্রিয়াকলাপ মনিটর' (সিপিইউয়ের ইতিহাস) এর মাধ্যমে সমস্ত কোর জুড়ে সিপিইউয়ের ইতিহাস পর্যবেক্ষণ করেছিল এবং আমি যা পেয়েছি তা ছিল

ওএস এক্স সিপিইউর ইতিহাস গ্রাফ

takeaways:

  • একটি ভিএম কোরে, ক্রিয়াকলাপটি 4 টি এইচডব্লু কোর জুড়ে আশা করছে। মূল স্তরে সমানভাবে তাপ বিতরণ করার জন্য, বোঝায়।

  • এমনকি 4 টি ভার্চুয়াল কোর (এবং 27 ভার্চুয়ালবক্স ওএস এক্স থ্রেড বা সামগ্রিকভাবে ~ 800 ওএস এক্স থ্রেড) কেবলমাত্র এইচডাব্লু থ্রেডগুলি (0,2,4,6) প্রায় স্যাচুরেটেড থাকে যখন বিজোড় এইচডাব্লু থ্রেড (1,3,5,7) প্রায় 0% এ। সম্ভবত শিডিয়ুলার এইচডাব্লু কোর এবং নট এইচডাব্লু থ্রেডের ক্ষেত্রে কাজ করে তাই আমি অনুমান করি যে সম্ভবত ওএসএক্স bit৪ বিট কার্নেল / শিডিয়ুলার হাইপার থ্রেডেড সিপিইউয়ের জন্য অনুকূলিত হয়নি? অথবা 8 ভিএম কোর সেটআপটি দেখে, সম্ভবত এটি উচ্চতর সিপিইউ ব্যবহারের জন্য তাদের ব্যবহার শুরু করে? মজার কিছু হ'ল ... ঠিক আছে, কিছু ডারউইন বিকাশকারীদের জন্য এটি একটি পৃথক প্রশ্ন ...

[সম্পাদনা]: আমি ভিএমওয়্যার ফিউশনতে একই চেষ্টা করতে চাই। সম্ভাবনা হ'ল এটি এত খারাপ হবে না। তারা যদি এটি বাণিজ্যিক পণ্য হিসাবে প্রদর্শন করে তবে আমি অবাক হই ...

পাদলেখ:

চিত্রগুলি যদি কখনও অদৃশ্য হয়ে যায় তবে সংকলনের সময় সারণীটি হ'ল (পাঠ্য, কুশ্রী!)

Cores in    Avg compile      Host/OSX    Host/OSX CPU
   VM         times (sec)   Threads      consumption
    1           11.83            24        105-115%
    2           10.04            25        140-190%
    4            9.59            27        180-270%
    8           14.18            31        240-430%

আমি সন্দেহ 4 এবং 8 এর মধ্যে ড্রপ VM- র সংমিশ্রণ এইচটি জন্য অপ্টিমাইজ করা হচ্ছে না, এবং এইচ টি কোন ভাবেই না দুইবার অনেক কোর হিসাবে (এ সমান হচ্ছে সেরা 30% কর্মক্ষমতা বৃদ্ধি, সাধারণত অনেক কম)।
ড্যানিয়েল বি

@ ড্যানিয়েলবি: ৪ => ৮ কোরে, সমস্যাটি ঠিক তেমনটি নয় যে এটি আপনার প্রস্তাবিত মত একটি মাত্র + ৩০% বৃদ্ধি (বনাম + 100%) - এটি হ'ল পারফরম্যান্সটি আসলে -50%। যদি হার্ডওয়্যার থ্রেডগুলি পুরোপুরি 'মৃত / অকেজো' হয়ে থাকে এবং কাজটি অন্য কোরগুলিতে ডাইভার্ট করা হয়, তবে পারফরম্যান্স ডেল্টা 0 হবে So আমি ভাবছি-VMWare ফিউশন হচ্ছে ...
DeepSpace101

"একটি ভিএম কোরে, ক্রিয়াকলাপটি 4 টি এইচডব্লু কোর জুড়ে আশ্রয় নিয়েছে বলে মনে হচ্ছে, মূল স্তরে সমানভাবে তাপ বিতরণ করার জন্য" বোঝা যাচ্ছে "- অগত্যা একই কোরতে পুনরায় সময়সূচী করা ভাল (ক্যাশে ইত্যাদির জন্য) হাইপারভাইজার কেবল এলোমেলোভাবে বা খুব কম ব্যবহৃত কোরকে বেছে নিচ্ছে কারণ এটি মনে করে যে এটি একটি সাধারণ-উদ্দেশ্যমূলক প্রক্রিয়াজাতকরণ যেখানে অন্যান্য প্রক্রিয়াগুলি সেই কোরগুলি ব্যবহার করছে। এই ক্ষেত্রে, সময়সূচী অপ্টিমাইজেশন আপনার বিরুদ্ধে কাজ করে (তবে খুব সামান্য উপায়ে)
gbjbaanb

@ সিড সম্মতি জানালেন, আমি কেবল ইঙ্গিত করছি যে এইচটি দিয়ে আপনি খুব বেশি পরিমাণে হ্রাস পাচ্ছেন (প্রচুর পরিমাণে) আপনি যা ভাবেন তার চেয়ে শীঘ্রই রিটার্ন পাবেন, আপনি যদি ধরে নেন তবে এটি আসলে ১০০% উন্নতির মতো কিছু। এই ক্ষেত্রে এটি সহজেই আপনার এইচডি-র জন্য বিতর্ক হতে পারে যা এটি ঘটায়, তাই কিছু কৃত্রিম সিপিইউ বেঞ্চমার্কের জন্য আমার পূর্ববর্তী পরামর্শ।
ড্যানিয়েল বি

6

এটি হওয়ার একমাত্র সম্ভাব্য কারণ রয়েছে যা হ'ল আপনার ওভারহেড আপনার লাভগুলি ছাড়িয়ে গেছে।

আপনি হোস্ট মেশিন থেকে প্রকৃত কোর বা এমনকি প্রক্রিয়াগুলি এমনকি থ্রেড বরাদ্দ না করে একাধিক কোর অনুকরণ করতে পারেন। এটি আমার কাছে বেশ সম্ভবত বলে মনে হচ্ছে এবং স্পষ্টতই আপনাকে নেতিবাচক গতিবেগ দেবে।

অন্য সম্ভাবনাটি হ'ল প্রক্রিয়াটি নিজেও ভালভাবে সমান্তরাল হয় না এবং এমনকি এটি সমান্তরাল করার চেষ্টা করেও আপনি যে পরিমাণ অর্থ অর্জন করছেন তার চেয়ে বেশি যোগাযোগের ক্ষেত্রে আপনাকে বেশি ব্যয় করতে পারে।


your overhead is exceeding your gains: সত্য তবে এটি সত্যই কি ঘটছে তা না জেনে সবকিছুই কভার করে ফেলেছে :) ... আমি ভার্চুয়ালবক্স ব্যবহার করছি এবং শারীরিক কোর রয়েছে, সুতরাং অনুমান করা যে ম্যাপিংটি অনুকরণ ছাড়াই 1: 1 হওয়া উচিত। আমি একটি বড় ওপেন সোর্স VS2012 অনুসন্ধান করতে যাচ্ছি যাতে অন্যরাও এটি উল্লেখ করতে পারে ...
brb

@ এই উত্তরটি অনুসারে superuser.com/a/297727 ভার্চুয়ালবক্স ভিএম-এর হোস্ট কোরগুলি যথাযথভাবে ব্যবহার করা উচিত। তবে প্রত্যাশিত আচরণটি ঘটছে কিনা তা নিশ্চিত করার জন্য আমি হোস্টে কী ঘটছে তা এখনও যাচাই করে নেব।
ফিলোসোডাড

0

তুমি একা নও ...

জাভা একটি আই 3 রচনা করতে 3.x ব্যবহার করে এর আগে আমার সাথে একই ঘটনা ঘটেছে। "2" থ্রেডগুলিতে এটি ডিফল্টরূপে দেওয়া কেবল 2 কোর ব্যবহারের জন্য স্পষ্টভাবে বলার চেয়ে 50% ধীরের কাছাকাছি, খুব ধীর ছিল।

আমি মনে করি হাইপার-থ্রেডিং প্রসঙ্গে সুইচিং এবং আই / ও ওভারল্যাপিংয়ের সাথে এর কিছু সম্পর্ক রয়েছে to

আপনি যখন এটি সম্পর্কে চিন্তা শুরু করেন তখন তা বোধগম্য হয়। একটি ভাল সিস্টেমের প্রশস্ত প্রোফাইলিংয়ের সাহায্যে ফলাফলের অবক্ষয়ের কারণ কী তা আপনি প্রমাণ করতে পারেন।

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