Parallel and distributed computing system

JP7645497B2Active Publication Date: 2025-03-14INFORMATION SCI LAB LTD +1
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2022540050
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-07-30
Filing Date
2021-06-11
Publication Date
2025-03-14
Estimated Expiration
2041-06-11

AI Technical Summary

Benefits of technology

【0014】 このように構成した本発明によれば、MBCFによる遠隔メモリ書き込み操作において、操作内容を受信側プロセスに低コストで通知する手段を提供できる。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007645497000001
    Figure 0007645497000001
  • Figure 0007645497000002
    Figure 0007645497000002
  • Figure 0007645497000003
    Figure 0007645497000003
Patent Text Reader

Abstract

The present invention provides a means for enabling a receiving-side process, in which a remote memory operation is performed by MBCF, to recognize the content of a memory operation and perform a necessary process at low cost. A transmitting-side process transmits an operation request packet including: an identifier of the receiving-side process; an operation target address that defines a memory area of the receiving-side process; the size of data to be written; a data string; and a structure address that defines a history memory area for temporarily recording an operation content history in the receiving-side process. A destination computer receives the operation request packet, stores the data string in the memory area defined by the receiving-side process and the operation target address, and records, as operation content, the operation target address, the written data size, and the information on the transmitting-side process, in the history memory area.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a parallel distributed computing system in which multiple computers, each equipped with a processor having a translation lookaside buffer (TLB), physical memory, and a network interface controller (NIC) capable of directly accessing the physical memory, are interconnected via a data link. [Background technology]

[0002] The inventors of this application are developing a Memory Based Communication Facility (MBCF), which is one of the communication synchronization mechanisms based on the memory-based communication synchronization method, as shown in Non-Patent Document 1. This MBCF does not require any special communication synchronization hardware, but uses a general network interface card (NIC) to achieve high-speed, highly functional communication synchronization through remote memory operation using only software. [Prior art documents] [Non-patent literature]

[0003] [Non-Patent Document 1] Matsumoto, T.: A Study on Memory-Based Communications and Synchronization in Distributed-Memory Systems. Dissertation Thesis, Graduate School of Science, Univ. of Tokyo (February 2001). Summary of the Invention [Problem to be solved by the invention]

[0004] Specifically, the MBCF is configured using a computer equipped with a processor having a translation lookaside buffer (TLB), a physical memory, and a network interface controller (NIC) that can directly access the physical memory. For example, a process of a source computer (hereinafter, a sending process) transmits an operation request packet including an identifier of an operation target process (hereinafter, a receiving process) that specifies a process of a destination computer, an operation target address that specifies a memory area of ​​the receiving process, a data size to be written, and a data string. Then, the destination computer receives the operation request packet transmitted by the sending process, and stores the data string in a memory area specified by the receiving process and the operation target address.

[0005] MBCF is provided as a means to realize remote memory operations in a parallel distributed computing system in which multiple computers are connected via data links. In conventional MBCF, the sending process can rewrite the memory in the receiving process without synchronizing with the receiving process, which is a major factor in the high degree of freedom and high performance of MBCF communication. On the other hand, however, even if the sending process rewrites the memory of the receiving process, the receiving process cannot recognize which memory has been changed. If a change in memory content causes other data changes in the receiving process, not knowing where the change has been made is a major disadvantage.

[0006] The present invention has been made to solve the above problems, and its main objective is to provide a means for enabling a receiving process, which has undergone a remote memory operation, to recognize the contents of the memory operation and carry out the necessary processing at low cost in a parallel distributed computing system in which a processor having a translation lookaside buffer (TLB), physical memory, and a plurality of computers each having a network interface controller (NIC) capable of directly accessing the physical memory are interconnected via a data link. [Means for solving the problem]

[0007] That is, the parallel distributed computing system of the present invention is a parallel distributed computing system in which a plurality of computers each having a processor with a translation address buffer (TLB), a physical memory, and a network interface controller (NIC) capable of directly accessing the physical memory are interconnected via a data link, and is characterized in that a process of a sending computer (hereinafter, the sending process) sends an operation request packet including an identifier of an operation target process (hereinafter, the receiving process) that specifies a process of a destination computer, an operation target address that specifies a memory area of ​​the receiving process, a data size to be written, a data string, and a structure address that specifies a history memory area for temporarily recording operation content history within the receiving process, and the destination computer receives the operation request packet, stores the data string in a memory area specified by the receiving process and the operation target address, and records the operation target address, the written data size, and information of the sending process as operation content in the history memory area.

[0008] In such a parallel distributed computing system, in which multiple computers are interconnected via data links and communicate with each other in synchronization using MBCF, an operation request packet that a sending process sends to a receiving process includes a structure address that specifies a history memory area for temporarily recording the operation content history within the receiving process, and the destination computer receives the operation request packet and records the operation target address, the written data size, and information about the sending process as the operation content in the history memory area, thereby providing a means for the receiving process to recognize the content of the memory operation by referring to the history memory area and perform the necessary processing at low cost.

[0009] It is conceivable that the computer on which the receiving process exists may start an asynchronous user function in the receiving process when the operation content history is accumulated in the history memory area.

[0010] The destination computer may save the data before it is overwritten in the memory area of ​​the receiving process in the history memory area.

[0011] The sending process sends an operation request packet including an identifier of an operation target process (hereinafter referred to as a receiving process) that specifies a process of a destination computer, an operation target address that specifies a table area in the memory of the receiving process, row and column information in the table, the data size to be written, a data string, and a structure address that specifies a history memory area for temporarily recording operation content history within the receiving process, and the destination computer receives the operation request packet, reads data from an area that specifies the table area specified by the receiving process and the operation target address, obtains a memory address corresponding to the row and column specified in the operation request packet, stores the data string from that address, and records the operation target address, row and column information, the written data size, and information about the sending process as operation contents in the history memory area.

[0012] It is considered that the destination computer starts an asynchronous user function in a receiving process when the operation content history is accumulated in the history memory area.

[0013] The destination computer may save the data before it is overwritten in the table area of ​​the receiving process in the history memory area. Effect of the Invention

[0014] According to the present invention thus configured, it is possible to provide a means for notifying a receiving process of the operation contents at low cost in a remote memory write operation using MBCF. [Brief description of the drawings]

[0015] [Figure 1] 1 is a diagram illustrating an overall configuration of a parallel distributed computing system according to an embodiment of the present invention. [Diagram 2]2 is a schematic diagram showing the physical configuration of a source computer and a destination computer of the embodiment. FIG. [Diagram 3] FIG. 2 is a schematic diagram showing an environment in which MBCF_WRITE is used in the embodiment. [Figure 4] 11 is a schematic diagram showing an operation procedure of transmitting an operation request packet, including a packet generation process on the operation request side of the embodiment. FIG. [Diagram 5] 11 is a schematic diagram showing a state in which an operation request packet arrives at a receiving node in the embodiment. FIG. [Figure 6] 13 is a schematic diagram showing MBCF-related processing in a packet reception interrupt routine in a receiving node of the embodiment. FIG. [Figure 7] 13 is a schematic diagram showing a state in which an MBCF_FIFO operation request packet arrives at a receiving node in the embodiment. FIG. [Figure 8] 13 is a schematic diagram showing the state after data is stored in MBCF_FIFO in the receiving node of the embodiment. FIG. [Figure 9] FIG. 13 is a schematic diagram showing the state after an operation history is stored in the receiving node in the embodiment in MBCF_WRITE_wLOG. [Figure 10] 13 is a schematic diagram showing the state after the operation history is stored in MBCF_TABLE_wLOG in the receiving node of the embodiment. FIG. [Explanation of symbols]

[0016] 100 Parallel and distributed computing system 2...calculator 2X...Sender computer 2Y...Destination computer 21 Processor 22 Physical Memory 23 Network Interface Controller (NIC) 3. Data Link DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0017] A parallel distributed computing system 100 according to an embodiment of the present invention will be described below with reference to the drawings.

[0018] <1. System configuration> As shown in Fig. 1(a), a parallel distributed computing system 100 of this embodiment is configured by interconnecting a plurality of computers 2 via a data link 3 and a switching hub device 4. In order to increase the data transfer bandwidth between the computers 2, a parallel distributed computing system may be configured by interconnecting a plurality of computers 2 via a plurality of data links 3 and a switching hub device 4, as shown in Fig. 1(b).

[0019] As shown in FIG. 2, each computer 2 is equipped with a processor 21 having a translation look-aside buffer (TLB), a physical memory 22, and a network interface controller (NIC; Network Interface Card) 23 that can directly access the physical memory 22.

[0020] The parallel distributed computing system 100 does not require any special communication synchronization hardware, but instead uses a general network interface card (NIC) 23 to construct a memory based communication facility (MBCF) that realizes high speed and high performance communication synchronization through remote memory operation using only software. Specifically, the parallel distributed computing system 100 constructs a memory based communication facility (MBCF) using an operating system (OS) stored in the kernel space of each computer 2.

[0021] The parallel distributed computing system 100 has a variety of operation command variations, such as a WRITE command (MBCF_WRITE) for writing to a remote memory and a READ command (MBCF_READ) for reading from a remote memory, as shown below.

[0022] For example, a process of the sending computer 2 (2X) (hereinafter, the sending process) sends an operation request packet including an identifier of an operation target process (hereinafter, the receiving process) that specifies a process of the destination computer 2 (2Y), an operation target address that specifies the memory area of ​​the receiving process, the data size to be written, and a data string, and the destination computer 2 receives the operation request packet and stores the data string in the memory area specified by the receiving process and the operation target address (MBCF_WRITE).

[0023] In addition, the sending process sends an operation request packet including an identifier of the operation target process (hereinafter referred to as the receiving process) that specifies the process of the destination computer 2 (2Y), an operation target address that specifies the memory area of ​​the receiving process, the size of the data to be read, and the data storage area address of the sending process, and the destination computer 2 (2Y) receives the operation request packet, reads out the data string from the memory area specified by the receiving process and the operation target address, and returns it to the data storage area of ​​the sending process (MBCF_READ).

[0024] Here, the procedure of MBCF_WRITE will be described in detail with reference to Figures 3 to 6. Note that the basic procedure is the same for other commands as well.

[0025] Figure 3 shows the environment in which MBCF_WRITE is used, where Pnode1 is the source node (source computer) of the operation request packet, and Pnode2 is the receiving node (destination computer). The processor of the source node creates a packet image in the NIC DMA area of ​​its memory, including a header with delivery information and a payload. The NIC DMA area memory can be directly accessed by the NIC for sending or receiving. When the generation of the packet image for sending is complete, the processor issues an instruction (kick operation) to the NIC to start a sending operation by DMA reading. The receiving node (Pnode2) has a ring buffer for packets that arrive in the NIC DMA area of ​​its memory. The NIC of the receiving node determines whether the packet is addressed to its node (usually by the MAC address), and for packets addressed to itself, creates a copy of the packet in the ring buffer. The NIC then generates a hardware interrupt to notify the processor of the receiving node of the arrival of the packet.

[0026] Next, referring to FIG. 4, the operation procedure for transmitting an operation request packet, including the packet generation process on the operation request side, will be described.

[0027] The sending process (requesting task) prepares parameters consisting of the identifier [Ltask1] of the receiving process (requested task), the address to be operated on [Laddr1] of the receiving process, the access key [AccessKey] for operating the memory space of the receiving process, the MBCF command type [MBCF_WRITE], the data size [n] for remote writing, and the pointer to the beginning of the area where the data to be written is stored [Laddr0]. Then, it calls the MBCF request sending system call with these parameters. Upon receiving the system call, the OS refers to the task table of the sending process and converts the logical task ID indicating the receiving process into a physical task ID [(Pnode2, Ptask5)]. Since the physical task ID includes the physical node ID Pnode2, this information can be used to set the route information (destination information) to the receiving node. If the network used is Ethernet, the MAC address is used as the destination information. This destination information enables the NIC to deliver the operation request packet to the receiving node. The OS then has the NIC send the operation request packet.

[0028] Next, a procedure for receiving an operation request packet at the operation request destination will be described with reference to FIG. 5 and FIG.

[0029] Figure 5 shows the situation when an operation request packet arrives at the receiving node. The operation request packet is carried by the network to the receiving node [Pnode2]. When the packet arrives, the NIC of the receiving node copies the data image of the operation request packet to the ring buffer by DMA, and then generates an interrupt signal to inform the processor of the receiving node that the packet has arrived.

[0030] Figure 6 shows the MBCF-related processing in the packet reception interrupt routine in the receiving node. When a reception interrupt occurs from the NIC, the processor of the receiving node switches control to the packet reception routine, and first executes the low-level packet reception procedure requested by the NIC. After the low-level reception procedure, the packet reception routine first identifies the receiving process from the physical task ID (Ptask5 in the figure). Specifically, it obtains a pointer to the process structure of that process. Next, it checks whether the AccessKey in the operation request packet matches that of the receiving process, and only if they match is memory operation in the memory space of the receiving process permitted. If they match, it switches the context of the memory space to that of the receiving process, and writes the n bytes of data carried in the operation request packet from the logical address (Laddr1) using a store command with user authority, not as a privilege level. Then, it returns the context of the memory space to that at the time of the interrupt occurrence. This is the end of the processing in the interrupt routine.

[0031] Next, the operation of a command (MBCF_FIFO) for registering data in a FIFO queue in the parallel distributed computing system 100 will be described.

[0032] In MBCF_FIFO, the operation of the sending process (requesting task) is almost the same as MBCF_WRITE. The only differences are that the command MBCF_WRITE is replaced with MBCF_FIFO, and the destination address [Laddr1] in the receiving process (receiving task) points to a FIFO structure containing multiple pointers that define the FIFO queue, rather than an area to store data. For this reason, a description of the operation of the sending process (requesting task) of MBCF_FIFO is omitted.

[0033] Figure 7 shows the status of the FIFO structure and FIFO queue in the receiving process (requested task) when an MBCF_FIFO operation request packet arrives at the requested node (receiving computer). The FIFO structure stores four pointers (top, head, tail, and bottom that define the ring buffer (buffer memory area)) and a status flag for the FIFO queue (status flags are omitted in the figure). In the MBCF receive routine in the interrupt routine, the processor reads the pointer and flag in the FIFO structure to be operated on, and stores the data brought in the packet in the buffer area defined by them. After that, it updates the value of the pointer in the FIFO structure. Figure 8 shows the status after storing data in the FIFO queue and updating the pointer in the FIFO structure. These memory operations in the requested node are performed locally and indivisibly. In other words, because they are node-local operations, the overhead cost is low, and it is guaranteed that another MBCF operation request packet will not access the FIFO structure at the same address while an MBCF_FIFO operation request packet is being processed.

[0034] If the buffer specified by the FIFO structure is nearly full and cannot store all the data carried by the MBCF_FIFO operation request packet, all operations of the MBCF receive routine at the request destination are canceled. More specifically, the contents of the FIFO structure are not updated at all, so it is the same as if no data had been added to the FIFO queue.

[0035] In the parallel distributed computing system 100 of this embodiment, a command (MBCF_WRITE_wLOG) is implemented that allows a receiving process to record the operation history of a sending process.

[0036] Specifically, the sending process sends an operation request packet (MBCF_WRITE_wLOG operation request packet) that includes an identifier of the receiving process that specifies the process of the destination computer 2 (2Y), an operation target address that specifies the memory area of ​​the receiving process, the data size to be written, a data string, and a structure address that specifies the history memory area for temporarily recording the operation content history within the receiving process.

[0037] The destination computer 2 (2Y) receives the MBCF_WRITE_wLOG operation request packet and stores the data string in a memory area defined by the receiving process and the operation target address. The destination computer 2 (2Y) also records the operation target address, the written data size, and the sending process information as the operation contents in the history memory area.

[0038] Here, an MBCF FIFO queue is used as a history memory area for temporarily recording operation history. Operations of this FIFO queue are defined and implemented by the above-mentioned MBCF_FIFO and MBCF_FIFO_READ. However, the contents registered in the FIFO queue as a history memory area are not the data carried in the operation request packet, but the contents of the write operation, such as the identifier of the sending process related to the MBCF_WRITE_wLOG operation packet, the operation target address, and the write data size, registered by the destination computer 2 (2Y). In this way, by reusing the FIFO queue as a history memory area (registering operation history instead of data), it is possible to save the effort of developing new functions and also to reduce the amount of code.

[0039] Figure 9 shows the memory status in the receiving process (requested task) when an MBCF_WRITE_wLOG operation request packet arrives at the requested node (destination computer). The data string carried in the operation request packet is stored starting from the address in Laddr1, n bytes, and the FIFO structure at the address in Laddr2 defines a FIFO queue as a history memory area, and the write operation contents are registered in the FIFO queue. As with the FIFO queue for user data registration, the FIFO structure stores four pointers (top, head, tail, and bottom, which define a ring buffer (buffer memory area)) and a status flag for the FIFO queue (status flags are omitted in the figure). In the MBCF receive routine in the interrupt routine, the processor of the destination computer 2 (2Y) reads the pointers and flags in the FIFO structure to be operated on, and writes the operation contents (LOG DATA) to the buffer area (history memory area) defined by these, along with the address to be operated on (Laddr1), the size of the data written (n), and information about the sending process (Ltask 4 ) is stored. Then, the value of the pointer in the FIFO structure is updated. If the FIFO queue overflows and the remote write is to be treated as if it never occurred, the operation details are registered in the FIFO queue first, and only if registration is successful is n bytes of data written starting from the address in Laddr1.

[0040] Furthermore, the destination computer 2 (2Y) where the receiving process exists starts an asynchronous user function in the receiving process that checks the contents of the history memory area and executes the necessary operations when a certain amount of operation content history is accumulated in the history memory area. In addition, the destination computer 2 (2Y) is configured to save data before it is overwritten in the memory area of ​​the receiving process in the history memory area, so that the receiving process can perform rollback of remote writing and various statistical calculations including sum calculations at low cost.

[0041] The usefulness of leaving a log of write operations in the history memory will be specifically explained below. Assume that the receiving process has a vast data area and calculates its statistical data. Assume that the data area is in a table format, with a numerical value stored in each item, and that the receiving process calculates the sum and average of columns and the sum and average of rows and stores them in a separate area as statistical data. In a situation where there is no write operation log, the receiving process does not know which data has been updated, so it needs to recalculate the sum and average for all columns and rows. In contrast, if the address and size of the updated data can be determined from the history memory, it can be determined from that information which row or column needs to be recalculated, so it is possible to limit the rows and columns to be recalculated only to those where updates have been made, which can significantly reduce the processing cost of the receiving process. If the data before the update remains in the history memory, the row and column sums can be calculated by subtracting the value before the update from the sum before the recalculation and adding the new value, so that sums and averages for rows and columns can be calculated without even accessing the entire row or column data.

[0042] Furthermore, in the parallel distributed computing system 100 of this embodiment, not only a table-format write command (MBCF_TABLE) that does not leave an operation history, but also a table-format write command (MBCF_TABLE_wLOG) that leaves an operation history is implemented. These commands are remote write commands that do not directly specify a remote write address, but specify an area in the receiving process where information defining the table is stored as the operation target address, and specify the storage location of the data by row and column information in the table. Note that MBCF_TABLE differs from MBCF_TABLE_wLOG only in that it does not leave an operation history, and MBCF_TABLE_wLOG will be explained below.

[0043] In MBCF_TABLE_wLOG, the sending process sends an MBCF_TABLE_wLOG operation request packet that includes an identifier of the receiving process that specifies the process of the destination computer 2 (2Y), an operation target address that specifies the table area in the memory of the receiving process, information on the rows and columns in the table, the data size to be written, the data column, and a structure address that specifies the history memory area for temporarily recording the operation content history within the receiving process.

[0044] The destination computer 2 (2Y) then receives the MBCF_TABLE_wLOG operation request packet, reads data from the area that specifies the table area specified by the receiving process and the operation target address, obtains memory addresses corresponding to the rows and columns specified by the sending process and stored in the operation request packet, and stores the data column from those addresses. The destination computer 2 (2Y) also records the operation target address, row and column information, the written data size, and the sending process information as the operation contents in the history memory area.

[0045] Here, an MBCF FIFO queue is used as a history memory area for temporarily recording operation history. Operations for this FIFO queue are defined and implemented by the above-mentioned MBCF_FIFO and MBCF_FIFO_READ. However, the contents registered in the FIFO queue as a history memory area are not the data contained in the operation request packet, but the contents of the write operation, such as the identifier of the sending process related to the MBCF_TABLE_wLOG operation packet, the operation target address, and the write data size, registered by the destination computer 2 (2Y). In this way, by reusing the FIFO queue as a history memory area (registering operation history instead of data), it is possible to save the effort of developing new functions and also to reduce the amount of code.

[0046] Figure 10 shows the memory status in the receiving process (requested task) when the MBCF_TABLE_wLOG operation request packet arrives at the requested node (destination computer). The data string carried in the operation request packet is stored as n bytes of cell data in the specified row and column of the table memory area specified by the TABLE structure at the address Laddr1, and the FIFO structure at the address Laddr2 specifies the FIFO queue as the history memory area, and the write operation contents are registered in the FIFO queue. As with the FIFO queue for registering user data, the FIFO structure stores four pointers (top, head, tail, and bottom that specify the ring buffer (buffer memory area)) and the status flag of the FIFO queue (status flags are omitted in the figure). In the MBCF receive routine in the interrupt routine, the processor of the destination computer 2 (2Y) reads the pointer and flag in the FIFO structure of the operation target, and writes the operation target address (Laddr1), row (row1), column (col1) information, written data size (n), and sending process information (Ltask) to the buffer area (history memory area) specified by the pointer and flag as the operation content (LOG DATA). 4 ) is stored. After that, the pointer value in the FIFO structure is updated. If the FIFO queue overflows, and the remote write itself is treated as if it never occurred, the operation details are registered in the FIFO queue first, and only if registration is successful is n bytes of data written to the table specified in the TABLE structure at the address in Laddr1. Since MBCF_TABLE_wLOG is a command to write to a cell in a table, the cell contents themselves are replaced with the data in the request packet. In other words, the TABLE structure contains information not only about the starting address of the table area, but also about the size of each cell and the number of bytes in the entire row, and if n is smaller than the specified cell size, the entire cell is deleted and new n bytes of data are written, and if n is greater than the cell size, the part that protrudes from the cell is not stored.

[0047] Furthermore, the destination computer 2 (2Y) where the receiving process exists starts an asynchronous user function in the receiving process that checks the contents of the history memory area and executes the necessary operations when a certain amount of operation content history is accumulated in the history memory area. In addition, the destination computer 2 (2Y) is configured to save data before it is overwritten in the memory area of ​​the receiving process in the history memory area, so that the receiving process can perform rollback of remote writing and various statistical calculations including sum calculations at low cost.

[0048] The usefulness of leaving a log of write operations in the history memory is specifically explained below. Assume that the receiving process has a vast data area in a table format, and the receiving process calculates the statistical data. Assume that a numerical value is stored in each item of the table, and the receiving process calculates the sum and average of the columns and the sum and average of the rows, and stores them in a separate area as statistical data. In a situation where there is no write operation log, the receiving process does not know which data has been updated, so it needs to recalculate the sum and average for all columns and rows. In contrast, if the row and column of the updated data can be identified from the history memory, it is possible to limit the rows and columns to be recalculated only to those where updates have been made, which can significantly reduce the processing cost of the receiving process. If the data before the update is left in the history memory, the sum of the rows and columns can be calculated by subtracting the numerical value before the update from the sum before the recalculation and adding the new numerical value, so the sum and average for the rows and columns can be calculated without even accessing the data for the entire row or column.

[0049] <2. Effects of this embodiment> According to the parallel distributed computing system 100 of this embodiment configured as described above, in the parallel distributed computing system 100 in which a plurality of computers 2 are interconnected via data links 3 and communicate with each other in synchronization using MBCF, an operation request packet sent by a sending process to a receiving process includes a structure address that specifies a history memory area for temporarily recording the operation content history within the receiving process, and the destination computer receives the operation request packet and records the operation target address, the written data size, and information about the sending process as the operation content in the history memory area, so that the receiving process can recognize the content of the memory operation and perform the necessary processing at low cost.

[0050] Furthermore, the present invention is not limited to the above-described embodiment, and it goes without saying that various modifications are possible without departing from the spirit and scope of the present invention. [Industrial Applicability]

[0051] According to the present invention, it is possible to provide a means for enabling a receiving process, to which a remote memory operation has been performed by an MBCF, to recognize the contents of the memory operation and carry out the necessary processing at low cost.

Claims

1. A parallel and distributed computing system in which a plurality of computers each having a processor with a translation lookaside buffer (TLB), a physical memory, and a network interface controller (NIC) capable of directly accessing the physical memory are interconnected via a data link, a process of a source computer (hereinafter, a sending process) transmits an operation request packet including an identifier of an operation target process (hereinafter, a receiving process) that specifies a process of a destination computer, an operation target address that specifies a memory area of ​​the receiving process, a data size to be written, a data string, and a structure address that specifies a history memory area for temporarily recording an operation content history in the receiving process; A parallel distributed computing system in which the destination computer receives the operation request packet, stores the data string in a memory area defined by the receiving process and the operation target address, records the operation target address, the written data size, and information about the sending process as operation contents in the history memory area, and backs up the data before being overwritten in the memory area of ​​the receiving process to the history memory area.

2. 2. The parallel distributed computing system according to claim 1, wherein the computer on which said receiving process exists invokes an asynchronous user function in said receiving process when operation content history is accumulated in said history memory area.

3. A parallel distributed computing system in which a plurality of computers each having a processor with a translation lookaside buffer (TLB), a physical memory, and a network interface controller (NIC) capable of directly accessing the physical memory are interconnected via a data link, the sending process transmits an operation request packet including an identifier of an operation target process (hereinafter, receiving process) that specifies a process of a destination computer, an operation target address that specifies a table area in the memory of the receiving process, information on rows and columns in the table, a data size to be written, a data string, and a structure address that specifies a history memory area for temporarily recording an operation content history in the receiving process; a destination computer receives the operation request packet, reads data from an area specifying a table area specified by the receiving process and the operation target address, obtains a memory address corresponding to the row and column specified in the operation request packet, stores the data column from that address, and records the operation target address, row and column information, the written data size, and information about the sending process as operation contents in the history memory area.

4. 4. The parallel distributed computing system according to claim 3, wherein said destination computer starts an asynchronous user function in a receiving process when the operation content history is accumulated in said history memory area.

5. 5. The parallel distributed computing system according to claim 3, wherein said destination computer saves data before overwriting the table area of ​​said receiving process in said history memory area.

Citation Information

Patent Citations

  • Session state log sampling device

    JP1994004363A