Japan-based NEC Corp. has announced it has developed a multicore processor technology capable of performing automatic parallelization of application programs, without modifying them.
The processor’s automatic parallelizing compiler utilizes profile information to aggressively exploit parallelization patterns, effective for accelerating the speed of application programs. The parallelization. though speculative, is almost always completely accurate, according to NEC.
The processor’s speculation hardware works as a safety net by handling any rare misses, guaranteeing the correctness of the execution. This ensures that the compiler is not conservative in decisions concerned with these cases, resulting in an increase in the amount of parallelism exploited.
The parallelism exploitation is supported by the speculative execution hardware that realizes efficient handling of detection of incorrect execution orders caused by the parallel execution of the program parts, cancellation of the incorrectly executed part, and re-execution of it. Moreover, the parallelization can be performed in a practical period of time.
NEC believes that its automatic parallelization technology is the first to be brought to practical use. The company has succeeded in operating this technology on a field-programmable gate array (FPGA).
In one test, manual parallelization of an application program took four months of time with one person carrying out the task; however, automatic parallelization cut this time to just three minutes with no manual labor involved at all.
In addition, the application program that has been parallelized manually runs 1.95 times faster with four processors than the original application program running with one processor. However, the application program that has been parallelized automatically runs 2.83 times faster with four processors, indicating that automatic parallelization achieves greater acceleration than manual parallelization.
NEC plans to incorporate the multicore processor technology in future products.