probably not necessary. Sure, some will replumb their synchronization mechanisms, but in the interim there's a lot of advantage to be gained just by making some minor tweaks and recompiling. OpenMP is a good way to do this, but another approach is add a 2nd tier scheduler. The OS scheduler could be used to manage an a lower tier scheduler which simply breaks work into parallelizable units and schedules threads and processes to do this work. The lower tier scheduler can hand off processes to the OS scheduler to manage and the OS scheduler can manage multiple lower tier schedulers. This may seem like additional overhead, but it would save time and money while we all learn the new paradigms and programming languages required to take advantage of 80 cores.