| Parallel computing system, method and architecture -> Monitor Keywords |
|
Parallel computing system, method and architectureUSPTO Application #: 20070271547Title: Parallel computing system, method and architecture Abstract: A parallel or computing system and method make use of a plurality of adapters each affording a specific type of processing algorithm. At each point in an application, an adapter is identified, to parallelize that portion of the application. The process involves associating an appropriate adapter with the application portion, parsing the application portion to define tasks that may be distributed over the available computers. Combined with the parallelized program is a software server that is designed to cooperate with the adapters to control and supervise distributed processing functions. Such functions include mapping, load balancing, and error detection and correction. Also included are functions that cause the results of the computing to be coordinated in real-time and returned appropriately, according to the application. In addition to the parallelized program and server, an application created by the present invention is provided with the functionality of virtual middleware, which interfaces with and controls existing forms of middleware. (end of abstract)
Agent: Mcdermott, Will & Emery LLP - Chicago, IL, US Inventors: Abraham Gulko, David Mellor USPTO Applicaton #: 20070271547 - Class: 717106000 (USPTO) Related Patent Categories: Data Processing: Software Development, Installation, And Management, Software Program Development Tool (e.g., Integrated Case Tool Or Stand-alone Development Tool), Code Generation The Patent Description & Claims data below is from USPTO Patent Application 20070271547. Brief Patent Description - Full Patent Description - Patent Application Claims CROSS-REFERENCE TO RELATED APPLICATIONS [0001] This continuation patent application claims the benefit of priority of U.S. patent application Ser. No. 10/310,115, filed Dec. 4, 2002, which claims the benefit of priority under 35 U.S.C. .sctn.119 of U.S. Provisional Patent Application Ser. No. 60/338,278, filed Dec. 4, 2001, entitled "Parallel Computing System And Architecture," the entirety of which is hereby incorporated by reference. FIELD OF INVENTION [0002] The present invention relates generally to parallel computing and, more particularly, concerns a software system, method and architecture that permit existing and new computer programs to be converted, at the algorithm level, for true parallel processing. BACKGROUND OF THE INVENTION [0003] Various businesses have a need to run computer applications involving extensive computer processing, and computation time can be a vital factor in the success of the business. Hence there is a perpetual quest for increased computing power and reduction in computational time. For example, in the financial industry, there are many computational intensive factors, including: pricing and hedging complex derivatives; portfolio-pricing, hedging and risk (market, credit, and operational) calculations; value at risk calculations, end of day marked-to-market processing and report generation; and calibrating financial model to market. [0004] The computation time can have a critical impact on the value and usefulness of the calculations. Continuing with the financial industry example, the 5 and 7 year Euro Dollar basis may be slipping relative to the 10-year swap one hour before the close of the financial-market trading period. The fixed income derivatives desk needs to re-calibrate its multi-factor model and re-hedge it's interest rate and volatility risk immediately because of conditions resulting in substantial variability of the yield curve. If the desk does not hedge, it will have a significant loss. Typically, it takes 30 minutes to re-calibrate a multi-factor model; 2 hours for mark-to-market of the portfolio; and 3 hours for risk reports; in all, 5 hours. In this situation, the desk cannot respond adequately in a timely manner and will likely put a costly, inaccurate hedge in place. [0005] One way to solve large, complex problems in real time or minimum time is by using a supercomputer such as the Cray. Of course this option is very costly and not practical for the typical business. [0006] Another way to achieve substantial computing power is through parallel (simultaneous) processing. Inexpensive off-the-shelf-processors, such as recent Pentium and Alpha chips have become very powerful, and they can be harnessed together in parallel for increased processing speed. Certain computers, mainly servers, have been provided with multiple processors to share the processing load, speeding overall operation. On a higher level, multiple computers have been linked together over a network in "cluster computing" arrangements, to act like a virtual computer. The basic concept is that the processing workload of an application is split into manageable sections that are distributed among the networked computers, to achieve relatively quick solutions of computational problems that are normally time-consuming. However, computer clusters perform distributed computing without controlling the return of results. On the other hand, the ideal of parallel processing is to achieve true parallel computing, which provides intelligent parsing and mapping of the workload to different processors, fault tolerance of the workload activity, balancing of the work, coordinating return of results, and scalability. Although systems achieving a degree of distributed computing have been available, true distributed, parallel computing has not been achieved until the present invention. [0007] There are three general levels in the hierarchy of distributed computing. The simplest is task distributed processing. At this level, the identical application is run on multiple computers in a cluster, with a different set of initial parameters being passed to each computer. In order to achieve this level of distributed processing of an application, a user must develop a substantial amount of code to implement that processing. Commercial systems have been available to accomplish this, but they permit distributed processing of only the simplest linear problem. [0008] At the second level of the hierarchy is data-distributed processing, which permits the computations of iterative processing loops in an application to be distributed across a computer cluster. To make use of this form of distributed processing in an application, substantial modification of the code internals and loop processing are necessary to develop the application. Even then, parallel computation is limited to the loop components and is not achieved at an algorithm level. Also, the heavy data distribution tends to utilize significant bandwidth, causing congestion in networks. This form of distributed processing may be used for linear problems but not non-linear problems. At least one commercial system has been available which achieves this level of distributed processing. [0009] At the top of the hierarchy is algorithm distributed processing, in which the algorithm of an application is itself distributed among the computer cluster. This is achieved within the program itself by dynamically distributing the algorithm directives. This form of distributed processing is also lower in network bandwidth usage, because distribution is limited to the algorithm rather than a voluminous amount of data. Systems achieving algorithm distributed processing have not been available commercially. [0010] Cluster middleware is used to interface between the server requesting distributed processing of an application and a computer cluster, to achieve distributed processing. The middleware is typically executable code made available by a vendor, which must be incorporated into an application adapted for distributed processing. The user must write a substantial amount of code to interface properly with the middleware and to utilize its available features. [0011] As already explained, the most effective parallel computing involves distribution of tasks at the algorithm level of the program. Most computing falls into basic types of known algorithms. Some common algorithms are linear (structured); nonlinear (complex structure); Monte Carlo; non-recombining tree; Complex Monte Carlo; Branch & Bound (Multidimensional Solver); and Associative Network. [0012] Existing parallel computing implementations fail to provide the capacity to parallelize paradigms except for the simplest linear type. In many industries, front, middle and back offices utilize diverse algorithms and applications. Many of these applications are time sensitive and mission critical and therefore require reduction in computation time and an increase in result accuracy. Diverse groups within enterprises require a universal parallel computing platform, ease of deployment of existing applications to a parallel computing platform, and ease of creation of new applications for a parallel computing platform. [0013] What is needed in the art is the capacity to run essentially any parallel computing program on any distributed network. In particular in financial services and energy companies there is a strong need for a scalable distributed computing platform. The present invention solves these and other needs. SUMMARY OF THE INVENTION [0014] The present invention provides a system, method and architecture to achieve a true parallel computing infrastructure. This infrastructure provides the capability to transform an application into a parallel computing program and facilitate execution of the resulting program on an existing network of computers. The system and method effectively allow any algorithm-based application to operate on essentially any platform. The present invention may be used to model and deploy virtually any type of parallel computing paradigm to solve any type of computationally intensive problem. [0015] The parallel computing method in accordance with the preferred embodiment of the invention makes use of a plurality of adapters each affording a specific type of processing algorithm. At each point in an application, an adapter is identified to parallelize that portion of the application. Specifically, the process involves associating an appropriate adapter with the application portion, parsing the application portion to define tasks that may be distributed over the available computers. Combined with the parallelized program is a software server engine (Lobster), which is designed to cooperate with the adapters to control and supervise, distributed processing functions. Such functions include mapping, load balancing, and error detection and correction as well as work splitting, distribution to slave computers, and gathering and coordination of results. Also included are functions that cause the results of the computing to be coordinated in a real-time and returned appropriately, according to the application. In addition to the parallelized program and Lobster, an application created by the present invention is provided with the functionality of virtual middleware (DNET), which interfaces with and controls existing forms of middleware. [0016] In accordance with one aspect of the present invention, a method for parallelizing an application is provided. In that method, a plurality of adapters are provided, each affording a specific type of processing algorithm. At successive portions in an application, an adapter appropriate for parallelizing that portion of the application is identified and associated with the portion. A code segment which represents the functionality of for each identified portion and which includes a call to a client-server library is generated, and a call to the client-server library is included in the application which, at run-time, launches said codes segment from a main entry point in each respective code segment in lieu of executing the portion. [0017] In accordance with another aspect of the present invention, a method for running a parallelized application in which a pool of work is to be performed is provided. In that method, a master server that operates in a master mode is used to instantiate a stateless server which contains a first object including a code segment suitable for processing work from the pool. The master server dispatches to the stateless server a first portion of work from the pool. Reports are provided to the master server concerning the progress of the first portion of work dispatched to the stateless server, and additional portions of work are distributed from the master server to the stateless server once a prescribed amount of work progress has been reported by the stateless server. [0018] A salient aspect of the foregoing method is that the stateless server can be established either in a slave mode, or in a dual mode including a master mode in which the stateless server serves as a master to other servers. [0019] These and other aspects, features and advantages can be appreciated from the attached figures and the accompanying description of certain embodiments. BRIEF DESCRIPTION OF THE DRAWINGS Continue reading... Full patent description for Parallel computing system, method and architecture Brief Patent Description - Full Patent Description - Patent Application Claims Click on the above for other options relating to this Parallel computing system, method and architecture patent application. ### 1. Sign up (takes 30 seconds). 2. Fill in the keywords to be monitored. 3. Each week you receive an email with patent applications related to your keywords. Start now! - Receive info on patent apps like Parallel computing system, method and architecture or other areas of interest. ### Previous Patent Application: Method and system for identifying runaway software agents Next Patent Application: Specification to abap code converter Industry Class: Data processing: software development, installation, and management ### FreshPatents.com Support Thank you for viewing the Parallel computing system, method and architecture patent info. IP-related news and info Results in 4.65275 seconds Other interesting Feshpatents.com categories: Canon USA , Celera Genomics , Cephalon, Inc. , Cingular Wireless , Clorox , Colgate-Palmolive , Corning , Cymer , |
||