A method of managing a storage area of a shared memory when a multiprocessor system executes a program, the multiprocessor system including a plurality of processing elements and a shared memory which is any one or both of a centralized shared memory and a distributed shared memory that can be accessed from each of the plurality of processing elements, the plurality of processing elements including a first and a second processing element , 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 method including the steps of: temporarily storing, in the cache memory, by the each of the plurality of processing elements, the data read and transferred from the shared memory; transferring the data whose use by the each of the plurality of processing elements has been finished from the cache memory and writing back the data to the shared memory, the data transfer between the shared memory and the cache memory being performed in units of a management unit size of the cache memory, characterized by : in a case where a boundary between the data used by respective tasks, included in the program and divided between the first and second processing elements, does not correspond to a boundary of the units of the management unit size of the cache memory: providing a non-cacheable area from which the data to be stored in a unit of the management unit size including the boundary between the data is not temporarily stored in the cache memory of the second processing element, storing an arithmetic processing result, computed by said second processing element, in a unit of the management unit size including the boundary between the data in the non-cacheable area, transferring the arithmetic processing result stored in the non-cacheable area to the cache memory of the first processing element. temporarily storing, in the cache memory, by the each of the plurality of processing elements, the data read and transferred from the shared memory; transferring the data whose use by the each of the plurality of processing elements has been finished from the cache memory and writing back the data to the shared memory, the data transfer between the shared memory and the cache memory being performed in units of a management unit size of the cache memory, characterized by : in a case where a boundary between the data used by respective tasks, included in the program and divided between the first and second processing elements, does not correspond to a boundary of the units of the management unit size of the cache memory: providing a non-cacheable area from which the data to be stored in a unit of the management unit size including the boundary between the data is not temporarily stored in the cache memory of the second processing element, storing an arithmetic processing result, computed by said second processing element, in a unit of the management unit size including the boundary between the data in the non-cacheable area, transferring the arithmetic processing result stored in the non-cacheable area to the cache memory of the first processing element. providing a non-cacheable area from which the data to be stored in a unit of the management unit size including the boundary between the data is not temporarily stored in the cache memory of the second processing element, storing an arithmetic processing result, computed by said second processing element, in a unit of the management unit size including the boundary between the data in the non-cacheable area, transferring the arithmetic processing result stored in the non-cacheable area to the cache memory of the first processing element. <EOS>