Patent ID: 7908604

Claim:
A parallel computer synchronization method that synchronizes threads through barrier synchronization for parallel execution of plural threads in a parallel computer system including a plurality of processor modules, each having a plurality of processor cores, a main memory accessed by the processor cores and a hierarchical cache system formed between said processor cores and said main memory, said hierarchical cache system including first layer caches each being sharable among plural threads which are executed in a single processor core, second layer caches each being sharable among plural processor cores formed in a single processor module, and third layer caches each being sharable among plural processor modules, the parallel computer synchronization method comprising the steps of: assigning plural threads to each of the processor cores to have the processor cores execute the threads; setting at least a part of the plural threads as constituents of a synchronization group whose threads are to be synchronized; and performing barrier synchronization among the threads which are set as the constituents of the synchronization group, wherein the step of setting the threads as constituents of the synchronization group includes the steps of: setting, on each of the first layer caches, which are sharable among a plurality of threads set as the constituents, dedicated storage areas for respectively storing synchronization information of the respective threads set as the constituents; setting, on each of the second layer caches which are sharable among a plurality of processor cores respectively arranged to execute the threads set as the constituents, dedicated storage areas for respectively storing synchronization information of the respective threads set as the constituents, and wherein the step of performing barrier synchronization among the threads set as the constituents includes the step of: separately synchronizing the threads in each of first layer thread groups, each group sharing one of the first layer caches, through barrier synchronization using synchronization information stored in the dedicated storage areas of the first layer caches; separately synchronizing the threads in each of second layer thread groups, each group sharing one of the second layer caches, through barrier synchronization using synchronization information stored in the dedicated storage areas of the second layer caches; and synchronizing the threads between the second layer thread groups through barrier synchronization if a plurality of the second layer thread groups exist.