1. A method for analyzing parallelism of program code, the method comprising: simulating sequential execution of the program code so as to trace an execution procedure of the program code; and analyzing parallelism of the program code based on a result of the trace of the execution procedure of the program code, wherein the analyzing comprises: analyzing dependencies between function calls of the program code in the execution procedure based on the result of the trace of the execution procedure of the program code; identifying, based on analyzing dependencies between function calls of the program code in the execution procedure, function calls that have no dependencies with respect to other function calls; and determining that the function calls that have no dependencies can be executed in parallel, wherein the analyzing of the dependencies comprises: generating an invocation tree for the program code by representing the function calls of the program code in the execution procedure with nodes and relations between the function calls with the relations between the nodes; obtaining, for the each of the nodes, a read access record set and a write access record set during the function call corresponding to the node based on the result of the trace; for leaf nodes under one parent node in the invocation tree, determining, by at least one processor, whether there exists a memory access conflict between these leaf nodes based on their read access record sets and write access record sets; merging the leaf nodes under the one parent node having a memory access conflict into one node; for at least first and second function calls under a function of the program code in the execution procedure, obtaining a read access record set and a write access record set during the first and second function calls, respectfully, based on the result of the trace, the read access record set recording read accesses to a memory address during a function call, and the write access record set recording write accesses to the memory address during a function call; determining for the first function call whether the write access record set associated therewith comprises at least one record related to a same non-local memory address as that in at least one of the read access record set and the write access record set of the second function call; responsive to the write access record set of the first function call comprising at least one record related to the same non-local memory address as that in at least one of the read access record set and the write access record set of the second function call, determining that the first function call and the second function call are dependent on each other and fail to be executable in parallel; and responsive to the write access record set of the first function call failing to comprise at least one record related to the same non-local memory address as that in at least one of the read access record set and the write access record set of the second function call, determining that the first function call and the second function call fail to be dependent on each other and are executable in parallel.