Thoughts on Intel multi-core training
Today is the first day of Intel multi-core and multi-thread training. At present, we are developing a distributed multi-threaded system. We have also made some optimizations recently. After listening to today's courses, we can have a slight resonance.
Before the training, Intel sent the teaching materials to us. At that time, we read the student book, which is an experiment on their multi-core CPU, compiler, and analysis tools, these tools have never been used, and I haven't seen any reason after I browsed them. Because I didn't pay for it myself, I didn't pay much attention to this training. At the beginning of the course, I began to feel self-blaming for this idea. It was originally a four-day course, because we did not do the experiment (in fact, we did it, but the teacher connected the machine in Shanghai through the Remote Desktop to demonstrate and analyze the experiment content for US ), therefore, the course was compressed into a three-day course. The training instructors were all from frontline developers. One of them was compiler developers and the other was from research groups, not clearly understood. I feel that they have a wide range of ideas and knowledge. Today I will focus on the following: 1. Multi-core CPU architecture and related features if you have some knowledge about the multi-core CPU architecture and features, it is good for our development system, I personally agree with the book "deep understanding of computer systems". Only by having a good understanding of computer systems can I write excellent Code Alas, my skill is not enough. 2. Compiler optimization options are the most commonly used optimization methods. In the debug version, optimization options are not added during compilation and linking, so that the compiler can be as faithful as possible to the semantics of the Code, for debugging. The optimization option is added only when the release version is released. 3. The optimization methodology is really human thinking, and God will smile. As long as everything goes up to the theoretical level, from a philosophical perspective, the things mentioned are different. It is what people see and think about it. When people do not think about it, an inductive summary will become a design model and methodology. 4. How to optimize the system at the code level and how to optimize the system not long ago, I took a look at Chapter 5th of "a deep understanding of computer systems, this section focuses on single-core systems for code-level optimization, and today's content is for multi-core systems. In actual development projects, it is difficult to make such optimization. In order to catch up with the progress, as long as the system can run without errors, no one will worry about writing ugly. It is easy to see that these courses have been carefully designed by Intel. The only drawback is that today's experiments are aimed at the windows platform. Because we are developing in Linux, we cannot experience the difference with the GCC compiler. However, this does not affect the integrity of the course. In the classroom, the corresponding options are provided in Linux. Some of the Optimization content has nothing to do with the platform. Adding an option does not have much room for improvement in the system, which gives us a perceptual knowledge.