Multi-core processors pose a significant challenge for software application developers. This is because the vast majority of algorithms and applications have been - and continue to be - developed using methodologies and techniques that assume sequential runtime execution. The key to efficiently and effectively leveraging multi-core processors is the ability to expose, extract, and exploit concurrency at the application level. This requires a profound change in the way that software applications are designed and implemented. Our goal is to provide a compelling, integrated tool suite to address the compute, embedded, and realtime challenges facing multi-core software application developers. Our approach is to focus on a methodology and tools that address analysis, visualization, and automation of multi-core application development. We envision a suite of tools that can ingest a software application written in C or C++ and provide a comprehensive analysis of the program structure, flow, and dependencies. This analysis will provide the developer with the insight needed to make effective choices when creating or adapting applications for concurrent execution. In addition, the tools will automate the implementation of the programming constructs necessary to realize concurrent processing. This tool suite will revolutionize developer effectiveness and application performance for multi-core targeted software.
Keywords: Multi-Core Software, Multi-Core Tools, Multi-Core Development Environments, Application Implementation Efficiency, Concurrent Software Development, Parallel Software Design, M