Кіріспе
Бір мәселені шешетін екі жүйенің өнімділігін арттыру процесі. Компьютерлік архитектурада, жылдамдық – бірдей мәселені шешетін екі жүйенің салыстырмалы өнімділігін өлшейтін көрсеткіш. Техникалық тұрғыдан алғанда, бұл әртүрлі ресурстармен жабдықталған екі ұқсас архитектурада орындалған тапсырманың орындалу жылдамдығының артуы. Жылдамдық көрсеткішінің негізі Әмдәл заңымен қаланды, ол әсіресе параллель өңдеуге қатысты. Дегенмен, жылдамдық кез келген ресурсты жақсартудан кейін өнімділікке тиетін әсерді көрсету үшін кеңінен қолданылуы мүмкін.
In computer architecture, speedup is a number that measures the relative performance of two systems processing the same problem. More technically, it is the improvement in speed of execution of a task executed on two similar architectures with different resources. The notion of speedup was established by Amdahl's law, which was particularly focused on parallel processing. However, speedup can be used more generally to show the effect on performance after any resource enhancement.
Орындау уақытын пайдалану
Біз бағдарламаның орындалуындағы тармақ болжаушының тиімділігін сынап жатырмыз. Біріншіден, біз бағдарламаны процессордағы стандартты тармақ болжаушысымен орындаймыз, нәтижесінде 2,25 секундтік орындалу уақыты алынады. Содан кейін, біз бағдарламаны сол процессорда өзгертілген (және үміттенгендей жақсартылған) тармақ болжаушысымен орындаймыз, бұл 1,50 секундтік орындалу уақытын береді. Екі жағдайда да орындалу жүктемесі бірдей. Біздің жылдамдық формуламызды қолданып, жаңа тармақ болжаушы бастапқыдан 1,5 есе жылдамдыққа қол жеткізгенін білеміз.
Our new branch predictor has provided a 1.5x speedup over the original.
Бір нұсқаулық бойынша циклдерді және бір цикл бойынша нұсқауларды пайдалану
Сонымен қатар жылдамдықты циклге шаққандағы нұсқаулар санымен (CPI), яғни кідіріс уақыты арқылы өлшеуге болады. Біріншіде, бағдарлама стандартты тармақ болжаушысымен орындалады, нәтижесінде CPI 3-ке тең болады. Екіншіден, бағдарлама өзгертілген тармақ болжаушысымен орындалады, нәтижесінде CPI 2-ге тең болады. Екі жағдайда да орындалу жүктемесі бірдей және екі архитектура да конвейерленбеген немесе параллель емес. Жылдамдық формуласын қолдану арқылы жылдамдықты циклге шаққандағы нұсқаулар санымен (IPC) өлшеуге болады, бұл өнімділік және CPI-дің кері шамасы. Жылдамдық формуласын қолдану арқылы, әр түрлі шамаларды өлшегенімізбен, 1,5 есе жылдамдыққа қол жеткіземіз.
We can also measure speedup in instructions per cycle (IPC), which is a throughput and the inverse of CPI. Using the speedup formula gives
We achieve the same 1.5x speedup, though we measured different quantities.
Суперлинейлік жылдамдық
Кейде A процессорды пайдаланған кезде A-дан артық жылдамдық параллель есептеуде байқалады, бұл суперсызықтық жылдамдық деп аталады. Суперсызықтық жылдамдық сирек кездеседі және көбінесе A процессорды қолданғанда теориялық ең жоғары жылдамдық A болуы керек деп ойлайтын жаңадан бастаушыларды шатастырады. Төмен деңгейдегі есептеулерде суперсызықтық жылдамдықтың бір себебі – қазіргі заманғы компьютердің әртүрлі жад иерархиясынан туындайтын кэш эффектісі: параллель есептеуде процессорлардың саны ғана емес, сонымен қатар әртүрлі процессорлардан жинақталған кэштің көлемі де өзгереді. Жинақталған кэш көлемі үлкен болғандықтан, жұмыс жиынтығының көп бөлігі немесе тіпті толығымен кэшке сыйып, жадқа қол жеткізу уақыты күрт төмендейді, бұл нақты есептеуден басқа қосымша жылдамдыққа әкеледі. BLAST іске асырылымдарымен ізделетін геномдық деректер сияқты үлкен деректер жиынтығын іздеу кезінде де ұқсас жағдай туындайды. Мұнда кластердегі әрбір түйіннің жинақталған жедел жады деректер жиынтығын дискіден жедел жадқа көшіруге мүмкіндік береді, соның салдарынан, мысалы, mpiBLAST деректерді іздеу үшін қажетті уақытты күрт қысқартады. Суперсызықтық жылдамдық параллель кері іздеуді орындау кезінде де болуы мүмкін: бір жіптегі қате басқа бірнеше жіптерді олардың өзі қатеге жете алмай тұрып ертерек кері қайтаруға мәжбүрлеуі мүмкін. Суперсызықтық жылдамдық оптимизация үшін тармақталу және шектеулерді параллель түрде іске асыру кезінде де пайда болуы мүмкін: бір процессордың бір түйінді өңдеуі басқа процессорлардың басқа түйіндер үшін атқаруы керек жұмыстың өзгеруіне әсер етуі мүмкін.