Patent ID: 8655940
Filing Date: 2014-02-18
Classification: G06F

Abstract:
1. A computer for performing communication between processes executed by servers included in a cluster system, the computer being one of the servers, the computer comprising: a destination-server determination means for repeatedly determining, in response to an all-to-all inter-process communication request issued from a local process executed by the computer, a destination server in accordance with a destination-server determination procedure predefined so that, in a same round of destination-server determinations repeatedly performed by the respective servers during all-to-all inter-process communication, the servers determine servers that are different from one another as destination servers; a destination-process determination means for repeatedly determining, each time the destination server is determined, a process running on the same determined destination server as a destination process; and a data transmission means for obtaining, each time the destination process is determined, transmission data for the destination process from a send buffer in which the transmission data is stored as a result of execution of the local process and transmitting the obtained transmission data to the destination server so as to enable reading of the transmission data during execution of the determined destination process in the destination server, wherein the destination-process determination means repeatedly determines a destination process for the local process that issued the all-to-all inter-process communication request, in accordance with a destination-process determination procedure predefined so that, in a same round of destination-process determinations repeatedly performed on the respective processes in response to an all-to-all inter-process communication request issued as a result of execution of the processes executed by the computer, the processes that are different from one another in the destination server are determined as the destination processes with respect to the respective processes, wherein, in accordance with the destination-process determination procedure, the destination-process determination means arranges process numbers assigned to the respective processes according to a predetermined sequence, and determines the destination process based on the sequence of a relative positional relationship between the process number assigned to the local process that issued the all-to-all inter-process communication request and the process number of another process, and wherein, in accordance with the destination-process determination procedure, the destination-process determination means arranges per-server process numbers, assigned to the respective processes in the destination server to uniquely identify the processes in the destination server, in ascending order to create a sequence in which a largest value of the per-server process numbers is followed by a smallest value of the per-server process numbers, sequentially locates a process number in a certain direction along the sequence from the process number assigned to the local process that issued the all-to-all inter-process communication request, and determines the process included in the destination server and indicated by the located process number as the destination process.