1. A method for parallelization of program code, the method comprising: analyzing source code that is present both in a serial variant and in a parallel variant that define two different variants of the source code, identifying pairs of code blocks that provide functionally identical results but come from the two different variants, for each identified pair of code blocks: transferring each of the two different variants to a language-independent, abstract syntactic form to define abstracted functionally identical serial and parallel code blocks, storing the abstracted functionally identical serial and parallel code blocks together in a respective pattern in a semantic pattern database, performing a manual classification of the respective pattern according to human-selected categories or an automatic classification based on mapping to the human-selected categories, as determined based on machine learning, and transferring a respective new code block to be investigated to the abstract syntactic form, comparing each respective new code block with the abstracted serial code blocks of all patterns in the semantic pattern database, and automatically selecting a category that best matches the new code block from the human selected categories.