{"id":55950,"date":"2010-01-19T13:24:00","date_gmt":"2010-01-19T13:24:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/pfxteam\/2010\/01\/19\/faq-you-talk-about-performance-speedup-and-efficiencywhat-do-you-mean-exactly\/"},"modified":"2010-01-19T13:24:00","modified_gmt":"2010-01-19T13:24:00","slug":"faq-you-talk-about-performance-speedup-and-efficiencywhat-do-you-mean-exactly","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/faq-you-talk-about-performance-speedup-and-efficiencywhat-do-you-mean-exactly\/","title":{"rendered":"FAQ :: You talk about performance, speedup, and efficiency\u2026what do you mean exactly?"},"content":{"rendered":"<p class=\"MsoNormal\"><font size=\"3\"><font face=\"Calibri\">All of these terms are overloaded, even in the context of parallel computing.<span>&nbsp; <\/span>However, we&rsquo;ve used them extensively to describe how well our parallel algorithms and demo applications work. <span>&nbsp;<\/span>And sometimes, we throw them around carelessly on the blog, forums, etc., so here are our general definitions.<\/p>\n<p><\/font><\/font><\/p>\n<p class=\"MsoNormal\"><font size=\"3\"><font face=\"Calibri\"><b>Performance<\/b> is an attribute that refers to the total elapsed time of an algorithm&rsquo;s execution.&nbsp; Less elapsed time means higher performance.<\/p>\n<p><\/font><\/font><\/p>\n<p class=\"MsoNormal\"><font size=\"3\"><font face=\"Calibri\"><b>Speedup<\/b> is a metric that quantifies performance by comparing two elapsed time values.&nbsp; In parallel computing, these two values are usually generated by the execution of a serial algorithm and a parallelized version of the same algorithm.&nbsp; Speedup is then calculated using the following equation:<\/p>\n<p><\/font><\/font><\/p>\n<p class=\"MsoNormal\"><span>Speedup = Serial Execution Time \/ Parallel Execution Time<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><font size=\"3\"><font face=\"Calibri\">So if a serial algorithm takes 100 seconds to complete, and the parallel version takes 40 seconds, the speedup is &ldquo;2.5x&rdquo;.<\/p>\n<p><\/font><\/font><\/p>\n<p class=\"MsoNormal\"><font size=\"3\"><font face=\"Calibri\"><b>Efficiency<\/b> is a metric that builds on top of speedup by adding awareness of the underlying hardware.&nbsp; It is usually calculated using the following equation:<\/p>\n<p><\/font><\/font><\/p>\n<p class=\"MsoNormal\"><span>Efficiency = Speedup \/ # of cores<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><font size=\"3\"><font face=\"Calibri\">So if speedup is &ldquo;2.5x&rdquo; on a 4-core machine, efficiency is 0.625 or 62.5%.<span><\/p>\n<p><\/span><\/font><\/font><\/p>\n<p class=\"MsoNormal\"><font size=\"3\"><font face=\"Calibri\"><b>Scalability<\/b> is an attribute that refers to the speedup of an algorithm given different numbers of cores\/processors.&nbsp; The efficiency metric is good for quantifying scalability, because if efficiency holds constant as the number of cores changes, we have linear scaling (or awesome scalability).<\/p>\n<p><\/font><\/font><\/p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>All of these terms are overloaded, even in the context of parallel computing.&nbsp; However, we&rsquo;ve used them extensively to describe how well our parallel algorithms and demo applications work. &nbsp;And sometimes, we throw them around carelessly on the blog, forums, etc., so here are our general definitions. Performance is an attribute that refers to the [&hellip;]<\/p>\n","protected":false},"author":485,"featured_media":58792,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[7908],"tags":[7923,7909],"class_list":["post-55950","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pfxteam","tag-faq","tag-parallel-extensions"],"acf":[],"blog_post_summary":"<p>All of these terms are overloaded, even in the context of parallel computing.&nbsp; However, we&rsquo;ve used them extensively to describe how well our parallel algorithms and demo applications work. &nbsp;And sometimes, we throw them around carelessly on the blog, forums, etc., so here are our general definitions. Performance is an attribute that refers to the [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/55950","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/users\/485"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/comments?post=55950"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/55950\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media\/58792"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media?parent=55950"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=55950"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=55950"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}