Multi-core Processors and the FutureThis is a featured page

  1. What does the future hold for multi-core processors? 16 cores? 32 cores? 128 cores?
A startup founded by Tilera try to build a 64-core Tile64 SoC (System-on-chip). It saved power and highly efficient,and Tilera claim that " Tile64 outperforms Intel's dual-core Xeon processor 10 times, while 30 times better performance per Watt. It has the ability to consolidate control- and data-plane functions on a single device, with 'solid-wall' processor boundaries reinforcing security and licensing containment barrier."
The reason to developed this new chip architecture is because "existing multicore technologies simply cannot scale."
(Henry Kingman http://www.linuxdevices.com/news/NS8981295285.html )

The future for multi-core processors is bright, but let us take a step back for a moment. During the '90’s and the early part of this decade, it was believed that the best way to achieve optimum processor performance was to increase clock frequencies (i.e. The Pentium 4 ranged in speed (frequency) from 1.3 to 3.8 GHz). Producers were also able to reduce chip size and increase transistor density at the same time. As a result of the increased strain being placed on the processors, manufacturers where having to find new ways to reduce the level of heat dissipation across the chip as well as finding ways to reduce power consumption.

One of the theories that surfaced during that time was that of multi-core processing. Multi-core processing is not all that new of an idea actually. It has been used in specialized devices for some time now. However, users are demanding more processing power due in large part to the size and complexity of programs available for their systems. Therefore, companies such as Intel and AMD have been developing multi-core technology to be used in the desktop environment.

Today’s dual-core processors produce twice the processing power and an almost tenfold increase in bandwidth as well as a reduction in clock speeds (frequencies). All this being done while significantly reducing power consumption. “Some experts believe that 'by 2017 embedded processors could sport 4,096 cores, server CPUs might have 512 cores and desktop chips could use 128 cores.' This rate of growth is astounding considering that current desktop chips are on the cusp of using four cores and a single core has been used for the past 30 years.” (http://www.csa.com/discoveryguides/multicore/review.pdf?SID=ul658kuv731fctg41mr6bbgbt5)

Startup ConSentry Networks Inc. is launching a Secure LAN Controller product capable of monitoring seven layers of data traffic at 10 Gbits/second. The system required development of a proprietary 128-core multithreaded control processor called LAN-shield, and subsidiary traffic manager ASICs called Accelerator and Visualizer. The system was designed as a single-box platform that sits between a wiring-closet switch and a primary corporate switch, said Faizel Lakhani, vice president of marketing at ConSentry (Milpitas, Calif.). Although the Secure LAN Controller is intended as an enterprise IT product, ConSentry says it has taken some requests from the managed-security service provider community. (http://www.eetimes.com/showArticle.jhtml?articleID=170704430)

With uniprocessor performance increases leveling off, and with the semiconductor industry moving towards multicore processors, novel ways of parallelizing the execution of a variety of computing applications will be needed. To be viable, a parallel execution model for future multicore architectures should not only mesh well with the programming styles that we expect in the future, but perhaps even leverage the characteristics of such programming styles. This talk will review proposed parallel execution models and present Program Demultiplexing (PD), an execution model that creates concurrency in sequential programs by 'demultiplexing' methods (functions or subroutines). Call sites of a demultiplexed method in the program are associated with handlers that allow the method to be separated from the sequential program and executed on an auxillary processor. The demultiplexed execution of a method (and its handler) is speculative and occurs when the inputs of the method are (speculatively) available, which is typically far in advance of when the method is actually called in the sequential execution. A trigger, composed of predicates that are based on program counters and memory write addresses, launches the (speculative) execution of the method on another processor. Results from our initial experience with a simulation model for PD will be presented. For eight integer benchmarks from the SPEC2000 suite, programs written in C with no explicit concurrency and/or motivation to create concurrency, we achieve a harmonic mean speedup of 1.8x on four processors. We believe that PD can achieve further speedup when opportunities for concurrency are exposed to programmers and/or on applications that use modern object-oriented languages. Given time, the talk will touch on some other hardware trends that are likely to have implications for how software is written in the future.( http://www.researchchannel.org/prog/displayevent.aspx?rID=4793&fID=1338)

Historically, designers achieved higher performance in each processor generation by packing greater numbers of smaller transistors into a given space and clocking them at increasing speeds. True to "Moore's Law," that design model drove an exponential performance curve for the past 30 years... But designers finally reached a technological brick wall where further pushing transistor count and clock speed result in a device that simply becomes too hot to cool, leaving the only path to higher performance being multi-core- the integration of two or more processing cores on a single chip. Power and heat are manageable in multi-core configurations because the individual cores can be run at reduced frequencies and voltages. Moving forward, performance will be gained by adding more cores rather than increasing frequency.
(http://communities.intel.com/openport/blogs/multicore/2008/06/03/multicore-processors-are-mainstream-for-embedded-applications)

Most microprocessor engineers will tell you that multi-core processors are the way of the future. This really isn't a new way of thinking. 'Moore's Law,' the theory that states that the power of today's microprocessors will continue to double every two years, is an idea that has been around for relatively a long time. Multi-core solves the problem of heat that has been slowing growthin the past. Now - engineers are saying that "by 2017 embedded processors could sport 4,096 cores, server CPUs might have 512 cores and desktop chips could use 128 cores." Considering that we're having a quad processor is a big deal these days - this is pretty crazy to think about! <http://www.eetimes.com/showArticle.jhtml?articleID=206105179>

2. What current software applications take advantage of multi-core processors? Why?
"Network and video devices that require significant application processing, such as surveillance system, and firewall with deep packet inspection" can benefit from it . Because multi-core processor can "solved the fundamental challenges associated with multicore scalability." "It has a hypervisor enables each core to run its own instance of Linux, or other OSes and can eliminate the centralized bus intersection." "It is highly effiective and with no requirement for external northbridge and/pr spithbridge chips."
(Henry Kingman http://www.linuxdevices.com/news/NS8981295285.html )

Applications intended for use mainly by consumers as opposed to commercial and enterprise-wide uses are much less likely to take advantage of multi-core processing because of the complexity of writing and debugging software that allows for multiple threads. "Programming truly multithreaded code often requires complex co-ordination of threads and can easily introduce subtle and difficult-to-find bugs due to the interleaving of processing on data shared between threads." ('http://en.wikipedia.org/wiki/Multi-core_(computing)'). Some programs like virus protection software take advantage of concurrent multi-thread capabilities of mutli-core processors by "[creating] a new thread for the scan process, while the GUI thread waits for commands from the user." ('http://en.wikipedia.org/wiki/Multi-core_(computing)')

Often times it is difficult for software to fully take advantage of the multi core processors because it is very challenging. Frequently you see programs where a single thread does the heavy work, while other threads do much less. For cpu's to equally share the work, it is a real challenge to the the software programmer to create such a program. (this information is from http://en.wikipedia.org/wiki/Multi-core_(computing)#Disadvantages)


According to searchitchannel.techtarget.com, Compiere, Inc.utilizes multi-core technology within their stack. Compiere provides opens source enterprise resource management (ERP) and customer relationship management (CRM) software. At the back end of the stack, for example, relational database managers such as Oracle scale to the number of cores or processors on a given machine. On the front end, Compiere offers a Java Swing client. (http://searchitchannel.techtarget.com/news/article/0,289142,sid96_gci1312322,00.html)

The limited optimization of software for multicore processors has become a limiting factor for the technology. Dell reprinted in the article "Planning Considerationgs for Multicore Processor Technology" that once the new software is developed and implemented, there will be no bounds for the technology, and all companies will be able to take advantage of the technology. <source: http://www.dell.com/downloads/global/power/ps2q05-20050103-Fruehe.pdf>

Current software applications that take advantage of multi-core processors include Commendo, Cilk++, Cmpware, among many others. Multi-core processors are being implemented by manufacturers such as Intel and AMD for their applications and systems. Multi-core designs allow for lowe manufacaturing costs and higher performance.

Source: http://en.wikipedia.org/wiki/Multi-core_(computing)#Commercial_incentives
Currently most common software does not take full advantage of the multi core processors used in today’s computers. Programs have to be specifically designed to parallel process and execute code in separate threads. This creates a problem for developers due to the time need to debug this code. When there is a break in the coding, it is much harder to find the error than in single-threaded. NI LabVIEW, a graphical programming language; QNX, a real time operating system; and Commendo, a voyager software service all take advantage of the multi core processor.

However, just because particular software is not designed to run on a multi core processor, doesn’t mean the user can not benefit. The ability to multitask improves dramatically. The processor is designed to automatically allocate each processor for current or background tasks. Though one program will utilize the entire part of one core, once the user switches tasks, he or she can now continue working using a fresh processor.

3. Do business applications require multi-core processors? Why or why not?

The answer is not really and not yet. Many business applications are old and were not built to utilize multi-core processors. New applications are having trouble with some aspects of the multi-core environment.

"The requirements of a business application do not lend themselves to either grid or parallel environment (Cory Isaacson, "Using intelligent parallel processing in a service oriented architecture"). The three main reasons are:
  • Order of processing: Business logic must be performed in a particular sequence to ensure the integrity of a business process. Each transaction waits for the previous transaction to be completed before it gets processed. This order of processing is difficult to maintain in a parallel grid environment.
  • Centrally shared resources: Applications have a centralized resource throughout the application. This creates a bottleneck.
  • Unpredictable behavior and resource needs: The size and processing requirements of business processes vary through out the day or within a given hour. This makes the division of an application into equal-sized blocks difficult, as well as the allocation of resources."
http://searchsoa.techtarget.com/tip/0,289483,sid26_gci1252649,00.html
According to SmallBusinessComputing.com there is still debate about if small businesses should upgrade to the Quad-Core Processors. Although the advantages would be having greater processing ability, the ability to handle larger/growing amounts of data, and the processors ability to effectively handle more complex work environments, these processors still might not be the best option for small businesses. While these new processors might be “overkill” for some small businesses others might benefit from them. If the small businesses need high-performance systems or are very technical then they should consider looking into these processors. However, it is believe that over time that small businesses will switch over to these new processors. SmallBusinessComputing.com
According to Dell Small Business 360 some business applications do not require a multi-core processor, but others that have high-powered demands do need it. This article explains that although business applications do not require multi- core processors, they still should have they because that is what allows computers to do their job (to handle a variety of chores well, but workstations are typically designed for one purpose delivering high performance and reliability to users of intensely numeric and graphic applications). “Desktop computers are like Swiss Army knives – versatile, handy, multi-purpose tools that can handle a variety of applications,” explains Paige Darby, brand manager of Dell PrecisionTM Workstations. “Workstations are like precision surgical lasers. They are built specifically to perform challenging functions quickly and efficiently. Both have their place, but if you’re lying in the operating room, you don’t want your physician to pull out a pocket knife.” In Conclusion, no business applications do not require the multi-core processor, but in the long run if they want their software to run efficiently and effectively then they will decide to make it required. http://www1.ca.dell.com/content/topics/topic.aspx/global/shared/bizportal/en/it_solutions/articles/high_powered?c=ca&cs=cabsdt1&l=en&s=bsd

4. Does the Linux OS take advantage of multi-core processing? Does Vista take advantage of multi-core processing?

No, according to Redmondmag.com Vista/XP did not take full advantage of multi-core processing, “neither one was ever designed specifically for the rigors of high-end multiprocessing, experts contend.“. One of the biggest drawbacks to Vista was that it did not introduce a new framework from the ground up to take advantage of multi-core processors. Only in November did MS begin to publicly talk about the technology. According to Doug Barney, it's a bit surprising that Microsoft didn't make its boldest multi-core client proclamation until November of last year. Even that announcement was a relatively subdued affair in which a Windows exec promised that Windows 7, the follow-on to Windows Vista, would be re-architected in order to exploit multi-core”. Not only MS, but other companies that release applications have been slow to introduce products that take full advantage of multi-cores. This has been quickly changing, “March of this year when Craig Mundie, Microsoft's chief research and strategy officer, followed up that announcement by prophesizing that parallel computing will represent as big a change as the Internet or the invention of the PC itself. That same month, Microsoft and Intel Corp. pledged $20 million for parallel-computing research at the University of Illinois and the University of California, Berkeley.” (http://redmondmag.com/features/article.asp?editorialsid=2464)

Although patches to the Linux kernel that can enable multi-core processing exist, the Linux development community has been slow to develop solutions for utilizing the capacity. One such kernel extension is ASMP-LINUX (ASymmetric MultiProcessor Linux).
Sources: (http://bravo.ce.uniroma2.it/techreps/sprgtv_tr001.pdf
http://www.gcn.com/blogs/tech/45496.html)
5. Does virtualization software take advantage of multi-core processing?

Virtualizationsoftware does take advantage of multi-core processing because businesses and firms in the real world are already taking advantage of the multi-core processing environment in their every day work.

According an article inWindows in Financial Services, the article says that "firms use
virtualization technology to collapse multiple, overlapping operating system and application instances running on multiple, distributed servers onto fewer, larger systems. Using new dual and multi-core processor systems, administrators can more easily deploy OS instances to specific cores, effectively doubling capacity utilization. With additional virtualization technology, firms can save money on systems management and eliminate the need for costly and time-consuming ports of older applications to new operating platforms." (Posted by Julie Chiou)
Physical Multi-Core Not Required forVirtualization– Intel Corp.
Whiledual-coreand eventually multi-core processors can do a lot in terms of making multitasking and virtualization more-efficient, dual-core chips are not required for Intel’s forthcoming desktop virtualization technology called Vanderpool.
Intel Confirms Virtualization on Single-Core Chips
"There is nothing that technically speaks against havingVirtualization Technology (Vanderpool)implemented in a single core CPU. We will disclose further details on Vanderpool and in which products we will integrate it at a later point in time", an Intel Corp.’s official told X-bit labs on Friday.It is unclear whether VT-enabled chips have to support Hyper-Threading technology.Earlier on Friday a Japan-based web-sitePC Watchpublished a report claiming certain of Intel’s Pentium 4 600-series processors projected to be available in the second half of the year would support the virtualization technology called Vanderpool. Virtualization capability is also expected to be present onIntel’s dual-core processors code-namedSmithfieldand Presleras well as on single-core 65nm CedarMill central processing units.(See more onhttp://www.xbitlabs.com/news/cpu/display/20050129121035.html)(by Yang Yang)

According to the article "Multi-core Processors Fuel Virtualization Services", virtualization software thrives on the new mulit-core processors because the more CPU's that are available for the customer to use, the more virtual machines you can allocate to the physical hardware. For data centers that have multiple virtual host servers the new multi-core processors allow for more virtual machines to be placed on a server, while allowing for more green computing initiatives by increasing server density without boosting power and cooling capacity requirements. Source: http://searchitchannel.techtarget.com/news/article/0,289142,sid96_gci1312322,00.html
(Posted by Michelle Miller)
According to the article, "Debugging Multicore Processors with Virtualized Software Development,"virtualizationsoftware dramatically increases the amount of time it takes to debug during the stages of software development. Paul McLellan writes, "Developers who are familiar with lower-level simulators such as Spice or Verilog might assume that simulation is too slow, but advances in virtualization technology, such as just-in-time compilation (JIT) and acceleration of idle time, coupled with fast and inexpensive workstations, mean that it is possible to simulate the complex systems at speeds measured in billions of simulated instructions per second — performance adequate for the edit-compile-debug loop that comprises a large part of a programmer’s daily work" In addition, "Today, the simulation technology underlying virtualized software development is so accurate that it can run production binaries unchanged and at very high performance." It accomplishes the increase in speed because it, "relies on a single global virtual time base that synchronizes all processors and other devices, making it possible to halt the whole system simulation when one part of the system is stopped. A single-step operation is the key to deterministic debugging. Since every system node is observable and traceable, and its state and behavior over virtual time can be logged, system tracing can be used to comprehensively profile the software and perform code coverage analysis." Virtualization software, utilized with multicore processing, is becoming a key factor in the field of software development. It allows the developers to create programs faster, and easier than ever. (by Frank Pleta)
Source:http://www.ecnmag.com/debugging-multicore-processors.aspx

According to Jerome Cheng, a technical specialist with CDW-Government, "The more CPUs that are available for the customer to use, the more virtual machines you can allocate to the physical hardware." (http://searchitchannel.techtarget.com/news/article/0,289142,sid96_gci1312322,00.html)

6. Other?

Apple has just made a new OS for their multicore macs that allows for better application performance among the multicore processors. This new OS does a better job with allocating tasks among the different cores, so it spends less time allocating the tasks and more time performing computations helping the applications run better and faster. Instead of Apple trying to create more cores to increase the application performance they have created a new OS that works better with the multicore processors, which cuts the cost for people who want a computer with better application performance. Instead of them having to buy a brand new computer they can buy this new OS which will help run their mac better with the processor they already have. (Source: http://www.apple.com/macosx/technology/multicore.html)

Benefits of Multi-Core Technology (http://www.broadberry.com/technology_definitions/multi-core_technology.htm)
  • Improved system efficiency and application performance for computers running multiple applications
    • Multi-core processors enable true multitasking. On single-core systems, multitasking can max out CPU utilization, resulting in decreased performance as operations have to wait to be processed. Each core has its own cache and operating system with sufficient resources to handle compute intensive tasks at the same time.
  • Enhanced performance for multi-threaded applications
  • Support for more users or tasks for transaction-intensive applications
  • Superior performance for compute-intensive applications
  • Simplified overall computing infrastructure requirements helping to save you money
  • Helps to eliminate thermal and environmental issues
    • Multiprocessor save on heat better than single core processors.Heat is a function of several factors, two of which are processor density and clock speed. According to Scalable Enterprises, Companiesusing a shared cache and low-clock-speed processors, multicore processors benefit administrators by minimizing heat while maintaining high overall performance. In traditional architectures, heatgenerated by each new generation of processors has increased at a greater rate than clock speed. Utility cost savings could help accelerate the movement to energy efficient industry standard platforms.

Benefits of multi core cpu for the every day ordinary user:
Often times an every day user will benefit from a multi core cpu when they try to multi task intense cpu processes. For example, watch a movie while running an automatic virus scan. If this were to happen the virus scan would be assigned to one processor while the movie would be playing on the other processor. This would eliminate any lag from the movie, that would definitly be present if it was not for the dual cpu's. (this information was found at http://en.wikipedia.org/wiki/Multi-core_(computing)#Disadvantages) Overall, multi-core technology can improve system efficiency and application performance for computers running multiple applications at the same time.


dan_cartis
dan_cartis
Latest page update: made by dan_cartis , Sep 25 2008, 9:08 AM EDT (about this update About This Update dan_cartis Dan_Cartis - dan_cartis

167 words added

view changes

- complete history)
Keyword tags: None
More Info: links to this page
There are no threads for this page.  Be the first to start a new thread.