Method for automatic parallelization of software

   
   

The invention provides a scalable, automated, network friendly method for building parallel applications from embarrassingly parallel serial programs. Briefly, the steps of an exemplary method in this invention are as follows: First, the application loops with significant potential parallelism are identified. Second, from the set of loops identified, those loops which can statically be shown to not be parallelizable are disqualified. Next, the program is transformed into a parallel form in which the remaining identified loops are optimistically parallelized and packaged into per-iteration functions. Then, shared memory in the functions is relocated to a shared memory section available to all computers and references to the shared memory in the source code are transformed into indirect accesses. Finally, the per-iteration functions are spawned on to multiple computers, at run-time, where each computer is given a range of iteration.

De uitvinding verstrekt scalable, geautomatiseerd, netwerk vriendschappelijke methode om parallelle toepassingen van embarrassingly parallelle periodieke programma's te bouwen. Kortom, de stappen van een voorbeeldige methode in deze uitvinding zijn als volgt: Eerst, worden de toepassingslijnen met significant potentieel parallellisme geïdentificeerd. Ten tweede, van de reeks geïdentificeerde lijnen, worden die lijnen die statisch kunnen worden getoond om niet parallelizable te zijn gediskwalificeerd. Daarna, wordt het programma omgezet in een parallelle vorm waarin de resterende geïdentificeerde lijnen optimistisch parallelized en in per-herhalingsfuncties worden verpakt. Dan, wordt het gedeelde geheugen in de functies opnieuw gevestigd aan een gedeelde geheugensectie beschikbaar aan alle computers en de verwijzingen naar het gedeelde geheugen in de broncode worden omgezet in indirecte toegangen. Tot slot worden de per-herhalingsfuncties kuit geschoten op veelvoudige computers, bij run-time, waar elke computer een waaier van herhaling wordt gegeven.

 
Web www.patentalert.com

< Modularizing a computer program for testing and debugging

< System and method for using scalable polynomials to translate a look-up table delay model into a memory efficient model

> Control object and user interface for controlling networked devices

> Method for displaying single monitor applications on multiple monitors driven by a personal computer

~ 00104