ফ্রি লাঞ্চ শেষ? [বন্ধ]


12

২০০৫ সালের তার বিখ্যাত দ্য ফ্রি লাঞ্চ ইজ ওভার নিবন্ধে, হার্ব সটার একটি কনকন্টার প্রোগ্রামিং বিপ্লবকে অবজেক্ট-ওরিয়েন্টেড রেভোলিউশনের মতোই বড় ভবিষ্যদ্বাণী করেছিলেন। এই বিপ্লবটি কি 2005 - 2013 সালে সত্যিই সুখী হয়েছে?


নিবন্ধের মূল বিষয়গুলি:

  • প্রসেসর নির্মাতারা সিপিইউর কর্মক্ষমতা বাড়ানোর জন্য তাদের বেশিরভাগ traditionalতিহ্যগত পদ্ধতির সাথে ঘরছাড়া হয়ে গেছে। ঘড়ির গতি আরও উচ্চতর চালনার পরিবর্তে তারা হাইপারথ্রেডিং এবং মাল্টিকোর আর্কিটেকচারের দিকে ঝুঁকছে।

  • অ্যাপ্লিকেশনগুলিতে ক্রমগতভাবে সিপিইউ থ্রুপুট লাভগুলি কাজে লাগাতে চাইলে একযোগে থাকা প্রয়োজন।

  • "ওহ, পারফরম্যান্স এতটা গুরুত্ব দেয় না, কম্পিউটার কেবল দ্রুত পেতে থাকে" বিবৃতিটি ভুল হবে।

  • দক্ষতা এবং পারফরম্যান্স অপ্টিমাইজেশন আরও বেশি, কম নয়, গুরুত্বপূর্ণ পাবেন। যে ভাষাগুলি ইতিমধ্যে ভারী অনুকূলকরণের জন্য নিজেকে ধার দেয় তারা নতুন জীবন খুঁজে পাবে; তাদের যেগুলি প্রতিযোগিতা করার উপায় এবং আরও দক্ষ এবং অনুকূলকরণযোগ্য হওয়ার প্রয়োজন হবে না। কর্মক্ষমতা-ভিত্তিক ভাষা এবং সিস্টেমগুলির জন্য দীর্ঘমেয়াদী বর্ধিত চাহিদা প্রত্যাশা করুন।

  • প্রোগ্রামিং ভাষা এবং সিস্টেম ক্রমবর্ধমান সম্মতি সঙ্গে ভাল ডিল করতে বাধ্য করা হবে। আমাদের আজকের ভাষাগুলির চেয়ে তুলনামূলকভাবে উচ্চতর স্তরের প্রোগ্রামিং মডেল দরকার।


15
আপনার ফোনে কয়টি কোর রয়েছে?
ম্যাট ডি

6
আমার নোকিয়া 2700 এর একটি কোর রয়েছে।
সিপিপি

5
@ ম্যাটডি দুঃখিত, তবে কেন এটি "আপগ্রেড করার সময় হয়েছে", এবং সিপিসির ফোনে কোরগুলির সংখ্যার সাথে কী সম্পর্ক রয়েছে? আপনি কীভাবে জানবেন যে নোকিয়া 2700 তার প্রয়োজনের জন্য যথেষ্ট নয়?
আন্দ্রেস এফ।

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

2
আমি কেবল এটিই উল্লেখ করতে চাই যে কেবলমাত্র পূর্বাভাসের সময়কাল ভুল, এটি অগত্যা ভবিষ্যদ্বাণীগুলি ভুল করে না। এটি একেবারেই সুস্পষ্ট যে আপনি উপরে উল্লিখিত মূল পয়েন্টগুলি বর্ণিত গুরুত্বটি অর্জন করতে পারেন নি, তবে points পয়েন্টগুলির প্রত্যেকটির দিকের পদক্ষেপ ছিল। সুতরাং আমি বলব উপরোক্ত ভবিষ্যদ্বাণীগুলি সত্য হয়ে উঠবে, এটি কখন কখন একটি প্রশ্ন। WHEN তখন হবে যখন এটি কেবল একটি আকাঙ্ক্ষা নয় requirement সেই থ্রেশহোল্ডটি কখন অতিক্রম করা হবে তা জেনে রাখা কেন কখন এত শক্ত pred
ডঙ্ক

উত্তর:


23

হ্যাঁ, তবে এটি নির্ভর করে।

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

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

২০০৫ সাল থেকে আমরা নতুন ও উন্নত সরঞ্জাম যেমন ওপেনসিএল, সিইউডিএ, ওপেনএমপি এবং ভেক্টর নির্দেশাবলী প্রতিষ্ঠিত ভাষাগুলিতে সমঝোতা এবং ডেটা সমান্তরালতার সাথে কাজ করার জন্য অর্জন করেছি। যাইহোক, আপেক্ষিক নতুনরা একত্রে সম্মতিতে আরও অনেক আকর্ষণীয় কাজ করার জন্য প্রথম থেকেই নকশাকৃত।

হাস্কেলের সাম্প্রতিক রানটাইম ভাষাটিকে হালকা ওজনের সমান্তরালতা (স্পার্কস) এবং একযোগিতাপূর্ণ বিমূর্ততা (থ্রেড, চ্যানেল এবং ভাগ করে নেওয়া মিউটਟੇਬਲ রেফারেন্স) এর জন্য সমৃদ্ধ সমর্থন সরবরাহ করতে সহায়তা করে। গো এবং মরচে হালকা ওজনের কাজও সরবরাহ করে, চ্যানেল ব্যবহার করে যান এবং ম্যাসেজ উত্তরণ ব্যবহার করে মরিচা।

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

শেষ অবধি, বিদ্যমান অনেকগুলি ভাষা — আমি নাম বলব না new নতুন সফ্টওয়্যার লেখার জন্য বিশ্বাসযোগ্য পছন্দ হিসাবে প্রত্যাখ্যান করতে প্রস্তুত। তাদের জটিলতার বোঝা এবং দুর্বল সমাহার বিমূর্ততা আধুনিক অ্যাপ্লিকেশনগুলির বিবেচনার জন্য তাদের অযোগ্য করে তোলে। আমরা কেবল পরিপক্ক বিকল্পের জন্য অপেক্ষা করছি।


2
আমি নির্দিষ্ট কিছু ভাষা হ্রাস সম্পর্কে তেমন নিশ্চিত নই, আমি আশা করছি আমরা অন্য যে কোনওটির চেয়ে নির্ভরতা হ্রাস করার বিষয়ে আরও ফোকাস সহ কোড লেখা কোডটি দেখতে পাব। সর্বোপরি, এটি আসলে যে ভাষা দোষে তা নয়, আপনি কীভাবে এটি ব্যবহার করেন। এবং এর ব্যবহারের "কম ঝুলন্ত ফল" এখন আর বহুবিশ্লেষিত / সমঝোতার সাথে একত্রিত হয় না।
ম্যাট ডি

6
@MattD: উভয় আপনি একটি ভাষা ব্যবহার এবং নিজেই ভাষা ভুল হতে পারে। আপনার প্রোগ্রামটি ভুল বলে দিন। আপনিই যিনি ভুল লিখেছেন, তবে ভাষাটি আপনাকে এটি সঠিকভাবে লিখতে সহায়তা করে নি এবং এটি ঠিক গুরুত্বপূর্ণ।
জন পুরী

6

এখানে কয়েকটি ডাটা পয়েন্ট রয়েছে; নিজের জন্য সিদ্ধান্ত নিন যদি এটি বিপ্লব হিসাবে গণনা করা হয়।

সমান্তরাল হার্ডওয়্যার

২০০৫ সালের দিকে, ইন্টেল এবং এএমডি উভয়ই গার্হস্থ্য 3 গিগাহার্জ ঘড়ির গতি দিয়ে 2-কোর ডেস্কটপ x86 সিপিইউ (পেন্টিয়াম ডি এবং অ্যাথলন 64) ভর উত্পাদন শুরু করে।

2006 সালে, প্লেস্টেশন 3 প্রকাশিত হয়েছে, এতে সেল প্রসেসরটি 8 + 1 কোরের সাথে 3.2 গিগাহার্টজ এ দেওয়া হয়েছে।

2006 সালে, জিফর্স 8 সিরিজ প্রকাশিত হয়েছে। এটি গ্রাফিক্স-নির্দিষ্ট ইউনিটগুলির বিপরীতে সাধারণ উদ্দেশ্যে 'স্ট্রিম প্রসেসরগুলি' এর বিশাল সংখ্যক (~ 100) নিয়ে গঠিত। ২০০ 2007 সালের দিকে, CUDA 1.0 স্পেস প্রকাশিত হয়েছিল, কিছু সাধারণ-উদ্দেশ্যমূলক গণনা ব্যাপক-সমান্তরাল এনভিডিয়া হার্ডওয়ারে চালানোর অনুমতি দেয়।

তারপর থেকে, প্রবণতা অব্যাহত।

বলুন, এখন, 2013 সালে, ইন্টেল এবং এএমডি উভয়ই 4, 8 এবং 16-কোর সিপিইউ সরবরাহ করে, ঘড়ির গতিটি কেবল 4 গিগাহার্জ থেকে উপরে above ডুয়াল-কোর এবং কোয়াড-কোর ডিজাইনগুলি ল্যাপটপ এবং স্মার্টফোনের মতো লো-পাওয়ার ডিভাইসের জন্য সাধারণ।

এই সমস্ত ভর উত্পাদিত, গ্রাহক-গ্রেড দৈনন্দিন কম্পিউটারের হার্ডওয়্যার।

সফটওয়্যার

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

গো ২০০৯ সালে প্রকাশিত হয়েছিল, খুব সস্তা প্রিমিপটিভ থ্রেড ("গোরোটাইনস") বৈশিষ্ট্যযুক্ত এবং অত্যন্ত দক্ষতার সাথে অত্যন্ত সহবর্তী অ্যালগরিদমকে দক্ষতার সাথে প্রকাশ করার অনুমতি দেয়।

২০০৯ সালে জাভা এবং স্কালার জন্য আক্কা টুলকিট প্রকাশিত হয়, যা অভিনেতা-ভিত্তিক সম্মতিতে অনুমতি দেয়।

এরলং (একটি উচ্চতর সমসাময়িক ভাষা) ব্যবহারের কিছুটা বৃদ্ধি দেখেছে।

সমকালীন বনাম সমান্তরালতা

নোট করুন যে সমান্তরাল হার্ডওয়্যারটি ব্যবহার করার জন্য, অবশ্যই কোনও সফ্টওয়্যার সমঝোতার প্রয়োজন হয় না , অর্থাত্ একটি গণনার মধ্যে মৃত্যুদন্ড কার্যকর করার থ্রেড নিয়ে জাগল। অনেকগুলি সমস্যা সমান্তরাল , অ-ইন্টারেক্টিভ প্রক্রিয়াগুলির দ্বারা সমাধান করা হয় , যেখানে প্রতিটি প্রক্রিয়া একটি traditionalতিহ্যবাহী ক্রমক্রমিক প্রোগ্রাম।

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

এখন পর্যন্ত কোন নিখরচায় দুপুরের খাবার নয়

সিপিইউ গতি এখনও উচ্চ প্রান্তে প্রায় 5 গিগাহার্জ গতিতে স্থির থাকে। গ্রাফিন ট্রানজিস্টারের মতো আরও ভাল প্রযুক্তি সহ, ভবিষ্যতে আবার ফ্রিকোয়েন্সি বৃদ্ধি পেতে পারে তবে খুব শীঘ্রই নয়।

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