সমান্তরাল প্রোগ্রামগুলিতে ত্রুটিগুলি পরিচালনা করার সর্বোত্তম উপায় কী হবে?


11

সমান্তরাল অ্যালগরিদমগুলি দরজায় কড়া নাড়ালে, ত্রুটি পরিচালনা সম্পর্কে চিন্তা করার জন্য এটি ভাল সময় হতে পারে।

সুতরাং প্রথমে ত্রুটি কোডগুলি ছিল। যারা চুষে ফেলেছে। এগুলিকে অবহেলা করা বিনামূল্যে ছিল, তাই আপনি দেরীতে ব্যর্থ হয়ে হার্ড-টু-ডিবাগ কোড তৈরি করতে পারেন produce

তারপরে ব্যতিক্রম এসেছিল। এগুলি হয়ে গেলে তাদের এড়ানো অসম্ভব হয়ে পড়েছিল এবং বেশিরভাগ লোক (জোয়েল বাদে) তাদের পছন্দ করে।

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

কীভাবে ভাষা বাস্তবায়ন বা পাঠাগারগুলি সমান্তরাল কোডগুলিতে ত্রুটিগুলি সমর্থন করে?



@ এনগু শীঘ্রই হুই এটি বিষয়গত এবং এটি এমন বৈশিষ্ট্যগুলির বিষয়ে যা অগত্যা উপস্থিত নেই, তাই আমি মনে করি এটি এখানে রয়েছে।
জিনাক করুন

তবে এটি প্রোগ্রামিং সম্পর্কে, প্রোগ্রামারদের সম্পর্কে নয়। :)
bzlm

1
@bzlm FAQ বলছে "প্রোগ্রামাররা - স্ট্যাক এক্সচেঞ্জ এমন বিশেষজ্ঞ প্রোগ্রামারদের জন্য যারা সফ্টওয়্যার বিকাশের বিষয়ে বিষয়গত আলোচনায় আগ্রহী।" এবং এসও স্পষ্টভাবে বিষয়গত আলোচনাকে নিরুৎসাহিত করে।
জেনাক

উত্তর:


2

আমি বরং ত্রুটিগুলি পরিচালনা করতে পারা কলব্যাকের শখ করছি এবং এগুলিকে ঠিক তাত্পর্যপূর্ণভাবে কাজ করার জন্য তৈরি করা যেতে পারে ...

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


আমি দ্বিতীয় কলব্যাক। উপরের ধারণাটি আমার কাছে বেশ নিখুঁত বলে মনে হচ্ছে।
প্যাক্স নোটিস

-2

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


5
"কিছু ফিরিয়ে দিচ্ছি" - কার কাছে? কলার ইতিমধ্যে এগিয়ে গেছে।
এইচ

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

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

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