1. A method comprising: providing a system comprising a plurality of computing nodes, wherein each computing node comprises at least one processor selected from the group consisting of central processing unit and graphics processing unit; using at least one processor, separating an optical proximity correction process into tasks depending on a type of computation required; allocating the tasks of the optical proximity correction process to the central processing unit or the graphics processing unit; and delivering output of the central processing unit and the graphics processing unit as a result of the optical proximity corrections (OPC) process, wherein the separating an optical proximity correction process into tasks depending on a type of computation required comprises: analyzing a mask pattern to be written to a target material; and splitting the mask pattern into a plurality of two-dimensional subregions, wherein allocating the tasks of the optical proximity correction process to the central processing unit or the graphics processing unit comprises: assigning each subregion to one or more computing nodes in the plurality of computing nodes, wherein OPC results are output for each subregion; and assembling the OPC results for the plurality of two-dimensional subregions; wherein the mask pattern is used to manufacture semiconductor devices.