1. A computer-implemented method for seismic modeling on a GPU comprising: creating a discretized model containing a volume enclosed by boundaries with arbitrary boundary conditions; dividing the discretized model into subsets which are allocated memory space on the GPU; transferring a data to the GPU; initializing the data stored in a selected number of the subsets on the GPU performing computation related with a number of time steps for the selected number of the subsets on the GPU; and substantially simultaneously computing, off-loading a finished subsets data from the GPU, and up-loading a new subsets data to the GPU.