Behavior-Oriented Parallelization for Multi-Processor Computers

Brief Description
This software productivity tool converts conventional code to run-time code for multi-processor computers.   It provides a simple method for converting large bodies of existing code written for conventional single-processor computers to parallelized code which can take advantage of the new multi-processor computers to achieve performance enhancements of several-fold.  

While other methods exist to parallelize code, these have typically been complex and may depend on bit-level operations, unrestricted pointers, exception handling, custom memory management and third party libraries.  This BOP (Behavior-Oriented Parallelization) tool may not be as efficient as thread-level techniques, but it has a significant advantage in ease of programming.  It can parallelize a program based on only partial information, requires little or no manual changes to the sequential program and no debugging.  This behavior-oriented tool allows a program to be parallelized based on partial information about program behavior from, for example, a user reading just part of the source code, or a profiling tool examining just a few inputs.   The parallelization is done on that part of the execution which has coarse-grained parallelism, while guaranteeing correctness and basic efficiency for the rest of the execution.
Patent Information:
Title Country Patent No. Issued Date
Parallel Programming Using Possible Parallel Regions and its Language Profiling Compiler, Run-Time System and Debugging Support United States 8,549,499 10/1/2013
Computer Software
For Information, Contact:
Curtis Broadbent
Licensing Manager
University of Rochester
Chen Ding
Xipeng Shen
Ruke Huang