Advances in semiconductor manufacturing technology enable the industry to deploy multi-core processors in all market segments including embedded and communications. To make a successful transition to multi-core architecture, software optimization is required.
Developers have two strategy options to migrate an existing application to multi-core architecture:
- The first approach to optimization is to use threading libraries (or libraries that are threaded) and other components in the tool chain that will support a successful transition.
- The second approach is to look at overall platform behavior before and after migration to discover and remove major bottlenecks in memory or I/O access.
This paper illustrates the migration of an open-source cryptography application called Serpent from a previous-generation Intel® architecture-based platform to a platform featuring the latest Intel® multi-core architecture processors based on the new Intel® Core™ i7 microarchitecture. The paper details several platform level optimizations, such as the use of a buffering approach to eliminate a large number of kernel-to-user space copies, results in significant performance gains over the original, unmodified application.