Кіріспе

Бір мәселені шешетін екі жүйенің өнімділігін арттыру процесі. Компьютерлік архитектурада, жылдамдық – бірдей мәселені шешетін екі жүйенің салыстырмалы өнімділігін өлшейтін көрсеткіш. Техникалық тұрғыдан алғанда, бұл әртүрлі ресурстармен жабдықталған екі ұқсас архитектурада орындалған тапсырманың орындалу жылдамдығының артуы. Жылдамдық көрсеткішінің негізі Әмдәл заңымен қаланды, ол әсіресе параллель өңдеуге қатысты. Дегенмен, жылдамдық кез келген ресурсты жақсартудан кейін өнімділікке тиетін әсерді көрсету үшін кеңінен қолданылуы мүмкін.

Орындау уақытын пайдалану

Біз бағдарламаның орындалуындағы тармақ болжаушының тиімділігін сынап жатырмыз. Біріншіден, біз бағдарламаны процессордағы стандартты тармақ болжаушысымен орындаймыз, нәтижесінде 2,25 секундтік орындалу уақыты алынады. Содан кейін, біз бағдарламаны сол процессорда өзгертілген (және үміттенгендей жақсартылған) тармақ болжаушысымен орындаймыз, бұл 1,50 секундтік орындалу уақытын береді. Екі жағдайда да орындалу жүктемесі бірдей. Біздің жылдамдық формуламызды қолданып, жаңа тармақ болжаушы бастапқыдан 1,5 есе жылдамдыққа қол жеткізгенін білеміз.

Бір нұсқаулық бойынша циклдерді және бір цикл бойынша нұсқауларды пайдалану

Сонымен қатар жылдамдықты циклге шаққандағы нұсқаулар санымен (CPI), яғни кідіріс уақыты арқылы өлшеуге болады. Біріншіде, бағдарлама стандартты тармақ болжаушысымен орындалады, нәтижесінде CPI 3-ке тең болады. Екіншіден, бағдарлама өзгертілген тармақ болжаушысымен орындалады, нәтижесінде CPI 2-ге тең болады. Екі жағдайда да орындалу жүктемесі бірдей және екі архитектура да конвейерленбеген немесе параллель емес. Жылдамдық формуласын қолдану арқылы жылдамдықты циклге шаққандағы нұсқаулар санымен (IPC) өлшеуге болады, бұл өнімділік және CPI-дің кері шамасы. Жылдамдық формуласын қолдану арқылы, әр түрлі шамаларды өлшегенімізбен, 1,5 есе жылдамдыққа қол жеткіземіз.

Суперлинейлік жылдамдық

Кейде A процессорды пайдаланған кезде A-дан артық жылдамдық параллель есептеуде байқалады, бұл суперсызықтық жылдамдық деп аталады. Суперсызықтық жылдамдық сирек кездеседі және көбінесе A процессорды қолданғанда теориялық ең жоғары жылдамдық A болуы керек деп ойлайтын жаңадан бастаушыларды шатастырады. Төмен деңгейдегі есептеулерде суперсызықтық жылдамдықтың бір себебі – қазіргі заманғы компьютердің әртүрлі жад иерархиясынан туындайтын кэш эффектісі: параллель есептеуде процессорлардың саны ғана емес, сонымен қатар әртүрлі процессорлардан жинақталған кэштің көлемі де өзгереді. Жинақталған кэш көлемі үлкен болғандықтан, жұмыс жиынтығының көп бөлігі немесе тіпті толығымен кэшке сыйып, жадқа қол жеткізу уақыты күрт төмендейді, бұл нақты есептеуден басқа қосымша жылдамдыққа әкеледі. BLAST іске асырылымдарымен ізделетін геномдық деректер сияқты үлкен деректер жиынтығын іздеу кезінде де ұқсас жағдай туындайды. Мұнда кластердегі әрбір түйіннің жинақталған жедел жады деректер жиынтығын дискіден жедел жадқа көшіруге мүмкіндік береді, соның салдарынан, мысалы, mpiBLAST деректерді іздеу үшін қажетті уақытты күрт қысқартады. Суперсызықтық жылдамдық параллель кері іздеуді орындау кезінде де болуы мүмкін: бір жіптегі қате басқа бірнеше жіптерді олардың өзі қатеге жете алмай тұрып ертерек кері қайтаруға мәжбүрлеуі мүмкін. Суперсызықтық жылдамдық оптимизация үшін тармақталу және шектеулерді параллель түрде іске асыру кезінде де пайда болуы мүмкін: бір процессордың бір түйінді өңдеуі басқа процессорлардың басқа түйіндер үшін атқаруы керек жұмыстың өзгеруіне әсер етуі мүмкін.