COSC 462 Parallel Programming Reading Quiz 00 NAME Carl Carter KEY The past decade has seen tremendous advances in microprocessor technology. Clock rates of processors have increased from about 40 MHz (e.g., a MIPS R3000, circa 1988) to over 2.0 GHz (e.g., a Pentium 4, circa 2002). At the same time, processors are now capable of executing multiple instructions in the same cycle. The average number of cycles per instruction (CPI) of high end processors has improved by roughly an order of magnitude over the past 10 years. All this translates to an increase in the peak floating point operations execution rate (floating point operations per second, or FLOPS) of several orders of magnitude. A variety of other issues have also become important over the same period. Perhaps the most prominent of these is the ability (or lack thereof) of the memory system to feed data to the processor at the required rate. Significant innovations in architecture and software have addressed the alleviation of bottlenecks posed by the datapath and the memory. The past decade has seen tremendous advances in microprocessor technology. Clock rates of (micro)processors have increased from about 40 MHz (e.g., a MIPS R3000, circa 1988) to over 2.0 GHz (e.g., a Pentium 4, circa 2002). At the same time, processors are now capable of executing multiple instructions in the same cycle. The average number of cycles per instruction (CPI) of high end processors has improved by roughly an order of magnitude over the past 10 years. All this (advances-in-processor-technologies) translates to an increase in the peak floating point operations execution rate (floating point operations per second, or FLOPS) of several orders of magnitude. A variety of other issues have also become important over the same period. Perhaps the most prominent of these (what?) is the ability (or lack thereof) of the memory system to feed data to the processor at the required rate. Significant innovations in architecture and software have addressed the alleviation of bottlenecks posed by the datapath and the memory. The past decade has seen tremendous advances in microprocessor technology. The “past decade” is the 1990s A microprocessor is a computer chip, a CPU, with millions of transistors One example of a microprocessor technology is gate size; clock speed One example of an advance in microprocessor technology over the past decade is increased clock speed Clock rates of processors have increased from about 40 MHz (e.g., a MIPS R3000, circa 1988) to over 2.0 GHz (e.g., a Pentium 4, circa 2002). A 2 GHz clock rate is faster than a 40 MHz clock rate by a factor of 50 In 2011, a high-end processor has a clock rate of 3.6 GHz This rate is faster than the 2 GHz clock rate of the Pentium 4 by a factor of 1.8 Hz stands for Hertz Hz is named after Heinrich Hertz 1 Hz means 1 cycle per second MHz stands for megahertz GHz stands for gigahertz MIPS stands for Million Instructions Per Second; Microprocessor without Interlocked Pipeline Stages e.g. stands for exempli gratia circa means about The Pentium 4 was the product of a company named Intel The average number of CPI of high end processors has improved by roughly an order of magnitude over the past 10 years. CPI stands for cycles per instruction 10 years ago the average number of CPI was 3 instructions per cycle Nowdays the average number of CPI is 4 instructions per cycle (Intel Core i7 processor) or 3 instructions per cycle (AMD chips) An order of magnitude is a factor of two or ten (for most people) All this translates to an increase in the peak FLOPS of several orders of magnitude. FLOPS means floating point operations per second 10 years ago the peak FLOPS was ~2100 flops Nowdays the peak FLOPS is ~70 gflops In the phrase “peak floating point operation execution rate“, the number of nouns is 5 Significant innovations in architecture and software have addressed the alleviation of bottlenecks posed by the datapath and the memory. A bottleneck is an area whose relative speed restricts the speed of the overall architecture True of false: the innovations in architecture and software didn’t merely address the alleviation of bottlenecks, but they actually alleviated bottlenecks posed by the datapath and the memory. true A datapath is the path in which information flows in a computer (ie processor -> caches -> memory etc One innovation in architecture that alleviated bottlenecks was multiple cores in processors One innovation in software that alleviated bottlenecks was parallel computing The role of concurrency in accelerating computing elements has been recognized for several decades. However, their role in providing multiplicity of datapaths, increased access to storage elements (both memory and disk), scalable performance, and lower costs is reflected in the wide variety of applications of parallel computing. Desktop machines, engineering workstations, and compute servers with two, four, or even eight processors connected together are becoming common platforms for design applications. Large scale applications in science and engineering rely on larger configurations of parallel computers, often comprising hundreds of processors. Data intensive platforms such as database or web servers and applications such as transactions processing and data mining often use clusters of workstations that provide high aggregate disk bandwidth. Applications in graphics and visualization use multiple rendering pipes and processing elements to compute and render realistic environments with millions of polygons in real time. Applications requiring high availability rely on parallel and distributed platforms for redundancy. It is therefore extremely important, from the point of view of cost, performance, and application requirements, to understand the principles, tools, and techniques for programming the wide variety of parallel platforms currently available. The role of concurrency in accelerating computing elements has been recognized for several decades. However, their role in providing multiplicity of datapaths, increased access to storage elements (both memory and disk), scalable performance, and lower costs is reflected in the wide variety of applications of parallel computing. Desktop machines, engineering workstations, and compute servers with two, four, or even eight processors connected together are becoming common platforms for design applications. Large scale applications in science and engineering rely on larger configurations of parallel computers, often comprising hundreds of processors. Data intensive platforms such as database or web servers and applications such as transactions processing and data mining often use clusters of workstations that provide high aggregate disk bandwidth. Applications in graphics and visualization use multiple rendering pipes and processing elements to compute and render realistic environments with millions of polygons in real time. Applications requiring high availability rely on parallel and distributed platforms for redundancy. It is therefore extremely important, from the point of view of cost, performance, and application requirements, to understand the principles, tools, and techniques for programming the wide variety of parallel platforms currently available. Which decades is the author referring to when speaking about the role of concurrency? Whose role is it to provide multiplicity of datapaths, etc.? What is scalable performance as the author references it? What are some examples of large scale applications? What is a cluster of workstations? How do you measure disk bandwidth in a parallel application? What is high availability in the application sense? What type of cost is the author referring to in the last sentence? Which platforms are considered parallel? What time period is current in the context of this book?