স্ট্যাটিক, ডায়নামিক এবং সিঙ্গল ডায়নামিক লিঙ্কিং বলতে কী বোঝায়?


9

আমি বিএলএএস এর জন্য ইন্টেল এমকেএল ব্যবহার করি এবং কমান্ড লাইন বিকল্পগুলির সাহায্যের জন্য ইন্টেল এমকেএল লিংক লাইন উপদেষ্টা ব্যবহার করি।

পরামর্শদাতা স্ট্যাটিক, ডায়নামিক এবং সিঙ্গল ডায়নামিক লাইব্রেরির জন্য বিকল্প সরবরাহ করে। এই পদগুলির অর্থ কী?

এ বিষয়ে এসওতে অসংখ্য পোস্ট রয়েছে তবে এগুলির সবগুলিই বৈজ্ঞানিক / গাণিতিক কোডগুলির চেয়ে সফ্টওয়্যার বিকাশের দিকে মনোনিবেশ করেছে। ( এটি বিশেষভাবে কার্যকর ছিল)

  • এই পদগুলি সমান্তরাল কম্পিউটিংয়ের সাথে কীভাবে প্রাসঙ্গিক?
  • এক অন্য চেয়ে ভাল? (আমি জানি যে আরও ভালভাবে আরও সুনির্দিষ্টভাবে সংজ্ঞায়িত করা দরকার তবে এখন কীভাবে করবেন তা আমি জানি না)
  • কী বেশি ব্যবহৃত হয় এবং কেন?
  • লিঙ্ক করার সময় প্রোগ্রামারকে কী বিবেচনা করতে হবে?

ঠিক যেমন একটি নোট, যদি আপনি এটি না দেখে থাকেন তবে নতুন ইন্টেল সংকলক (আমার মনে হয় সংস্করণ 11 এবং আরও নতুন) -mklপতাকাটি সরবরাহ করে যা বেশিরভাগ ক্ষেত্রে লিঙ্ক লাইন উপদেষ্টা ব্যবহারের প্রয়োজনীয়তা সরিয়ে ফেলতে হবে।
এসিন

@ আসীন, আমি ভাবছিলাম। এটি লিঙ্কিংয়ের সবচেয়ে অনুকূল উপায়?
সুরতহাল

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

উত্তর:


14

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

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

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

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

একক ডায়নামিক লাইব্রেরি একটি ইন্টেল-নির্দিষ্ট শব্দ। এটি লিঙ্কিংয়ের প্রক্রিয়াটিকে সহজ করার জন্য তাদের গতিশীল লাইব্রেরিগুলির একটি একক মেটা-লাইব্রেরিতে প্যাকেজিংয়ের উল্লেখ করে। আপনি যদি ইন্টেল লাইব্রেরিগুলির সাথে ডায়নামিক লিঙ্কিং ব্যবহার করছেন, আপনি জটিল কিছু না করলে এই ফর্মটি সম্ভবত পছন্দনীয়।


দুর্দান্ত উত্তর! আরও একটি জিনিস: আমি বুঝতে পারি যে গতিশীল সংযোগ অপ্রয়োজনীয় হবে এবং পছন্দটি স্থিতিশীল এবং একক গতিশীলগুলির মধ্যে হবে। আপনি বলেছিলেন যে আমি জটিল কিছু না করে (যা আমি নই) তার পরে আমার চয়ন করা উচিত। সুতরাং, আমি সিঙ্গল ডায়নামিক ব্যবহার করে লিঙ্ক করা উচিত? [FWiW, আমি Krylov Subspace পদ্ধতি কাজ করছি]
সুরতহাল

দুঃখিত! আমি বলতে চাইছি আপনার ডিফল্টরূপে স্থির ব্যবহার করা উচিত তবে ডায়নামিকের চেয়ে একক গতিশীল prefer
অরন আহমদিয়া

আমি কিছু বেঞ্চমার্কিং করেছি এবং আমি পেয়েছি: Dynamic : 0:42.92 Static : 0:42.93 Single Dynamic : 0:42.97গড়ে 1000 টিরও বেশি মান আছে।
সুরতহাল

1
এটা তোলে এর মূল্য লক্ষ আপনি যে কিছু এইচপিসি সিস্টেমে আছে স্ট্যাটিক্যালি লিঙ্ক - BlueGene / এল সিস্টেম এই ক্ষেত্রে কারণ কম্পিউট নোড কমেছে ওএস গতিশীল লিঙ্ক সমর্থন করে না, উদাহরণস্বরূপ, হয়।
এসিন

1
আপনার বিবৃতিতে আমি কিছুটা বিভ্রান্ত হয়েছি: "সুপার কম্পিউটারগুলির বর্তমান প্রজন্মের ক্ষেত্রে সাধারণত নোডের জন্য কেবল একটি কাজ চলছে, যা ভাগ করে নেওয়া গ্রন্থাগারের কারণে মেমরির হ্রাস হ্রাসের কোনও সুবিধাকে দৃ strongly়ভাবে হ্রাস করে।" আপনি কি বলতে চেয়েছেন যে নোডের জন্য কেবল একটি প্রক্রিয়া আছে? আমি নিশ্চিত নোড প্রতি এক কাজ পরিস্থিতি প্রভাবিত কিভাবে। যখন প্রতিটি প্রক্রিয়াটি স্থিতিশীলভাবে সংযুক্ত করা হয় তখন এক্সিকিউটেবলের একটি সম্পূর্ণ অনুলিপি সংরক্ষণ করা হয় যা প্রসেসরের প্রতি কোর বাড়ার ক্ষেত্রে তাৎপর্যপূর্ণ হতে পারে। গতিশীল লিঙ্কিংয়ের জন্য ভাগ করা মেমরি স্পেস প্রতি ডায়নামিক লাইব্রেরির কেবল একটি অনুলিপি লাগবে।
andybauer
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.