Patent ID: 8648867

Claim:
A computer system for performing a numerical simulation over a plurality of computational cycles including at least a first computational cycle and a second computational cycle, the computer system comprising: a central processing unit; a main memory, operably coupled to the central processing unit, to store input data to be accessed by the central processing unit in performing the numerical simulation; a video system, operably coupled to the central processing unit, to drive a video monitor to display an indication of the numerical simulation in response to the computer system performing the numerical simulation; an accelerator, operably coupled to the central processing unit, to receive at least a portion of the input data from the central processing unit and to provide first output data generated during the first computational cycle to the central processing unit after a conclusion of the first computational cycle, the accelerator comprising: at least one graphics processing unit to generate second output data, during the second computational cycle, by performing at least one calculation on the first output data; and an accelerator memory, operably coupled to the at least one graphic processing unit, the accelerator memory comprising: a first partition, referenced by a first pointer, to store the first output data during the second computational cycle; and a second partition, referenced by a second pointer, to store the second output data generated during the second computational cycle; and an accelerator controller, operably coupled to the accelerator memory and the central processing unit, to transfer the at least the portion of the input data into the accelerator memory before the first computational cycle, to transfer the first output data from the accelerator memory to the main memory during the second computational cycle, to direct the second output data into the second partition during the second computational cycle, and to swap the first pointer and the second pointer at the conclusion of the second computational cycle such that the second output data becomes an input for a third computational cycle of the plurality of computational cycles.