Random people Random location Random misc

After 25 Years, C/C++ Understands Concurrency

The C language has been used for parallel programming for more than a quarter century, and C++ for only slightly shorter. Interestingly enough, neither the C nor the C++ standard defines multi-threaded operation, forcing almost all C/C++ parallel programs to rely on non-standard extensions. The advent of low-cost parallel systems based on multi-core/multi-threaded CPUs has brought parallelism to the masses, and hence the ongoing C++0x effort is working to add concurrency to the standard. I got involved (quite late in the process, as it turns out) to help with memory-ordering issues, resuming C++ standards activity after a 17-year lapse.

Of course, the Linux kernel is coded in C rather than C++, but it turns out that the C standards committee has agreed to defer to the C++ standards effort. In reality, a number of C standards committee members participate in the C++ effort in order to ensure that the resulting C and C++ standards are compatible.

This talk will give a snapshot of the multi-threading proposals most relevant to FOSS projects, particularly to the Linux kernel.

Project: Any project using the C or C++ language 


Paul McKenney

Paul E. McKenney is a distinguished engineer at IBM and has worked on SMP, NUMA, and RCU algorithms for longer than he cares to admit. Prior to that, he worked on packet-radio and Internet protocols (but long before the Internet became popular), system administration, realtime systems, and even business applications. His hobbies include running and the usual house-wife-and-kids habit.

Paul McKenney

Paul E. McKenney is a distinguished engineer at IBM and has worked on SMP, NUMA, and RCU algorithms for longer than he cares to admit. Prior to that, he worked on packet-radio and Internet protocols (but long before the Internet became popular), system administration, realtime systems, and even business applications. His hobbies include running and the usual house-wife-and-kids habit.

© 2007 MEL8OURNE LCA2008 and Linux Australia | Linux is a registered trademark of Linus Torvalds | Site map | Valid XHTML 1.0

rja