এসকিসিআই অ্যাসিঙ্ক্রোনাস IO কি সত্যিই সমলয়র চেয়ে ধীরে ধীরে?


0

আমি এই দুটি পৃষ্ঠায় যা পড়েছি তা নিয়ে আমি সম্পূর্ণ বিভ্রান্ত।

http://www.scsifaq.org/scsifaq.html#_Hlk410546176 http://www.cse.scu.edu/~tschwarz/coen180/LN/scsi.html

উভয় দাবি করে যে এসসিএসআই অ্যাসিঙ্ক্রোনাস IO সমান্তরাল একের চেয়েও ধীর। কিভাবে? কেন যে কেউ শুধুমাত্র কর্মক্ষমতা আলগা Async পদ্ধতি লিখতে বিরক্ত হবে?

এটা আমার প্রত্যাশা বিপরীত!

বিশেষত যে, এসএসডি ক্ষেত্রে, আমি আরো ভালো কর্মক্ষমতা পেতে অ্যাসিঙ্ক্রোনাসটি পড়তে libaio ব্যবহার করছি।

তদ্ব্যতীত, প্রথম পাঠ্য সমলয় পাঠান প্রেরণ পাঠান পাঠান অপেক্ষা অপেক্ষা করুন ... libaio ক্ষেত্রে এসিঙ্ক্রোনাস ঠিক কি।

যে কেউ আমার জন্য একটি হালকা চালাতে পারেন, দয়া করে ?!

সম্পাদনা করুন 1

আমাকে আমার সমস্যা স্পষ্ট করা যাক। আমি অ্যাসিঙ্ক্রোনাস এবং সিঙ্ক্রোনাস IO মধ্যে একটি পার্থক্য সঠিক বোঝার সঙ্গে একটি সমস্যা হতে পারে।

  • সমলয় : এটা প্রতিটি অপারেশন সম্পন্ন করার জন্য অপেক্ষা করে
  • অসমনিয়ত : এটা প্রতিটি অপারেশন সম্পন্ন করার জন্য অপেক্ষা করে না

এখন, আমি অনুমান করি যে যদি আমি পড়তে পারি ক্রমানুসারে তথ্য কয়েকটি gigs, একটি সহজ সমলয় লুপ এটি পড়া:

while ( num_blocks-- > 0 )
    read_block() ;

প্রশ্নগুলির "অনুরোধ, বিরতি, অনুরোধ" টাইপ থাকবে। বাস্তবিকই আমি দেখি যে যদি আমি এটি মাল্টিথ্রেডেড পদ্ধতিতে পরিবর্তন করি তবে কয়েকটি (6-8) থ্রেড যা 'পরবর্তী অবস্থানটি পড়তে' নিয়ে যাবে এবং তারপরে অনুরোধ করে, আমি প্রায় সর্বোচ্চ পঠন সম্পাদন পেতে পারি।

এটার মতো কিছু:

struct request
{
    ...

    boost::mutex mutex ;
    uint64_t     block ;

    uint64_t get_block_location()
    {
        boost::mutex::scoped_lock lock( mutex ) ;
        return block++ ;
    }
} ;

void readth( request* r )
{
    try
    {
        for( ;; )
        {
            read_block( r->get_block_location()) ;
        }
    }
    catch( const FinishedException& )
    {}
}

আমি ভাবলাম, এবং এখন, আমি মনে করি আমি রবার্ট হার্ভির সহায়তায় যা পড়ি তা পুনঃবিবেচনা করার পরেই এটি পেয়ে যাচ্ছি যে ফলাফলের জন্য অপেক্ষা করার সময়ই অ্যাসাইন / সিঙ্ক সত্যিই 'সঞ্চয় সময়' ব্যাপার!

কেউ যদি আমার মত জ্ঞানীয় সমস্যা থাকে তবে আমি এই প্রশ্নটি বাদ দিচ্ছি!

উত্তর:


2

অ্যাসিঙ্ক্রোনাস I / O ডিস্ক কর্মক্ষমতা গতি বাড়ানোর বিষয়ে নয়। আপনি I / O অ্যাসিঙ্ক্রোনাস তৈরি করে এটি করতে পারবেন না; ডিস্ক প্ল্যাটারগুলি একই গতিতে স্পিন করে যা নির্বিশেষে I / O কল করে।

অ্যাসিঙ্ক্রোনাস I / O এর উদ্দেশ্য এটি ডেটাতে অপেক্ষা করার সময় এটি অন্য কিছু করতে এবং করতে সক্ষম করা হয়। যদিও এটি একটি কর্মক্ষমতা উন্নতি বলে মনে হতে পারে, আপনি যা করছেন তা আসলে ডেটা উপস্থিত হওয়ার সময় নিষ্ক্রিয় থাকার প্রক্রিয়া থেকে একটি প্রসেসরকে মুক্ত করছে।


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

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

হ্যাঁ: ডি ... এবং সেইজন্য আমি বিভ্রান্ত হয়েছি, এবং এই প্রশ্ন পোস্ট করেছি।
Grzegorz

আমার মনে হয় যে আপনি যে সমস্যার সমাধান করার চেষ্টা করছেন সে সম্পর্কে আরো বিশদ হবেন, কারণ তার অনুপস্থিতিতে এটি কেবল একটি কৌতূহল প্রশ্ন। যে বিবরণটি খুব নির্দিষ্ট, এবং অনেকগুলি শব্দে এটি বলে যে সিঙ্ক্রোনাস প্রোটোকলটি আরও কার্যকর কারণ এটি এমনভাবে ডিজাইন করা হয়েছে যা এটি আরও কার্যকর করে। "আরো দক্ষ" এর আরও ভাল বোঝার জন্য আপনি কী সমস্যাটি সমাধান করতে সহায়তা করেন তা ব্যাখ্যা করতে পারেন?
Robert Harvey

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