1. A method of generating a code by a compiler, the code being executable by a processor provided to a multiprocessor system, the multiprocessor system including a plurality of processing elements and a main memory that can be accessed from each of the plurality of processing elements, the each of the plurality of processing elements including a processor for performing arithmetic processing and a cache memory for temporarily storing data used by the processor, the data read and transferred by the each of the plurality of processing elements from the main memory being temporarily stored in the cache memory, the data whose use by the each of the plurality of processing elements has been finished being transferred from the cache memory and being written back to the main memory, the data transfer between the main memory and the cache memory being performed in accordance with a management unit of the cache memory, the method including the steps of: analyzing a program to be executed by the multiprocessor system; analyzing data necessary to execute respective tasks included in the program; determining whether a boundary of the data used by the divided tasks is consistent with the management unit of the cache memory based on results of the analyzing in a case where the respective tasks are divided; and generating a code for instructing to provide a non-cacheable area from which the data to be stored in the management unit including the boundary is not temporarily stored into the cache memory and a code for instructing to store an arithmetic processing result stored in the management unit including the boundary into the non-cacheable area in a case where it is determined that the boundary of the data used by the divided tasks is not consistent with the management unit of the cache memory.