subject: Implications Of Multicore Programming [print this page] Multi Core technology refers to the process of integrating multiple central processing units into a single integrated microprocessor device. In the recent past, there have been a selected percentage of IC manufacturers that have announced devices incorporating multi core technologies and the trend is said to increase in future.
Ray Simar, an advanced architecture and development manager with Texas Instruments This type of parallel processing architecture is not a new idea, but was less attractive in the past because processing-speed gains were easier to get by pushing clock speeds higher. That is no longer the case. With clock rates reaching into the multiple GHz range, further increases are becoming harder.
With multiprocessing systems you can divide the computing task and keep them tightly coordinated at the same time. For instance, back in 2007 in NIWeek, National instruments explained that a dual core processor where only a single core was running the HMI software under Microsofts non-real-time Windows OS, whilst the other core was running a control software on a real time OS. However, keeping in mind the present day evolving software engineering landscape the IEEE Computer Society addressed the challenges of multicore programming. It starts with assessing the dual-core IA programming, MKL, compiler switches, thread checkers, and the profilers and then moves to the programming with Openmp, POSIX, Windows, virtualization and multi core software infrastructure and debugging. Furthermore, there is increased focus given to migration case studies, threaded programming methodologies and the scalability of threaded applications.
However, the multicore users need to rethink and in various cases rewrite their applications in case they want better performance, Multicore compels every performer to become a parallel programmer and to take their chips as clusters and simultaneously manage the concerns related to data transfer, communication, synchronization and non-determinism as essential elements of their algorithms. For the ones already familiar with parallel programming, the multi core processors have already added a new level of parallelism and other complexities. However, there are certain advantages as well, that includes
* A low cost/performance ratio
* Lesser power consumption
* Less space requirements
* Can integrate incompatible applications in one system
* Can tailor the processor infrastructure according to the application requirements
Hence, multi core technology can be useful for software engineers to set up efficient, targeted embedded control systems. However, it is essential that the software engineers give emphasis on the hardware selected for execution along with using the correct software tools.