With the development of the Intel multi-core platform programming optimization competition, we have received many optimization reports from netizens, many of which have achieved excellent optimization results. however, many netizens give us feedback through various channels. since they have not been exposed to much Optimization-related work at ordinary timesCodeIt is difficult to start with. We hope to provide some learning resources for the competition and master the Optimization content to participate in the competition. we provide the following links to help some netizens who do not have much optimization experience.
1. multithreading Design
Due to the development of multi-core technology, multithreadingProgramOptimization will become more and more important. all the contestants are required to design the original program in multiple threads. multithreading is a condition passed our test. generally, there are two main methods for multithreading design: Native threading and OpenMP threading. both methods can be used in the competition.
For Windows Local threads, you can go to the msdn * website to learn. The following link provides a brief introduction ,:
Http://www.codeproject.com/threads/sync.asp
For more information about OpenMP threading, see the OpenMP website (www.openmp.org ).Article:
Getting started with OpenMP *: http://www3.intel.com/cd/ids/developer/asmo-na/eng/20365.htm
If OpenMP threading is used, use intel C ++ compiler or Microsoft. NET 2005 * compiler.
To multithreading a program, you need to select the key code (time-consuming Code) for multithreading design. If you cannot determine the main computing part of the program, Intel vtune analyzers can help the analysis program.
After multithreading, the next step is to further optimize the multi-threaded program.
2. optimization tools
Learning how to use intel related tools is also a main purpose of our competition. on the homepage of the competition, you can download the related tools. Here we will briefly describe each tool:
Intel C ++ compiler: We recommend that you use the Intel C ++ compiler to compile the program. After installing the Intel C ++ compiler, you can use the command line or Microsoft. NET 2005 * select the Intel C ++ compiler in the compiling environment. the intel C ++ compiler provides different compilation switches. if you need to learn more about this, go to the intel Software Institute Online Learning Website:
Enhancing performance with the intel Compiler: http://or1cedar.cps.intel.com/softwarecollege/CourseDetails.asp? Courseid = 105
Intel math kernel Library (Intel MKL ). the intel MKL function library provides VML functions that can be used to optimize beyond functions (sin, cos, exp, log, etc, you can refer to some previous posts and many netizens discuss the use of VML functions.
Intel threading checker & Intel threading profiler: thread checker is used to locate thread errors and detect problems such as resource competition and thread deadlock. after multithreading, you can use threading Checker to check whether there are any errors related to multithreading. thread profiler is a thread performance testing tool. It is made possible by multithreading, load balancing, excessive synchronization overhead, and other thread-related performance problems. Thread profiler can help identify the causes of these problems.
Some learning websites:
Getting started with the intel thread Checker: http://or1cedar.cps.intel.com/softwarecollege/CourseDetails.asp? Courseid = 178
Getting started with the thread profiler: http://or1cedar.cps.intel.com/softwarecollege/CourseDetails.asp? Courseid = 179
These are just a preliminary introduction. If you have any questions, you are welcome to discuss them together. Some netizens are also very experienced in optimization and can exchange and learn together.
About this competition:
Sponsored by Intel software network department,CsdnCo-sponsored "Intel multi-core platform programming optimization competition" on 2006-12-6 Day kicked off and received the attention and support of the majority of netizens. This competition requires contestants to use the sample code provided by the competition, using one or more recommended intel The software development tool optimizes the code. Contestants can submit works on the Competition website. Works will be evaluated on the hardware platform recommended by the competition, and the final results will be published on the Competition website.All works that pass the test can be obtained by a technical tool book and a USB flash drive provided by Intel.
For more information about the competition, goOfficial Competition website
For more exciting topics, goCsdnTechnical Community-Intel multi-core Computing Technology Forum