Method for image rendering on a shared memory system with one or multiple processors, wherein the one or multiple processors comprise cores and wherein one or more of the cores are assigned to at least one cache and calculate instructions of at least one thread in parallel, wherein the one or more cores that share a cache are defined as a socket, the method comprising: - Decomposing the image space to be used for rendering in regions (Re), wherein each region (Re) comprises a plurality of tiles; - Assigning all available sockets to regions (Re), - characterized by - two sockets being assigned to each of the decomposed regions (Re) for the purpose of rendering; and - the method further comprising: - Determining a tile enumeration scheme for each of the respective regions (Re) to generate a sequence for calculation of the tiles within that region (Re), wherein the tile enumeration scheme comprises a regular and a corresponding reverse indexing; - Rendering tiles within a region (Re) until a region (Re) is finished, wherein a first socket of the two sockets processes tiles according to the regular indexing with ascending order and wherein a second socket of the two sockets processes tiles according to the reverse indexing with descending order; - If a region (Re) is finished: Assigning the two sockets to another un-rendered region (Re); - If no completely un-rendered region (Re) is left: Splitting a region with un-rendered tiles into sub-regions according to a splitting scheme and applying the steps of assigning, determining and/or rendering recursively for the sub-regions. - Decomposing the image space to be used for rendering in regions (Re), wherein each region (Re) comprises a plurality of tiles; - Assigning all available sockets to regions (Re), - characterized by - two sockets being assigned to each of the decomposed regions (Re) for the purpose of rendering; and - the method further comprising: - Determining a tile enumeration scheme for each of the respective regions (Re) to generate a sequence for calculation of the tiles within that region (Re), wherein the tile enumeration scheme comprises a regular and a corresponding reverse indexing; - Rendering tiles within a region (Re) until a region (Re) is finished, wherein a first socket of the two sockets processes tiles according to the regular indexing with ascending order and wherein a second socket of the two sockets processes tiles according to the reverse indexing with descending order; - If a region (Re) is finished: Assigning the two sockets to another un-rendered region (Re); - If no completely un-rendered region (Re) is left: Splitting a region with un-rendered tiles into sub-regions according to a splitting scheme and applying the steps of assigning, determining and/or rendering recursively for the sub-regions. - Determining a tile enumeration scheme for each of the respective regions (Re) to generate a sequence for calculation of the tiles within that region (Re), wherein the tile enumeration scheme comprises a regular and a corresponding reverse indexing; - Rendering tiles within a region (Re) until a region (Re) is finished, wherein a first socket of the two sockets processes tiles according to the regular indexing with ascending order and wherein a second socket of the two sockets processes tiles according to the reverse indexing with descending order; - If a region (Re) is finished: Assigning the two sockets to another un-rendered region (Re); - If no completely un-rendered region (Re) is left: Splitting a region with un-rendered tiles into sub-regions according to a splitting scheme and applying the steps of assigning, determining and/or rendering recursively for the sub-regions.