WO2022260176A1 - 情報処理装置、情報処理システム及び情報処理方法 - Google Patents

情報処理装置、情報処理システム及び情報処理方法 Download PDF

Info

Publication number
WO2022260176A1
WO2022260176A1 PCT/JP2022/023519 JP2022023519W WO2022260176A1 WO 2022260176 A1 WO2022260176 A1 WO 2022260176A1 JP 2022023519 W JP2022023519 W JP 2022023519W WO 2022260176 A1 WO2022260176 A1 WO 2022260176A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
graph
information processing
graphs
processing device
Prior art date
Application number
PCT/JP2022/023519
Other languages
English (en)
French (fr)
Inventor
大輔 谷脇
Original Assignee
株式会社 Preferred Networks
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社 Preferred Networks filed Critical 株式会社 Preferred Networks
Priority to JP2023527951A priority Critical patent/JP7349594B2/ja
Publication of WO2022260176A1 publication Critical patent/WO2022260176A1/ja
Priority to US18/533,491 priority patent/US20240127028A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Definitions

  • the present disclosure relates to an information processing device, an information processing system, and an information processing method.
  • the client used by the user sends the content to be calculated to the server
  • the server executes the calculation
  • the user receives the calculation result.
  • a user transmits data to a provider via an Internet line, performs appropriate processing, and then receives the processing result from the provider.
  • a cluster of processors such as GPUs (Graphics Processing Units) is often used as a server when performing operations with a large amount of data.
  • GPUs Graphics Processing Units
  • a plurality of operations sent from a plurality of clients are, for example, reordered according to the priority of tasks and queues, or assigned to a server.
  • the calculation cost required for each task is high and the calculation time may be long. Effective utilization of resources is required.
  • This disclosure provides a model usage method that effectively utilizes computer resources.
  • an information processing device includes one or more memories and one or more processors.
  • the one or more processors receive information on a plurality of graphs from one or more second information processing devices, and among the plurality of graphs, a plurality of graphs that can be processed simultaneously using a graph neural network model. is input to the graph neural network model and processed simultaneously to obtain a processing result for each of the plurality of graphs that can be processed at the same time; and transmitting to the second information processing device that has received the data.
  • FIG. 1 is a diagram schematically showing an information processing system according to an embodiment
  • FIG. FIG. 4 is a diagram for explaining graph processing at the same timing according to an embodiment
  • FIG. 4 is a diagram for explaining the timing of graph processing at the same timing according to an embodiment
  • 1 is a diagram schematically showing an information processing system according to an embodiment
  • FIG. 4 is a diagram for explaining the timing of graph processing at the same timing according to an embodiment
  • 1 is a diagram schematically showing an information processing system according to an embodiment
  • FIG. 1 is a diagram schematically showing an information processing system according to an embodiment
  • FIG. 1 is a diagram schematically showing the configuration of an information processing system according to one embodiment.
  • the information processing system 1 is a system that includes a server 10 (an example of a first information processing device) and executes processing in the server 10 based on a request from a client 20 (an example of a second information processing device).
  • the server 10 and client 20 are connected by a wired or wireless line such as an Internet line.
  • an intermediate server such as a proxy server may also be provided.
  • the data is not limited to being sent directly from the client 20 to the server 10, but may be sent via another device.
  • the client 20 may store data in a file server or the like, and notify the server 10 of the storage location so that the server 10 reads the data requested by each client 20 from the file server or the like.
  • the server 10 may directly transmit it to the client 20, or may transmit it via another device.
  • the client 20 may acquire the calculation result via a file server or the like.
  • the server 10 is, for example, an arithmetic server configured with an accelerator that uses a plurality of arithmetic cores to perform the same processing at the same timing.
  • the accelerator has, for example, a GPU, and uses GPGPU (General-Purpose computing on GPU) technology to execute processing based on the same calculation at the same timing with a plurality of calculation cores.
  • GPGPU General-Purpose computing on GPU
  • the server 10 activates one program in the host of the GPU, and according to this program, the same processing based on the same clock is executed on multiple data in multiple operation cores SIMD (Single Instruction, Multiple Data) may have a configuration of
  • SIMD Single Instruction, Multiple Data
  • the server 10 may have a configuration capable of implementing SIMD operations in a configuration other than the GPU.
  • this server 10 receives different data from a plurality of clients 20 (solid lines), executes computations in parallel processing, and transmits the computation results to each client 20 (dotted lines).
  • the server 10 uses a neural network model (for example, GNN: Graph Neural Network) to which graph information can be input as a trained model.
  • a neural network model for example, GNN: Graph Neural Network
  • the processor develops an NNP (Neural Network Potential) model, which is a neural network model trained to output information about energy when graph information of an atom is input, and using this NNP model , to process multiple graph information about atoms in parallel.
  • the graph information includes information on multiple atoms.
  • Atom information may include, for example, information about the types of atoms that make up a substance and the coordinates of the atoms (atomic positions).
  • a graph is formed using this atomic information as nodes and atomic connections as edges. It infers physical property information (eg, energy, force, etc.) and transmits it to the client 20 .
  • the server 10 may process or analyze the information output from the NNP model and transmit the information to the client 20 .
  • graph information that shows the atomic arrangement of substances is input.
  • the server 10 distinguishes between graph information received from a certain client 20 and graph information received from a different client 20 and inputs them to the trained model.
  • a trained model performs operations on each piece of graph information so as not to affect operations on other graphs.
  • the number of nodes (predetermined number of nodes N) that can be processed at the same timing is set in advance by its resources.
  • the server 10 has an upper limit on the amount of data that can be collectively processed at one time due to its resources, for example, the amount of memory, the amount of cores, or other computing power, typically the amount of memory. can be set.
  • the number of nodes there is a possibility that batch processing cannot be executed due to the number of edges due to the memory capacity.
  • the number of nodes is used as an example, but this may be the number of nodes, the number of edges, the number based on the number of nodes, the number based on the number of edges, or the number of nodes. and the number of edges", or any other quantity in the graph calculation.
  • the number of nodes n1 of the first graph G1 + the number of nodes n2 of the second graph G2 ⁇ the predetermined number of nodes N, but this is the number of edges e1 of the first graph G1 + the number of nodes G2 of the second
  • N may be determined by the required computational resources (eg, memory amount, number of cores) assumed from the number of nodes.
  • E may be determined by the required computing resources assumed from the number of edges.
  • X may be determined by the total sum of the number of nodes and the number of edges, the weighted addition of the number of nodes and the number of edges, or the necessary computational resources assumed from the number of edges and the number of nodes.
  • the sum may be calculated after using an appropriate transformation.
  • Predetermined resource threshold value F for the number of nodes, etc. may be f is, for example, a function for acquiring resources required for computation of the graph in terms of the number of nodes, and is a linear or nonlinear function.
  • the same definition can be applied when using the number of edges and when using both the number of nodes and the number of edges.
  • the processes of the first graph G1 and the second graph G2 are executed at the same timing, and the first substance and the second substance Perform analysis or inference processing regarding
  • FIG. 2 is a diagram for explaining an example of graph processing in the server 10.
  • the server 10 for example, expands the information on the graph acquired from each client 20 into a matrix.
  • This expansion method may be any method as long as it is a format that can appropriately perform graph calculations in a trained model.
  • the server 10 generates a sparse matrix (an example of input information to the model) connecting a matrix containing the adjacency matrix of the first graph G1 and a matrix containing the adjacency matrix of the second graph G2.
  • a sparse matrix an example of input information to the model
  • it may be generated in an appropriately converted representation in consideration of memory resources and computation time, and a form in which computation can be performed appropriately on this representation. For example, "0" in the sparse matrix may be appropriately deleted, and the position of the element and the content of the element may be linked and converted to a description.
  • n1+n2 ⁇ N.
  • the trained model used for NNP is, for example, one that obtains the result by calculating the row and column elements that are non-zero values in the matrix.
  • the information of the first graph G1 obtained from the first client 20A and the information of the second graph G2 obtained from the second client 20B are combined. Operations can be performed without affecting each other.
  • the server 10 or the client 20 Since calculations are performed for each graph without affecting each other, for example, the server 10 or the client 20 finally obtains the energy of each graph by adding the energy values of the nodes belonging to each graph. can do.
  • the server 10 can synchronously process the information for each atom by allocating the calculation for each atom, which is the node of each graph, to the calculation core.
  • a trained model generally does not change the number of hidden layers to be operated by the number of nodes. Therefore, by allocating a calculation core to each node, it is possible to acquire physical property information at the same timing regardless of the numerical values of n1 and n2.
  • the server 10 may be in a form in which calculations can be assigned so that batch processing can be performed appropriately. Therefore, it is not necessary for all nodes to be calculated at the same timing, and it is sufficient if the calculation can be performed at the same timing in an appropriate unit of processing. Batch processing can improve the throughput as a whole.
  • the above unit of operation may be determined appropriately by the server 10, or may be determined appropriately by an accelerator provided in the server 10, for example. Alternatively, it may be determined by the user based on the description of the program, or may be determined by the compiler in the execution file or intermediate file. Based on these determination methods, the predetermined number of nodes N may be defined.
  • the server 10 transmits the information about the first graph and the second graph at the same timing to the trained models. , and perform operations without interfering with each other.
  • the information processing system 1 can process the graph information received from different clients 20 without wasting resources, and acquire the physical property information of the first substance and the second substance. becomes possible.
  • the matrix in FIG. 2 may be configured with four matrices: atom type (one), coordinates (three), and adjacency matrix (one).
  • atom type one
  • coordinates three
  • adjacency matrix one
  • the batch processing of graphs described above is merely an example, and a plurality of graphs may be collectively processed using another method.
  • the technique described below may be used. https://www.slideshare.net/pfi/20190930-pfn-internship-2019-extension-of-chainerchemistry-for-large-amp-sparse-graphkenshin-abe
  • Fig. 3 is a diagram showing a more specific example.
  • a third graph G3 having a third node number n3 relating to a third substance having a third atomic number is processed in parallel from the third client 20C.
  • black dots indicate data transmission sources, and arrows indicate data transmission destinations.
  • each of the plurality of clients 20 sends graph-related data to the server 10 (S100). It should be noted that this time may be the same or may be different. Also, the time t0 may be the time when the server 10 confirms the reception from the client 20. FIG.
  • the graphs that can be processed collectively are input to the trained model, and if collective processing is not possible, the graph information obtained from one client 20 is input to the trained model ( S104).
  • the first graph G1 and the third graph G3 can be processed at the same timing, so these two graphs are collectively processed.
  • the server 10 When the calculations for the first graph G1 and the third graph G3 are completed, the server 10 appropriately transmits the corresponding processing results (physical property information, etc.) to the client 20 (S106). For example, the processing result (physical property information etc.) of the first graph G1 is transmitted to the first client 20A, and the processing result (physical property information etc.) of the third graph G3 is transmitted to the third client 20C.
  • the server 10 After finishing the processing of the first graph G1 and the third graph G3, the server 10 starts processing the second graph G2 (S108).
  • the client 20 that has received the processing result from the server 10 may send information on the next graph to the server 10 (S110).
  • the server 10 may place the received information in a queue and wait.
  • the server 10 After finishing the processing of the second graph G2, the server 10 similarly transmits the processing result of the second graph G2 to the second client 20B (S112).
  • the server 10 starts processing the first graph G1 and the third graph G3 (S114), the second client 20B transmits the information of the next second graph G2 (S116), and the server 10 (S118) is repeated as many times as necessary.
  • the client 20 transmits graph information having the same number of nodes, it is not limited to this.
  • the first client 20A may make the number of nodes in the first graph G1 to be transmitted the first time different from the number of nodes in the first graph G1' to be transmitted the second time.
  • the combination of graphs to be processed at the same timing may change at appropriate timing.
  • the same client may send information about multiple graphs.
  • the calculation is started from the combination of the first graph G1 and the third graph G3, but it is not limited to this.
  • the server 10 may start with computing the second graph G2.
  • priority may be given to the combination including the graph information received first.
  • the calculation is started from the combination including the graph with the highest priority, the combination with the highest sum of priorities, etc. good too.
  • This graph processing may be, for example, processing including computation of a graph neural network model.
  • This neural network model may also relate to NNP.
  • the processing result for each of the information in the plurality of graphs may be information after additional processing by the server 10 on the information calculated using the neural network model.
  • the processing result may be information obtained by using the graph neural network model multiple times.
  • the processing of the graph may be processing related to atomic simulation other than NNP.
  • multiple graphs that can be processed simultaneously are selected from multiple pieces of graph information received from the client using a graph neural network model.
  • “simultaneously processing” means executing at least some or all of the processing related to a plurality of graphs at the same timing using one graph neural network (some or all of the processing is collectively executed). ), or inputting one piece of input information generated from a plurality of graphs (for example, one graph that summarizes a plurality of graphs) to one graph neural network.
  • the plurality of graphs may be selected based on server resources (eg computing power, storage capacity, etc.).
  • Calculations using the NNP model involve a large amount of calculations because they target information on a large number of atoms. Therefore, by selecting graphs to be processed based on computational resources as in the present embodiment, server resources can be effectively utilized.
  • the server when the server receives graph information with 40 nodes and graph information with 60 nodes from multiple clients, it executes the processing of these two graphs in parallel as described above. On the other hand, when the server receives the graph information of 40 nodes and the graph information of 70 nodes, the number of nodes exceeds the predetermined number of nodes. Processing may be performed sequentially without selecting a graph, such as processing a graph with 70 nodes.
  • the order of the graphs is changed in the server 10 that executes the calculation.
  • FIG. 4 is a diagram showing an outline of the information processing system 1 according to one embodiment.
  • the information processing system 1 includes a proxy server 30 (an example of a third information processing device) as a first intermediate server.
  • the proxy server 30 is connected between the client 20 and the server 10. That is, the server 10 acquires information on the order and combination of graph processing and graph information to be processed from the plurality of clients 20 via the proxy server 30 .
  • the server 10 may have a queue that executes FIFO (First-In First-Out) processing.
  • the server 10 enqueues and dequeues at the appropriate times. Also, as another example, the server 10 may enqueue and dequeue upon request of the proxy server 30 .
  • FIFO First-In First-Out
  • the client 20 sends to the proxy server 30 a graph calculation request and graph information that the server 10 wants to execute calculations.
  • the proxy server 30 determines and detects a combination of graphs to be processed in the same accelerator at the same timing, and transmits the combination to the server .
  • graph information may be transmitted together.
  • Server 10 enqueues based on this request. Then, the server 10 executes arithmetic processing by dequeuing at appropriate timing.
  • the proxy server 30 may send an enqueue request to the server 10 for tasks related to graphs in proper order and combination.
  • the proxy server 30 may then send the dequeue request to the server 10 so that the server 10 may execute the operation.
  • this dequeue request from proxy server 30 may be a flush request to server 10 .
  • FIG. 5 is a diagram showing a non-limiting example of processing timings according to the present embodiment.
  • the basic configuration is the same as in the case of FIG.
  • each client 20 sends graph information and a computation request to the proxy server 30 (S200).
  • the proxy server 30 confirms the number of nodes in each graph, and based on this number of nodes, transmits the computation task to the server 10, and the server 10 enqueues the received task (S202).
  • proxy server 30 may send an enqueue request to server 10, and server 10 may enqueue based on this request (S202). Then, the proxy server 30 may send a dequeue request to the server 10 so that the task may be dequeued in the server 10 and graph arithmetic processing may be executed (S204).
  • the server 10 manages graphs processed at the same timing as described in the above embodiment as one queue.
  • the operation requests for the first graph G1 and the third graph G3 are enqueued as one queue, and then the operation requests for the second graph G2 are enqueued as one queue.
  • the order is determined based on any suitable method, as described above.
  • the server 10 (calculation server) executes processing according to the enqueued queue (S206).
  • the server 10 may dequeue at an appropriate timing to execute FIFO processing, or the proxy server 30 may send a dequeue request and the server 10 may dequeue and start arithmetic processing.
  • Transmission of graph-related data from the client 20 to the server 10 or from the proxy server 30 to the server 10 should be executed at an appropriate timing.
  • the graph information itself is transmitted from the client 20 or the proxy server 30 to a storage or the like, and the server 10 acquires this graph information based on the dequeued task and starts calculation. good too. Further, in this case, the server 10 may prefetch data based on the enqueued information.
  • the server 10 transmits the processing result to the proxy server 30 and notifies that the arithmetic processing is finished (S206).
  • the processing result may be transmitted to a file server (not shown) or the like, or may be transmitted directly from the server 10 to each client 20.
  • the proxy server 30 that has received the computation end notification transmits the computation result to the appropriate client 20 and executes the next process according to the queue (S208). For example, in the above state, there is a processing queue of the second graph G2, so the next dequeue request may be transmitted from the proxy server 30 to the server 10 at this timing.
  • the server 10 dequeues tasks related to the second graph G2 and executes processing (S210). As described in the previous paragraph, the server 10 may dequeue in response to a request from the proxy server 30, or may dequeue at an appropriate timing after the transmission of the processing result of S206 is completed.
  • the proxy server 30 makes a dequeue request, the order of sending the processing result and the dequeue request is arbitrary, and they may be sent one behind the other or may be sent at the same time.
  • the first client 20A and the third client 20C send the next processing request to the proxy server 30 as necessary (S212).
  • the processing request may be issued not at this timing, but at a timing during or before or after execution of the previous processing (S206).
  • the proxy server 30 appropriately determines the combination based on the number of nodes in the graph, and the server 10 sequentially enqueues based on the graph information received from the proxy server 30 .
  • the server 10 Upon completion of the processing of the second graph G2, the server 10 notifies the proxy server 30 of the end of processing (S214), and the proxy server 30 transmits the computation result to the second client 20B.
  • the proxy server 30 may transmit a dequeue request to the server 10 at this timing.
  • the server 10 may appropriately dequeue and execute processing.
  • each of the clients 20 may transmit to the proxy server 30 computation requests relating to a plurality of pieces of graph information.
  • the proxy server 30 appropriately determines the graph combination and processing order, and the server 10 enqueues based on this processing order. This is the same in the above-described embodiment, and multiple clients 20 may transmit information on multiple graphs to the server 10 at time t0.
  • the proxy server 30 may, for example, determine the order of graph arithmetic processing so that the processing from the same client 20 is as inconsecutive as possible, and the processing from the high-priority client 20 ends as early as possible,
  • the order of arithmetic processing of the graph may be determined so as to suppress waste of resources in the server 10.
  • the server 10 by using a queue via the proxy server 30, it is possible to cause the server 10 to execute arithmetic processing in an appropriate order and in an appropriate combination of graphs.
  • FIG. 6 is a diagram showing another example of this embodiment.
  • the information processing system 1 may include a plurality of servers 10.
  • the proxy server 30 may distribute the processing in the order in which the tasks were dequeued in the server 10 .
  • the proxy server 30 appropriately combines and distributes graph information received from a plurality of clients 20 based on the performance of each server 10, assigns tasks to each server 10, The server 10 may enqueue the dispatched tasks.
  • requests with a large number of atoms (number of nodes) to be calculated may be allocated.
  • a request with a smaller number of atoms (nodes) to be calculated may be allocated.
  • FIG. 7 is a diagram showing an outline of the information processing system 1 according to one embodiment.
  • the information processing system 1 includes a plurality of servers 10, and a load balancer 40 (an example of a fourth information processing device) as a second intermediate server between the proxy server 30 and the plurality of servers 10.
  • FIG. 40 an example of a fourth information processing device
  • a plurality of servers 10 are classified into a plurality of server groups 50 according to performance.
  • the server group 50 is classified, for example, by the number of graph nodes that can be processed at the same timing in the server 10 . Further, the server group 50 may be classified according to the processing speed of the servers 10. FIG.
  • the allocation of the plurality of servers 10 to the server group 50 is not limited to the above.
  • the servers 10 can be grouped based on a condition that the proxy server 30 wants to distribute processing.
  • the server group 50 is in charge of processing requests with a small number of nodes, and the server group 50 is in charge of processing requests with a large number of nodes.
  • the servers 10 having the same performance may be distributed, such as distributing.
  • a load balancer 40 may be provided for each server group 50 .
  • the proxy server 30 distributes the graph processing requests received from the client 20 based on the performance of the servers 10 constituting the server group 50 .
  • the proxy server 30 may distribute to each server group 50 based on the number of nodes that can be processed at the same timing in the server 10, or may distribute based on the processing speed of the server 10.
  • the proxy server 30 may distribute tasks to each load balancer 40.
  • the proxy server 30 selects appropriate graph-related information and sends a processing request (task) to each load balancer 40 .
  • the load balancer 40 assigns this task to the servers 10 belonging to the server group 50 that it is in charge of, thereby causing the servers 10 to execute arithmetic processing.
  • the load balancer 40 allocates a suitable server 10 for processing from the server group 50, and transmits information on the graph to the allocated server 10.
  • the server 10 receives the graph information, it appropriately acquires the graph data and executes processing.
  • the server 10 may have a queue in the same manner as described above, and may enqueue tasks related to graph processing distributed to the load balancer 40 . Then, the server 10 may process the graph in order according to this queue. After processing, the load balancer 40 may be notified that the processing has ended. If there is a next computation task, the server 10 proceeds to execute the next computation.
  • the information processing system 1 first appropriately distributes the graph information received from the client 20 in the proxy server 30, which is the first intermediate server.
  • the proxy server 30 may distribute to each load balancer 40 based on the distributed information.
  • the load balancer 40 allocates processing instructions to the respective servers 10 and notifies appropriate servers 10 of the processing instructions in order to distribute the load of the multiple servers 10 .
  • the server 10 appropriately executes the processing related to the graph, and notifies the load balancer 40 that the processing has been completed after the processing. If necessary, the server 10 enqueues the processing request in a queue, and after processing is completed, if there is a task in the queue, it dequeues and executes the next processing.
  • the load balancer 40 may monitor each of the servers 10 and detect that processing has ended, or may distribute the graph processing task to each server according to the processing status of the servers 10 .
  • the load balancer 40 may assign the next task related to graph processing to the server 10 that first notified the processing request.
  • the server 10 may execute processing sequentially by enqueuing tasks as needed and dequeuing them after the current task is finished.
  • the load balancer 40 may hold a buffer and have a queue in this buffer, and may allocate a task by dequeuing to the server 10 that has finished processing.
  • the load balancer 40 may assign tasks to appropriate servers 10.
  • the load balancer 40 by providing the load balancer 40, it is possible to distribute the load and allow the server 10 to execute processing more appropriately in terms of load and time.
  • the server 10 of the second and third embodiments may also execute computations using a neural network model with graphs as input.
  • the neural network model be configured as a neural network model that does not affect other independent graphs.
  • This neural network model may be used for NNP, the graph information may be material information, and the nodes may correspond to the atomic structure of the material.
  • the number of nodes corresponds to, for example, the number of atoms, and servers 10 that execute operations are assigned according to this number of atoms.
  • the neural network model used for NNP is developed, and the information about the input graph is sequentially input to the input layer of this neural network model, thereby continuing the processing. becomes possible. By fixing the trained model to be used in this way, it is possible to avoid wasting time in forming the model.
  • the provider when providing NNP, the provider can reduce the overall load and cost, and the user can reduce the economic cost and time cost. can be reduced.
  • the server with a time billing system or a calculation amount billing system it is possible to reduce costs in terms of both money and time because it is possible to collectively calculate aggregated graphs. becomes.
  • graph data was sent and received.
  • other required data may be sent along with it as metadata.
  • the number of atoms constituting a substance (the number of nodes in a graph used for calculation) is given as metadata, and each process is executed by reading the number of nodes in this metadata in various servers. good.
  • the metadata may also include information about atom types. This metadata may be used as a condition for distributing graphs to be processed by the same accelerator at the same timing as described above, or as a condition for distributing servers that execute processing on the graph when there are a plurality of servers.
  • the server may include the proxy server 30 and the calculation server (server 10), and in addition, the load balancer 40 may be included.
  • the server may include a load balancer 40 and an arithmetic server (server 10).
  • the functions of the proxy server 30 and the load balancer 40 may be realized by one information processing device.
  • these servers may be connected by an Internet line or the like and integrated as one server.
  • processing is allocated from the proxy server to the server via the load balancer, but it is not limited to this form.
  • a configuration may be adopted in which a plurality of proxy servers are provided and one or a plurality of load balancers are provided between these proxy servers and clients.
  • this load balancer it is possible to distribute the load of the proxy server.
  • data may be managed by KVS (Key-Value Store) in order to have the same state in multiple proxy servers.
  • All of the above trained models may be concepts that include, for example, models that have been trained as described and further distilled by a general method.
  • each device in the information processing system 1 may be configured with hardware, or may be configured with a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), or the like. It may be configured by information processing of software (program) to be executed.
  • software information processing software that realizes at least a part of the functions of each device in the above-described embodiments can be transferred to a flexible disk, CD-ROM (Compact Disc-Read Only Memory), or USB (Universal Serial Bus) memory or other non-temporary storage medium (non-temporary computer-readable medium) and read into a computer to execute software information processing.
  • the software may be downloaded via a communication network.
  • information processing may be performed by hardware by implementing software in a circuit such as an ASIC (Application Specific Integrated Circuit) or FPGA (Field Programmable Gate Array).
  • the type of storage medium that stores the software is not limited.
  • the storage medium is not limited to a detachable one such as a magnetic disk or an optical disk, and may be a fixed storage medium such as a hard disk or memory. Also, the storage medium may be provided inside the computer, or may be provided outside the computer.
  • FIG. 8 is a block diagram showing an example of the hardware configuration of each device (each device in the information processing system 1) in the above-described embodiment.
  • Each device includes, for example, a processor 71, a main storage device 72 (memory), an auxiliary storage device 73 (memory), a network interface 74, and a device interface 75, which are connected via a bus 76.
  • a processor 71 for example, a main storage device 72 (memory), an auxiliary storage device 73 (memory), a network interface 74, and a device interface 75, which are connected via a bus 76.
  • a bus 76 may be implemented as a computer 7 integrated with the
  • the computer 7 in FIG. 8 has one of each component, but may have a plurality of the same components.
  • the software may be installed in multiple computers, and each of the multiple computers may execute the same or different processing of the software. good too. In this case, it may be in the form of distributed computing in which each computer communicates via the network interface 74 or the like to execute processing.
  • each device in the above-described embodiment is a system that realizes functions by one or more computers executing instructions stored in one or more storage devices. may be configured.
  • the information transmitted from the terminal may be processed by one or more computers provided on the cloud, and the processing result may be transmitted to the terminal.
  • each device in the above-described embodiment is executed in parallel using one or more processors or using multiple computers via a network. good too. Also, various operations may be distributed to a plurality of operation cores in the processor and executed in parallel. Also, part or all of the processing, means, etc. of the present disclosure may be executed by at least one of a processor and a storage device provided on a cloud capable of communicating with the computer 7 via a network. Thus, each device in the above-described embodiments may be in the form of parallel computing by one or more computers.
  • the processor 71 may be an electronic circuit (processing circuit, processing circuitry, CPU, GPU, FPGA, ASIC, etc.) including a computer control device and arithmetic device. Also, the processor 71 may be a semiconductor device or the like including a dedicated processing circuit. The processor 71 is not limited to an electronic circuit using electronic logic elements, and may be realized by an optical circuit using optical logic elements. Also, the processor 71 may include arithmetic functions based on quantum computing.
  • the processor 71 can perform arithmetic processing based on the data and software (programs) input from each device, etc. of the internal configuration of the computer 7, and output the arithmetic result and control signal to each device, etc.
  • the processor 71 may control each component of the computer 7 by executing the OS (Operating System) of the computer 7, applications, and the like.
  • Each device in the above-described embodiment may be realized by one or more processors 71.
  • the processor 71 may refer to one or more electronic circuits arranged on one chip, or may refer to one or more electronic circuits arranged on two or more chips or two or more devices. You can point When multiple electronic circuits are used, each electronic circuit may communicate by wire or wirelessly.
  • the main storage device 72 is a storage device that stores instructions and various data to be executed by the processor 71 , and the information stored in the main storage device 72 is read by the processor 71 .
  • Auxiliary storage device 73 is a storage device other than main storage device 72 . These storage devices mean any electronic components capable of storing electronic information, and may be semiconductor memories. The semiconductor memory may be either volatile memory or non-volatile memory.
  • a storage device for storing various data in each device (each device in the information processing system 1) in the above-described embodiment may be realized by the main storage device 73 or the auxiliary storage device 73, and is built in the processor 71. It may be realized by an internal memory.
  • the storage unit in the above-described embodiments may be realized by the main storage device 72 or the auxiliary storage device 73.
  • processors may be connected (coupled) to one storage device (memory), or a single processor may be connected.
  • a plurality of storage devices (memories) may be connected (coupled) to one processor.
  • Each device in the above-described embodiment is composed of at least one storage device (memory) and a plurality of processors connected (coupled) to this at least one storage device (memory).
  • at least one of the plurality of processors may include a configuration connected (coupled) to at least one storage device (memory).
  • this configuration may be realized by storage devices (memory) and processors included in a plurality of computers.
  • a configuration in which a storage device (memory) is integrated with a processor for example, a cache memory including an L1 cache and an L2 cache
  • a cache memory including an L1 cache and an L2 cache
  • the network interface 74 is an interface for connecting to the communication network 8 wirelessly or by wire. As for the network interface 74, an appropriate interface such as one conforming to existing communication standards may be used. The network interface 74 may exchange information with the external device 9A connected via the communication network 8.
  • FIG. The communication network 8 may be any one of WAN (Wide Area Network), LAN (Local Area Network), PAN (Personal Area Network), etc., or a combination thereof. It is sufficient if information can be exchanged between them. Examples of WAN include the Internet, examples of LAN include IEEE802.11 and Ethernet (registered trademark), and examples of PAN include Bluetooth (registered trademark) and NFC (Near Field Communication).
  • the device interface 75 is an interface such as USB that directly connects with the external device 9B.
  • the external device 9A is a device connected to the computer 7 via a network.
  • External device 9B is a device that is directly connected to computer 7 .
  • the external device 9A or the external device 9B may be an input device.
  • the input device is, for example, a device such as a camera, microphone, motion capture, various sensors, a keyboard, a mouse, or a touch panel, and provides the computer 7 with acquired information.
  • a device such as a personal computer, a tablet terminal, or a smartphone including an input unit, a memory, and a processor may be used.
  • the external device 9A or the external device 9B may be, for example, an output device.
  • the output device may be, for example, a display device such as LCD (Liquid Crystal Display), CRT (Cathode Ray Tube), PDP (Plasma Display Panel), or organic EL (Electro Luminescence) panel.
  • a speaker or the like for output may be used.
  • a device such as a personal computer, a tablet terminal, or a smartphone including an output unit, a memory, and a processor may be used.
  • the external device 9A or the external device 9B may be a storage device (memory).
  • the external device 9A may be a network storage or the like, and the external device 9B may be a storage such as an HDD.
  • the external device 9A or the external device 9B may be a device having a part of the functions of the components of each device (each device in the information processing system 1) in the above-described embodiment. That is, the computer 7 may transmit or receive part or all of the processing results of the external device 9A or the external device 9B.
  • the expression "at least one (one) of a, b and c" or “at least one (one) of a, b or c" includes any of a, b, c, a-b, ac, b-c, or a-b-c. Also, multiple instances of any element may be included, such as a-a, a-b-b, a-a-b-b-c-c, and so on. It also includes the addition of other elements than the listed elements (a, b and c), such as having d such as a-b-c-d.
  • connection and “coupled” when used, they refer to direct connection/coupling, indirect connection/coupling , electrically connected/coupled, communicatively connected/coupled, operatively connected/coupled, physically connected/coupled, etc. intended as a term.
  • the term should be interpreted appropriately according to the context in which the term is used, but any form of connection/bonding that is not intentionally or naturally excluded is not included in the term. should be interpreted restrictively.
  • the physical structure of element A is such that it is capable of performing operation B has a configuration, including that a permanent or temporary setting/configuration of element A is configured/set to actually perform action B good.
  • element A is a general-purpose processor
  • the processor has a hardware configuration that can execute operation B, and operation B can be performed by setting a permanent or temporary program (instruction). It just needs to be configured to actually run.
  • the element A is a dedicated processor or a dedicated arithmetic circuit, etc., regardless of whether or not control instructions and data are actually attached, the circuit structure of the processor actually executes the operation B. It just needs to be implemented.
  • finding a global optimum finding an approximation of a global optimum, finding a local optimum, and finding a local optimum It includes approximations of values and should be interpreted accordingly depending on the context in which the term is used. It also includes stochastically or heuristically approximating these optimum values.
  • each piece of hardware may work together to perform the predetermined processing, or a part of the hardware may perform the predetermined processing. You may do all of Also, some hardware may perform a part of the predetermined processing, and another hardware may perform the rest of the predetermined processing.
  • the hardware that performs the first process and the hardware that performs the second process may be the same or different. In other words, the hardware that performs the first process and the hardware that performs the second process may be included in the one or more pieces of hardware.
  • hardware may include an electronic circuit or a device including an electronic circuit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Abstract

[課題]計算機のリソースを有効に活用する。 [解決手段]情報処理装置は、1又は複数のメモリと、1又は複数のプロセッサと、を備える。前記1又は複数のプロセッサは、1又は複数の第2情報処理装置から複数のグラフの情報を受信することと、前記複数のグラフのうち、グラフニューラルネットワークモデルを用いて同時に処理可能な複数のグラフの情報を、前記グラフニューラルネットワークモデルに入力して同時に処理することで、前記同時に処理可能な複数のグラフのそれぞれに対する処理結果を取得することと、前記処理結果を、対応するグラフの情報を送信した第2情報処理装置に送信することと、を実行可能に構成される。

Description

情報処理装置、情報処理システム及び情報処理方法
 本開示は、情報処理装置、情報処理システム及び情報処理方法に関する。
 今日、ユーザが用いるクライアントから演算したい内容をサーバへと送信し、サーバにて演算を実行してユーザがこの演算結果を受信するシステムが広く用いられている。例えば、ユーザがインターネットの回線を介してプロバイダにデータを送信し、適切な処理をした後にプロバイダから処理結果を受信するシステムがある。
 データ量の多い演算を実行する場合、GPU(Graphics Processing Unit)等のプロセッサのクラスタをサーバとして用いることが多い。このようなGPUコアをクラスタとして用いる場合、複数のクライアントから送信される複数の演算は、例えば、タスク、キューの優先度により順番を前後したり、サーバを割り当てたりする。ニューラルネットワークのようなモデルを利用するサービスにおいては、個々のタスクに要する計算コストが大きく、計算に要する時間も長くなる場合があることから、複数のクライアントから送信されるタスクに応じて、計算機のリソースを有効活用することが要求される。
H. Yabuuchi, et. al., "Low-latency job scheduling with preemption for the development of deep learning," 2019年2月5日, arXiv: 1902.01613, https://arxiv.org/abs/1902.01613v1 https://www.slideshare.net/pfi/20190930-pfn-internship-2019-extension-of-chainerchemistry-for-large-amp-sparse-graphkenshin-abe, the entire contents of which are incorporated herein by reference.
 本開示では、計算機のリソースを有効に活用するモデル利用方法を提供する。
 一実施形態によれば、情報処理装置は、1又は複数のメモリと、1又は複数のプロセッサと、を備える。前記1又は複数のプロセッサは、1又は複数の第2情報処理装置から複数のグラフの情報を受信することと、前記複数のグラフのうち、グラフニューラルネットワークモデルを用いて同時に処理可能な複数のグラフの情報を、前記グラフニューラルネットワークモデルに入力して同時に処理することで、前記同時に処理可能な複数のグラフのそれぞれに対する処理結果を取得することと、前記処理結果を、対応するグラフの情報を送信した第2情報処理装置に送信することと、を実行可能に構成される。
一実施形態に係る情報処理システムを模式的に示す図。 一実施形態に係る同じタイミングにおけるグラフの処理について説明するため図。 一実施形態に係る同じタイミングにおけるグラフの処理のタイミングについて説明するため図。 一実施形態に係る情報処理システムを模式的に示す図。 一実施形態に係る同じタイミングにおけるグラフの処理のタイミングについて説明するための図。 一実施形態に係る情報処理システムを模式的に示す図。 一実施形態に係る情報処理システムを模式的に示す図。 一実施形態に係る情報処理システムの各構成要素の実装例を示す図。
 以下、図面を参照して本発明の実施形態について説明する。図面及び実施形態の説明は一例として示すものであり、本発明を限定するものではない。
 (第1実施形態)
 図1は、一実施形態に係る情報処理システムの構成を模式的に示す図である。情報処理システム1は、サーバ10(第1情報処理装置の一例)を備え、クライアント20(第2情報処理装置の一例)からの要求に基づいてサーバ10で処理を実行するシステムである。サーバ10とクライアント20は、インターネット回線といった有線又は無線の回線により接続される。
 また、後述の実施形態において説明するロードバランサ等、他の構成が存在するものを排除するものではなく、例えば、本実施形態においてもクライアント20からサーバ10へと直接データが送信されるのではなく、プロキシサーバ等の中間サーバがさらに備えられていてもよい。
 また、データは、直接的にクライアント20からサーバ10へと送信するものには限られず、他の装置を介して送信されるものであってもよい。例えば、クライアント20がファイルサーバ等にデータを格納し、この格納先をサーバ10に通知することでサーバ10がそれぞれのクライアント20の要求に対するデータを当該ファイルサーバ等から読み出す構成としてもよい。サーバ10が演算した結果も同様であり、サーバ10が直接的にクライアント20に送信してもよいし、他の装置を介して送信してもよい。例えば、ファイルサーバ等を介してクライアント20が演算結果を取得してもよい。
 サーバ10は、一例として、同一のタイミングにおいて、同一の処理を複数の演算コアを用いて処理するアクセラレータを備えて構成される演算サーバである。アクセラレータは、例えば、GPUを有し、GPGPU(General-Purpose computing on GPU)の技術を用いて同じ演算に基づく処理を複数の演算コアにより同じタイミングで実行する。
 すなわち、サーバ10は、GPUのホストにおいて1つのプログラムを起動し、このプログラムにしたがって同じクロックに基づく同じ処理が複数の演算コアにおいて複数のデータに対して実行されるSIMD(Single Instruction, Multiple Data)の構成を有していてもよい。もちろん、サーバ10は、GPU以外の構成においてSIMD演算を実現できる構成を有していてもよい。
 一実施形態として、このサーバ10は、複数のクライアント20からそれぞれ異なるデータを受信(実線)し、並列処理で演算を実行し、演算結果をそれぞれのクライアント20へと送信(点線)する。
 本実施形態では、サーバ10の処理として、訓練済みモデルにおける処理を実行する例を説明する。サーバ10は、限定されない一例として、グラフの情報が入力可能なニューラルネットワークモデル(例えば、GNN: Graph Neural Network)を訓練済みモデルとして用いる。
 サーバ10において、プロセッサは、一例として、原子のグラフ情報を入力するとエネルギーに関する情報を出力するように訓練されたニューラルネットワークモデルであるNNP(Neural Network Potential)モデルを展開し、このNNPモデルを用いて、原子に関する複数のグラフ情報を並列に処理する。グラフ情報は、複数の原子の情報を含む。
 原子の情報は、例えば、物質を構成する原子の種類と当該原子の座標(原子の位置)に関する情報を含んでもよい。この原子の情報をノードとし、原子の接続をエッジとするグラフが形成され、このグラフをNNPモデルに入力することで、サーバ10は、それぞれのクライアント20から送信される物質(グラフ)の状態における物性情報(例えば、エネルギー、力など)を推論して、クライアント20へと送信する。なお、サーバ10は、NNPモデルから出力される情報を処理又は解析した情報をクライアント20へ送信するようにしてもよい。
 例えば、NNPモデルでは、物質の原子配置を示すグラフの情報が入力される。サーバ10は、あるクライアント20から受信したグラフの情報と、異なるクライアント20から受信したグラフの情報と、を区別して訓練済みモデルに入力する。訓練済みモデルは、グラフの情報ごとに他のグラフの演算に影響を与えないように演算を実行する。
 一例として、クライアント20Aから、第1原子数の第1物質を示す、第1ノード数n1( = 第1原子数)を有する第1グラフG1を受信し、クライアント20Bから、第2原子数の第2物質を示す、第2ノード数n2( = 第2原子数)を有する第2グラフG2をサーバ10が受信する場合について説明する。
 サーバ10のアクセラレータでは、一例として、あらかじめそのリソースにより、同じタイミングで処理することが可能なノード数(所定ノード数N)が設定される。サーバ10は、そのリソース、例えば、メモリ量、コア量又は他の演算能力、代表的にはメモリ量から、一度にまとめて処理できるデータ量に上限があるため、まとめて処理をするノード数を設定することができる。また、ノード数以外にもエッジ数によってもメモリ容量に起因してバッチ処理を実行できない可能性がある。
 なお、以下においては、一例としてノード数を用いて説明するが、これは、「ノード数」、「エッジ数」、「ノード数に基づく数」、「エッジ数に基づく数」又は、「ノード数及びエッジ数の双方に基づく数」のいずれかに読み替えてもよいし、グラフ演算における他の量と読み替えてもよい。例えば、第1グラフG1のノード数n1 + 第2グラフG2のノード数n2 <= 所定ノード数Nとして判断する箇所があるが、これは、第1グラフG1のエッジ数e1 + 第2ノードG2のエッジ数e2 <= 所定エッジ数Eと読み替えることもできるし、第1グラフG1のノード数及びエッジ数に基づく数x1 + 第2グラフG2のノード数及びエッジ数に基づく数x2 <= ノード数及びエッジ数に基づく所定しきい値Xと読み替えてもよい。
 Nは、ノード数から想定される必要な演算リソース(例えば、メモリ量、コア数)により決定されてもよい。Eは、エッジ数から想定される必要な演算リソースにより決定されてもよい。Xは、ノード数とエッジ数の総和、ノード数とエッジ数の重み付け加算、又は、エッジ数とノード数から想定される必要な演算リソースにより決定されてもよい。
 いずれの場合においても、ノード数等を用いた単純な和ではなく、適切な変換を用いた後に和を求めてもよい。例えば、第1グラフG1のノード数n1を引数とする関数f(n1) + 第2グラフG2のノード数n2を引数とする関数f(n2) <= ノード数に関するリソースの所定しきい値F等としてもよい。fは、例えば、ノード数においてグラフの演算に必要なリソースを取得するための関数であり、線形又は非線形の関数である。もちろん、エッジ数を用いる場合、並びに、ノード数及びエッジ数の双方を用いる場合においても同様に定義することができる。
 第1ノード数n1と第2ノード数n2の和が所定ノード数N以下である場合には、同じタイミングにおいて第1グラフG1と第2グラフG2の処理を実行し、第1物質と第2物質に関する解析又は推論処理を実行する。
 図2は、サーバ10におけるグラフの処理の一例を説明するための図である。サーバ10は、例えば、それぞれのクライアント20から取得したグラフに関する情報を行列に展開する。この展開方法は、適切に訓練済みモデルにおいてグラフの演算ができる形式であれば任意の方式であればよい。
 サーバ10は、例えば、図2に示すように、第1グラフG1の隣接行列を含む行列と第2グラフG2の隣接行列を含む行列とを連結したスパース行列(モデルへの入力情報の一例)を生成する。なお、実際にスパース行列を生成するのではなく、メモリのリソース及び演算時間に鑑みて適切に変換された表現において生成し、この表現に対して適切に演算できる形態であってもよい。例えば、スパース行列の”0”を適切に削除し、要素の位置と要素の内容とを紐付けて記述する表現に変換してもよい。この図2においては、n1 + n2 <= Nであるとする。
 NNPに利用する訓練済みモデルは、例えば、行列において0でない値である行及び列の成分同士を演算して結果を取得するものである。このようなモデルであれば、図2のように行列を生成することにより、第1クライアント20Aから取得した第1グラフG1の情報と、第2クライアント20Bから取得した第2グラフG2の情報とがお互いに影響を及ぼさないように演算を実行することが可能である。
 グラフごとに互いに影響を及ぼさずに演算を実行するので、例えば、サーバ10又はクライアント20が、最終的に、それぞれのグラフに属するノードのエネルギー値を加算することにより、個々のグラフのエネルギーを取得することができる。
 例えば、サーバ10は、それぞれのグラフのノードである原子ごとの演算を、演算コアに割り当てることにより原子ごとの情報について、同期して処理を実行することが可能である。訓練済みモデルは、一般的にノード数により演算する中間層の数が変化するものではない。このため、ノードごとに演算コアを割り当てることにより、n1、n2の数値によらず、同じタイミングで物性情報を取得することが可能となる。
 なお、演算コアにおける計算の割り当ては、ノードごとである必要は無く、サーバ10は、適切にバッチ処理が実行できるように演算を割り当てることができる形態であればよい。このため、全てのノードが同じタイミングで演算される必要は無く、適切な処理単位において同じタイミングで演算が可能であればよい。バッチ処理により、このような全体としてのスループットを向上することができる。
 上記の演算単位は、例えば、サーバ10により適切に決定されてもよいし、サーバ10に備えられるアクセラレータで適切に決定されてもよい。また、プログラムの記述によりユーザが決定してもよいし、コンパイラにより実行ファイル又は中間ファイルにおいて決定されてもよい。これらの決定方法に基づいて、上記の所定ノード数Nが定義されてもよい。
 このように、サーバ10は、第1ノード数n1と、第2ノード数n2の和が所定ノード数N以下である場合に、第1グラフと第2グラフとに関する情報を同じタイミングで訓練済みモデルに入力し、相互に干渉しないように演算を実行することが可能となる。このように処理することで、情報処理システム1は、別々のクライアント20から受信したグラフ情報を、リソースを無駄にすることなく処理をし、第1物質及び第2物質の物性情報を取得することが可能となる。
 例えば、図2の行列は、原子の種類(1つ)、座標(3つ)、隣接行列(1つ)の4つの行列を備えて構成されてもよい。なお、上述したグラフのバッチ処理は一例であり、他の方法を用いて複数のグラフをまとめて処理してもよい。一例として、下記に記載の手法を用いてもよい。https://www.slideshare.net/pfi/20190930-pfn-internship-2019-extension-of-chainerchemistry-for-large-amp-sparse-graphkenshin-abe
 図3は、より具体的な一例を示す図である。上記に加え、第3クライアント20Cから第3原子数の第3物質に関する第3ノード数n3を有する第3グラフG3についての処理を並行して行うものである。ここでは、簡単のため、n1 =30、n2 = 80、n3 = 40、N = 100とする。また、図中、黒い点は、データの送信元を示し、矢印の先がデータの送信先を示す。
 時刻t0において、複数のクライアント20のそれぞれからグラフに関するデータをサーバ10に送信する(S100)。なお、この時刻は、一致してもよいしずれてもよい。また、時刻t0は、サーバ10がクライアント20からの受信を確認する時刻であってもよい。
 サーバ10側では、これらのグラフのノード数に基づいて、クライアント20から受信されたグラフのうち、複数のグラフの情報をまとめて処理できるか否かを判断し、同じタイミングで処理できる組み合わせがある場合には、当該組み合わせを記憶する(S102)。例えば、n1 + n2 = 30 + 80 = 110 > 100 = Nであるので、第1グラフG1と第2グラフG2を同じタイミングで演算することができない。一方で、n1 + n3 = 30 + 40 = 70 < 100 = Nであるので、第1グラフG1と第3グラフG3は、同じタイミングで処理することが可能である。このため、サーバ10は、第1グラフG1と第3グラフG3の組み合わせをメモリ等の記憶部に格納する。n2 + n3 > Nであるので、第2グラフG2と第3グラフG3も同じタイミングで演算できないと判断し、第2グラフG2は、単一のグラフで処理をすると判断する。
 まとめて処理できる場合には、まとめて処理可能なグラフをまとめて訓練済みモデルに入力し、まとめて処理ができない場合には、1つのクライアント20から取得したグラフ情報を訓練済みモデルに入力する(S104)。上記の場合においては、第1グラフG1と第3グラフG3が同じタイミングで処理が実行できるので、この2つのグラフをまとめて処理を実行する。
 サーバ10は、第1グラフG1と第3グラフG3に関する演算が終了すると、それぞれに対応する処理結果(物性情報など)を適切にクライアント20へと送信する(S106)。例えば、第1グラフG1の処理結果(物性情報など)を第1クライアント20Aに送信し、第3グラフG3の処理結果(物性情報など)を第3クライアント20Cに送信する。
 サーバ10は、第1グラフG1と第3グラフG3の処理が終了すると、第2グラフG2の処理を開始する(S108)。
 処理結果をサーバ10から受信したクライアント20では、次のグラフに関する情報をサーバ10へと送信してもよい(S110)。サーバ10は、受信した情報をキューに入れて待ち状態としてもよい。
 第2グラフG2の処理が終了すると、同様に、サーバ10は、第2クライアント20Bに第2グラフG2に関する処理結果を送信する(S112)。
 この後は、サーバ10が第1グラフG1及び第3グラフG3の処理を開始し(S114)、第2クライアント20Bが次の第2グラフG2の情報を送信し(S116)、サーバ10が処理結果を送信する(S118)、といった処理が必要なだけ繰り返される。
 クライアント20において同じノード数を有するグラフの情報が送信されるものとしたが、これには限られない。例えば、第1クライアント20Aは、1回目に送信する第1グラフG1のノード数と、2回目に送信する第1’グラフG1’のノード数を異なるものとしてもよい。この場合、適切なタイミングで同じタイミングで処理するグラフの組み合わせが変わることもある。また、同一のクライアントが、複数のグラフに関する情報を送信してもよい。
 また、上記においては、第1グラフG1と第3グラフG3の組み合わせから演算を開始したが、これには限られない。例えば、サーバ10は、第2グラフG2の演算から開始してもよい。このタイミングは、例えば、サーバ10が組み合わせを判断するタイミングにおいて、最先に受信したグラフ情報を含む組み合わせを優先してもよい。別の例としては、サーバ10又はクライアント20により設定された優先度に基づいて、当該優先度が最も高いグラフを含む組み合わせ、又は、優先度の和が最も高い組み合わせ、等から演算を開始してもよい。
 以上のように、本実施形態によれば、クライアント20から送信されたグラフ情報に基づき、サーバ10のリソースの無駄を抑制したグラフの処理を実行することが可能となる。このグラフの処理は、例えば、グラフニューラルネットワークモデルの演算を含む処理であってもよい。また、このニューラルネットワークモデルは、NNPに関するものでもよい。複数のグラフの情報のそれぞれに対する処理結果は、ニューラルネットワークモデルを用いて計算された情報に対して、サーバ10によって追加の処理を行った後の情報であってもよい。また、処理結果は、グラフニューラルネットワークモデルを複数回用いて取得した情報であってもよい。また、グラフの処理は、NNP以外の原子シミュレーションに関する処理であってもよい。
 本実施形態では、クライアントから受信した複数のグラフ情報から、グラフニューラルネットワークモデルを用いて同時に処理が可能な複数のグラフを選択する。ここで、「同時に処理」とは、少なくとも、複数のグラフに関する処理の一部又は全部を、1つのグラフニューラルネットワークを用いて同じタイミングで実行すること(その一部又は全部の処理を纏めて実行すること)、又は、複数のグラフから生成した1つの入力情報(例えば、複数のグラフをまとめた1つのグラフ)を1つのグラフニューラルネットワークに入力すること、のいずれかを含んでもよい。このとき、本実施形態では、サーバのリソース(一例として、演算能力、記憶容量など)に基づいて前記複数のグラフを選択してもよい。
 NNPモデルを用いた演算は、多数の原子の情報を対象にするため演算量が多くなる。したがって、本実施形態のように、演算リソースに基づいて処理対象となるグラフを選択することより、サーバのリソースを有効活用できる。
 また、サーバは、複数のクライアントからノード数が40のグラフの情報と、ノード数が60のグラフ情報を受信した場合には、この2つのグラフの処理を上述のように並行して実行する。一方で、サーバは、ノード数が40のグラフの情報と、ノード数が70のグラフ情報を受信した場合には、所定ノード数を超えるため、まずノード数が40のグラフを処理し、その後にノード数が70のグラフを処理するといった、グラフを選択することなく、シーケンシャルに処理を実行してもよい。
 (第2実施形態)
 前述の実施形態においては、演算を実行するサーバ10においてグラフの順番を入れ替えることについて説明したが、複数のクライアント20と、サーバ10との間に、クライアント20から送信されるグラフに基づいてサーバ10に演算させるキュー又はタスク処理を実行し、サーバ10においてグラフ処理の順番及び複数のグラフの組み合わせを選択する中間サーバが備えられていてもよい。
 図4は、一実施形態に係る情報処理システム1の概略を示す図である。情報処理システム1は、第1中間サーバとして、プロキシサーバ30(第3情報処理装置の一例)を備える。
 プロキシサーバ30は、クライアント20と、サーバ10との間に接続される。すなわち、サーバ10は、プロキシサーバ30を介して複数のクライアント20からグラフを処理する順番、組み合わせに関する情報、及び、演算処理をするグラフの情報を取得する。
 サーバ10は、FIFO(First-In First-Out)処理を実行するキューを備えてもよい。サーバ10は、適切なタイミングでエンキューし、デキューする。また、別の例として、サーバ10は、プロキシサーバ30のリクエストによりエンキューし、デキューしてもよい。
 クライアント20は、プロキシサーバ30に対してサーバ10に演算を実行させたいグラフの演算要求及びグラフの情報を送信する。プロキシサーバ30は、クライアント20から受信したグラフの情報に基づいて、同じタイミングで同じアクセラレータにおいて処理するグラフの組み合わせを判定、検出し、サーバ10に当該組み合わせを送信する。このタイミングにおいて、グラフの情報をともに送信してもよい。サーバ10は、このリクエストに基づいてエンキューする。そして、サーバ10は、適切なタイミングにおいてデキューすることで、演算処理を実行する。
 別の例として、プロキシサーバ30は、サーバ10に適切な順番及び組み合わせのグラフに関するタスクについてエンキューリクエストを送信してもよい。そして、プロキシサーバ30が、デキューリクエストをサーバ10に送信することでサーバ10が演算を実行してもよい。例えば、このプロキシサーバ30からのデキューリクエストは、サーバ10に対するflushリクエストであってもよい。
 図5は、本実施形態に係る処理のタイミングの限定されない一例を示す図である。基本的な構成は、図3の場合と同様にしている。
 まず、それぞれのクライアント20からグラフの情報及び演算要求がプロキシサーバ30に送信される(S200)。
 プロキシサーバ30は、それぞれのグラフのノード数を確認し、このノード数に基づいて、演算タスクをサーバ10へと送信し、サーバ10では、受信したタスクをエンキューする(S202)。
 また、別の例として、プロキシサーバ30がエンキューリクエストをサーバ10へ送信し、このリクエストに基づいてサーバ10がエンキューしてもよい(S202)。そして、プロキシサーバ30が、デキューリクエストをサーバ10に送信することにより、サーバ10においてタスクがデキューされ、グラフの演算処理が実行されてもよい(S204)。
 サーバ10は、前述の実施形態において説明した同じタイミングで処理するグラフを1つのキューとして管理する。図5の例であれば、第1グラフG1と第3グラフG3の演算要求を1つのキューとしてエンキューし、続いて、第2グラフG2の演算要求を1つのキューとしてエンキューする。順番については、上述と同様に、任意の適切な方法に基づいて決定される。
 サーバ10(演算サーバ)は、エンキューしたキューにしたがって処理を実行する(S206)。サーバ10が適切なタイミングでデキューすることでFIFO処理を実行してもよいし、プロキシサーバ30がデキューリクエストを送信してサーバ10がデキューして演算処理を開始してもよい。
 クライアント20からサーバ10、又は、プロキシサーバ30からサーバ10へのグラフに関するデータの送信は、適切なタイミングで実行されればよい。別の例として、グラフの情報自体は、クライアント20又はプロキシサーバ30からストレージ等に送信され、サーバ10は、デキューされたタスクに基づいて、このグラフの情報を取得して演算を開始する構成としてもよい。また、この場合、サーバ10では、エンキューした情報に基づいて、データをプリフェッチしておいてもよい。
 演算処理が終了すると、サーバ10は、プロキシサーバ30に処理結果を送信するとともに、演算が終了したことを通知する(S206)。なお、処理結果は、図示しないファイルサーバ等に送信されてもよいし、サーバ10から直接的にそれぞれのクライアント20へと送信する態様であってもよい。
 演算の終了通知を受信したプロキシサーバ30は、演算結果を適切なクライアント20へと送信するとともに、キューにしたがった次の処理を実行する(S208)。例えば、上記の状態においては、第2グラフG2の処理キューがあるため、このタイミングにおいてプロキシサーバ30からサーバ10へ、次のデキューリクエストを送信してもよい。
 サーバ10は、第2グラフG2に関するタスクをデキューし、処理を実行する(S210)。前段落にあるように、サーバ10は、プロキシサーバ30からのリクエストに応じてデキューしてもよいし、S206の処理結果の送信が完了した後に適切なタイミングでデキューしてもよい。プロキシサーバ30がデキューリクエストをする場合には、処理結果の送信とデキューリクエストと、の順番は任意であり、前後してもよいし、同時であってもよい。
 図3の場合と同様に、必要に応じて第1クライアント20A及び第3クライアント20Cは、次の処理要求をプロキシサーバ30へと送信する(S212)。なお、処理要求はこのタイミングではなく、前の処理(S206)の実行中及び実行前後のタイミングでされていてもよい。この場合、プロキシサーバ30は、適切にグラフのノード数に基づいて組み合わせを決定し、サーバ10は、プロキシサーバ30から受信するグラフの情報に基づいて逐次エンキューする。
 第2グラフG2の処理が終了すると、サーバ10は、プロキシサーバ30へと処理の終了を通知し(S214)、プロキシサーバ30は、第2クライアント20Bへ演算結果を送信する。このタイミングでプロキシサーバ30は、デキューリクエストをサーバ10へ送信してもよい。もちろん、プロキシサーバ30からリクエストを送信することなく、サーバ10において適切にデキューして処理を実行してもよい。
 この後、サーバ10の処理(S218)、第2クライアント20Bからの処理要求(S220)、サーバ10からの処理結果の送信等(S222)、プロキシサーバ30からクライアント20又はサーバ10への各種データの送信等(S224)が適切に繰り返される。
 上記したように、この図5においては、クライアント20が逐次的に処理をする場合を説明したが、これには限られない。例えば、時刻t0において、複数のクライアント20は、それぞれが複数のグラフ情報に関する演算要求をプロキシサーバ30へと送信してもよい。プロキシサーバ30では、適切にグラフの組み合わせと処理の順番を決定し、サーバ10は、この処理の順番に基づいてエンキューする。これは、前述の実施形態においても同様であり、時刻t0において、複数のクライアント20は、複数のグラフの情報をサーバ10に送信してもよい。
 プロキシサーバ30は、例えば、同じクライアント20からの処理がなるべく連続しないようにグラフの演算処理の順序を決定してもよいし、優先度の高いクライアント20からの処理がなるべく早期に終了するとともに、サーバ10におけるリソースの無駄を抑制するようにグラフの演算処理の順序を決定してもよい。
 以上のように、本実施形態によれば、プロキシサーバ30を介してキューを用いることにより、サーバ10に適切な順番、及び、適切なグラフの組み合わせにおいて演算処理を実行させることが可能となる。
 図6は、本実施形態の別の例を示す図である。この図6に示すように、情報処理システム1は、複数のサーバ10を備えていてもよい。この場合、プロキシサーバ30は、サーバ10においてタスクがデキューされた順番に処理を振り分けてもよい。別の例としては、プロキシサーバ30は、それぞれのサーバ10の性能等に基づいて複数のクライアント20から受信したグラフの情報を適切に結合、分配して、サーバ10ごとにタスクを振り分け、それぞれのサーバ10が、振り分けられたタスクをエンキューしてもよい。
 例えば、性能の高いアクセラレータを有するサーバにおいては、計算する原子数(ノード数)が多いリクエストが割り振られてもよい。一方で、このサーバよりは性能の低いアクセラレータを有するサーバにおいては、計算する原子数(ノード数)が少ないリクエストが割り振られてもよい。このように割り振ることで、アクセラレータのリソースを有効に活用することが可能となる。ここで、性能が高いとは、例えば、演算コア数が多い、演算クロック数が高い、等により決定されてもよい。
 また、同様の仕組みで割り振ることにより、原子数の少ないリクエストを可能な限り同じサーバに集約させてバッチで計算できる可能性を高めることができる
 これらの性能による振り分けは、下記の実施形態についても同様である。
 (第3実施形態)
 前述の第2実施形態の実装に加え、性能が同等であるサーバ10をサーバ群としてまとめ、サーバ群に属するいずれのサーバ10に演算を実行させるかを振り分けるロードバランサが備えられていてもよい。
 図7は、一実施形態に係る情報処理システム1の概略を示す図である。情報処理システム1は、複数のサーバ10を備え、プロキシサーバ30とこれら複数のサーバ10との間に、第2中間サーバとしてロードバランサ40(第4情報処理装置の一例)を備える。
 複数のサーバ10は、性能ごとに複数のサーバ群50に区別される。サーバ群50は、例えば、サーバ10において同じタイミングで処理ができるグラフのノード数により分類される。また、サーバ群50は、サーバ10の処理速度で分類されてもよい。
 複数のサーバ10のサーバ群50への振り分けは、上記には限られない。例えば、性能が同等のサーバ10であっても、プロキシサーバ30が処理を振り分けたい条件に基づいて、サーバ10をグループ化することもできる。具体的には、できるだけ一度に実行されるグラフの数が増えるように、ノード数が少ないリクエストの処理を担当するサーバ群50と、ノード数が多いリクエストの処理を担当するサーバ群50と、に振り分けるといったように同等の性能を有するサーバ10を振り分けてもよい。
 ロードバランサ40は、サーバ群50のそれぞれに対して備えられてもよい。プロキシサーバ30は、クライアント20から受信したグラフの処理要求を、サーバ群50を構成するサーバ10の性能に基づいて振り分ける。上述した例では、プロキシサーバ30は、サーバ10において同じタイミングで処理可能なノード数に基づいてそれぞれのサーバ群50に振り分けてもよいし、サーバ10の処理速度に基づいて振り分けてもよい。
 プロキシサーバ30は、それぞれのロードバランサ40ごとにタスクを振り分けてもよい。この場合、プロキシサーバ30は、それぞれのロードバランサ40に対してして適切なグラフに関する情報を選択して処理要求(タスク)を送信する。ロードバランサ40は、自らが担当するサーバ群50に属するサーバ10にこのタスクを振り分けることにより、サーバ10に演算処理を実行させる。
 ロードバランサ40は、プロキシサーバ30から受信したグラフの情報により、サーバ群50から処理に適切なサーバ10を割り当て、割り当てられたサーバ10に対して当該グラフに関する情報を送信する。サーバ10では、グラフの情報を受信すると、当該グラフのデータを適切に取得して、処理を実行する。サーバ10は、上記と同様にキューを備えていてもよく、ロードバランサ40に振り分けられたグラフの処理に関するタスクをエンキューしてもよい。そして、サーバ10は、このキューにしたがって、タスクを順番にグラフの処理を実行してもよい。処理後には、処理が終了したことをロードバランサ40に通知してもよい。次の演算タスクがある場合には、サーバ10は、次の演算の実行に移行する。
 本実施形態に係る情報処理システム1は、上記に説明したように、まず、クライアント20から受信したグラフの情報を、第1中間サーバであるプロキシサーバ30において適切に振り分ける。プロキシサーバ30は、振り分けられた情報に基づいて、それぞれのロードバランサ40に振り分けてもよい。
 そして、ロードバランサ40は、複数のサーバ10の負荷を分散するべく、処理命令をそれぞれのサーバ10に割り当て、適切なサーバ10に処理命令を通知する。サーバ10では、この処理要求に基づいて、適切にグラフに関する処理を実行し、処理後に処理が終了した旨をロードバランサ40へと通知する。必要に応じて、サーバ10においては、処理要求に基づいてキューにエンキューし、処理が終了した後に、キューにタスクがある場合には、デキューして次の処理を実行する。ロードバランサ40がサーバ10のそれぞれを監視し、処理が終了したことを検知してもよく、サーバ10の処理具合に応じてそれぞれのサーバにグラフ処理タスクを振り分けてもよい。
 ロードバランサ40は、例えば、待機中のサーバ10がない場合には、最先に処理要求を通知したサーバ10に次のグラフ処理に関するタスクを割り当ててもよい。サーバ10では、必要に応じてタスクをエンキューし、現在のタスクが終了した後にデキューすることで逐次的に処理を実行してもよい。また、このような場合にはロードバランサ40が、バッファを保持し、このバッファにキューを備えていてもよく、処理が終了したサーバ10に対して、デキューすることでタスクを割り当ててもよい。また、サーバ群50内においても性能差がある場合には、適切なサーバ10に対してロードバランサ40がタスクを割り当ててもよい。
 キューには、命令、要求のみがエンキュー、デキューされてもよいし、グラフの情報ごとエンキュー、デキューされてもよい。演算要求のみがキューに入力される場合には、前述の実施形態と同様に、サーバ10がデキューしたグラフに関する情報を図示しない記憶部から演算に必要なグラフに関する情報を取得して、処理を実行してもよい。
 以上のように、本実施形態によれば、ロードバランサ40を備えることにより、負荷を分散させ、負荷的、時間的により適切にサーバ10において処理を実行させることが可能となる。
 第1実施形態と同様に、第2実施形態及び第3実施形態も、サーバ10においては、グラフを入力とするニューラルネットワークモデルを用いた演算を実行してもよい。特に、独立した複数のグラフが入力される場合に、他の独立グラフに影響を及ぼさないニューラルネットワークモデルとして構成されていることが望ましい。
 このニューラルネットワークモデルは、NNPに用いるものであってもよく、グラフの情報は、物質の情報であり、ノードは、当該物質の原子構造に対応するものであってもよい。ノード数は、例えば、原子数に該当し、この原子数により演算を実行するサーバ10が割り当てられる。この場合、サーバ10においては、NNPに用いるニューラルネットワークモデルを展開しておき、入力されたグラフに関する情報をこのニューラルネットワークモデルの入力層に逐次的に入力することで処理を継続して実行することが可能となる。このように用いる訓練済みモデルを固定しておくことで、モデルを形成する時間の無駄を回避することが可能となる。
 第2実施形態及び第3実施形態のように中間サーバを用いることで、NNPを提供する場合に、プロバイダとしては全体としての負荷、コストを下げることができるし、ユーザとしては経済コスト、時間コストを削減することができる。例えば、時間課金制、又は、演算量の課金制のサーバを用いる場合には、まとめられるグラフをまとめて演算することができるため、金銭的及び時間的の双方の面でコストを抑えることが可能となる。
 前述の各実施形態においては、グラフのデータを送受信していた。これは限定されない一例であり、他の必要なデータがメタデータとして併せて送信されてもよい。代表的には、物質を構成する原子数(演算に用いるグラフのノード数)がメタデータとして付与され、各種サーバにおいて、このメタデータ内のノード数を読み出すことにより、各処理が実行されてもよい。また、メタデータは、原子の種類に関する情報が含まれていてもよい。このメタデータは、前述の同じタイミングで同じアクセラレータにおいて処理するグラフの振り分け条件や、サーバが複数ある場合には当該グラフについての処理を実行するサーバの振り分け条件に用いてもよい。
 なお、前述の各実施形態においては、サーバ10、プロキシサーバ30、ロードバランサ40が備えられる構成を説明したが、これらの機能の一部又は全部をまとめたサーバ(情報処理装置の一例)を構成してもよい。すなわち、サーバ内に、プロキシサーバ30と、演算サーバ(サーバ10)が備えられてもよいし、それに加えてロードバランサ40が備えられてもよい。また、サーバ内に、ロードバランサ40と、演算サーバ(サーバ10)が備えられてもよい。また、プロキシサーバ30とロードバランサ40の機能が1つの情報処理装置で実現されてもよい。また、これらのサーバは、インターネット回線等により接続され、1つのサーバとしてまとめられるものであってもよい。これらの構成は、特に限定されるものではなく、同様の機能を実装できる形態であればよい。
 なお、上記においては、プロキシサーバからロードバランサを介してサーバに処理を割り振ったが、この形態に限られるものではない。例えば、処理数が増加してきた場合には、複数のプロキシサーバを備え、これらのプロキシサーバとクライアントとの間に1又は複数のロードバランサを備える構成としてもよい。このロードバランサを備えることにより、プロキシサーバの負荷を分散させることが可能である。この場合、複数のプロキシサーバにおいて同じ状態を持たせるために、KVS(Key-Value Store)により、データを管理してもよい。
 上記の全ての訓練済モデルは、例えば、説明したように訓練した上で、さらに、一般的な手法により蒸留されたモデルを含む概念であってもよい。
 前述した実施形態における各装置(情報処理システム1における各装置)の一部又は全部は、ハードウェアで構成されていてもよいし、CPU(Central Processing Unit)、又はGPU(Graphics Processing Unit)等が実行するソフトウェア(プログラム)の情報処理で構成されてもよい。ソフトウェアの情報処理で構成される場合には、前述した実施形態における各装置の少なくとも一部の機能を実現するソフトウェアを、フレキシブルディスク、CD-ROM(Compact Disc-Read Only Memory)又はUSB(Universal Serial Bus)メモリ等の非一時的な記憶媒体(非一時的なコンピュータ可読媒体)に収納し、コンピュータに読み込ませることにより、ソフトウェアの情報処理を実行してもよい。また、通信ネットワークを介して当該ソフトウェアがダウンロードされてもよい。さらに、ソフトウェアがASIC(Application Specific Integrated Circuit)又はFPGA(Field Programmable Gate Array)等の回路に実装されることにより、情報処理がハードウェアにより実行されてもよい。
 ソフトウェアを収納する記憶媒体の種類は限定されるものではない。記憶媒体は、磁気ディスク、又は光ディスク等の着脱可能なものに限定されず、ハードディスク、又はメモリ等の固定型の記憶媒体であってもよい。また、記憶媒体は、コンピュータ内部に備えられてもよいし、コンピュータ外部に備えられてもよい。
 図8は、前述した実施形態における各装置(情報処理システム1における各装置)のハードウェア構成の一例を示すブロック図である。各装置は、一例として、プロセッサ71と、主記憶装置72(メモリ)と、補助記憶装置73(メモリ)と、ネットワークインタフェース74と、デバイスインタフェース75と、を備え、これらがバス76を介して接続されたコンピュータ7として実現されてもよい。
 図8のコンピュータ7は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、図8では、1台のコンピュータ7が示されているが、ソフトウェアが複数台のコンピュータにインストールされて、当該複数台のコンピュータそれぞれがソフトウェアの同一の又は異なる一部の処理を実行してもよい。この場合、コンピュータそれぞれがネットワークインタフェース74等を介して通信して処理を実行する分散コンピューティングの形態であってもよい。つまり、前述した実施形態における各装置(情報処理システム1における各装置)は、1又は複数の記憶装置に記憶された命令を1台又は複数台のコンピュータが実行することで機能を実現するシステムとして構成されてもよい。また、端末から送信された情報をクラウド上に設けられた1台又は複数台のコンピュータで処理し、この処理結果を端末に送信するような構成であってもよい。
 前述した実施形態における各装置(情報処理システム1における各装置)の各種演算は、1又は複数のプロセッサを用いて、又は、ネットワークを介した複数台のコンピュータを用いて、並列処理で実行されてもよい。また、各種演算が、プロセッサ内に複数ある演算コアに振り分けられて、並列処理で実行されてもよい。また、本開示の処理、手段等の一部又は全部は、ネットワークを介してコンピュータ7と通信可能なクラウド上に設けられたプロセッサ及び記憶装置の少なくとも一方により実行されてもよい。このように、前述した実施形態における各装置は、1台又は複数台のコンピュータによる並列コンピューティングの形態であってもよい。
 プロセッサ71は、コンピュータの制御装置及び演算装置を含む電子回路(処理回路、Processing circuit、Processing circuitry、CPU、GPU、FPGA又はASIC等)であってもよい。また、プロセッサ71は、専用の処理回路を含む半導体装置等であってもよい。プロセッサ71は、電子論理素子を用いた電子回路に限定されるものではなく、光論理素子を用いた光回路により実現されてもよい。また、プロセッサ71は、量子コンピューティングに基づく演算機能を含むものであってもよい。
 プロセッサ71は、コンピュータ7の内部構成の各装置等から入力されたデータやソフトウェア(プログラム)に基づいて演算処理を行い、演算結果や制御信号を各装置等に出力することができる。プロセッサ71は、コンピュータ7のOS(Operating System)や、アプリケーション等を実行することにより、コンピュータ7を構成する各構成要素を制御してもよい。
 前述した実施形態における各装置(情報処理システム1における各装置)は、1又は複数のプロセッサ71により実現されてもよい。ここで、プロセッサ71は、1チップ上に配置された1又は複数の電子回路を指してもよいし、2つ以上のチップあるいは2つ以上のデバイス上に配置された1又は複数の電子回路を指してもよい。複数の電子回路を用いる場合、各電子回路は有線又は無線により通信してもよい。
 主記憶装置72は、プロセッサ71が実行する命令及び各種データ等を記憶する記憶装置であり、主記憶装置72に記憶された情報がプロセッサ71により読み出される。補助記憶装置73は、主記憶装置72以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、半導体のメモリでもよい。半導体のメモリは、揮発性メモリ、不揮発性メモリのいずれでもよい。前述した実施形態における各装置(情報処理システム1における各装置)において各種データを保存するための記憶装置は、主記憶装置73又は補助記憶装置73により実現されてもよく、プロセッサ71に内蔵される内蔵メモリにより実現されてもよい。例えば、前述した実施形態における記憶部は、主記憶装置72又は補助記憶装置73により実現されてもよい。
 記憶装置(メモリ)1つに対して、複数のプロセッサが接続(結合)されてもよいし、単数のプロセッサが接続されてもよい。プロセッサ1つに対して、複数の記憶装置(メモリ)が接続(結合)されてもよい。前述した実施形態における各装置(情報処理システム1における各装置)が、少なくとも1つの記憶装置(メモリ)とこの少なくとも1つの記憶装置(メモリ)に接続(結合)される複数のプロセッサで構成される場合、複数のプロセッサのうち少なくとも1つのプロセッサが、少なくとも1つの記憶装置(メモリ)に接続(結合)される構成を含んでもよい。また、複数台のコンピュータに含まれる記憶装置(メモリ))とプロセッサによって、この構成が実現されてもよい。さらに、記憶装置(メモリ)がプロセッサと一体になっている構成(例えば、L1キャッシュ、L2キャッシュを含むキャッシュメモリ)を含んでもよい。
 ネットワークインタフェース74は、無線又は有線により、通信ネットワーク8に接続するためのインタフェースである。ネットワークインタフェース74は、既存の通信規格に適合したもの等、適切なインタフェースを用いればよい。ネットワークインタフェース74により、通信ネットワーク8を介して接続された外部装置9Aと情報のやり取りが行われてもよい。なお、通信ネットワーク8は、WAN(Wide Area Network)、LAN(Local Area Network)、PAN(Personal Area Network)等のいずれか、又は、それらの組み合わせであってよく、コンピュータ7と外部装置9Aとの間で情報のやりとりが行われるものであればよい。WANの一例としてインターネット等があり、LANの一例としてIEEE802.11やイーサネット(登録商標)等があり、PANの一例としてBluetooth(登録商標)やNFC(Near Field Communication)等がある。
 デバイスインタフェース75は、外部装置9Bと直接接続するUSB等のインタフェースである。
 外部装置9Aは、コンピュータ7とネットワークを介して接続されている装置である。外部装置9Bは、コンピュータ7と直接接続されている装置である。
 外部装置9A又は外部装置9Bは、一例として、入力装置であってもよい。入力装置は、例えば、カメラ、マイクロフォン、モーションキャプチャ、各種センサ等、キーボード、マウス、又は、タッチパネル等のデバイスであり、取得した情報をコンピュータ7に与える。また、パーソナルコンピュータ、タブレット端末、又は、スマートフォン等の入力部とメモリとプロセッサを備えるデバイスであってもよい。
 また、外部装置9A又は外部装置9Bは、一例として、出力装置でもよい。出力装置は、例えば、LCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)、PDP(Plasma Display Panel)、又は、有機EL(Electro Luminescence)パネル等の表示装置であってもよいし、音声等を出力するスピーカ等であってもよい。また、パーソナルコンピュータ、タブレット端末、又は、スマートフォン等の出力部とメモリとプロセッサを備えるデバイスであってもよい。
 また、外部装置9A又は外部装置9Bは、記憶装置(メモリ)であってもよい。例えば、外部装置9Aは、ネットワークストレージ等であってもよく、外部装置9Bは、HDD等のストレージであってもよい。
 また、外部装置9A又は外部装置9Bは、前述した実施形態における各装置(情報処理システム1における各装置)の構成要素の一部の機能を有する装置でもよい。つまり、コンピュータ7は、外部装置9A又は外部装置9Bの処理結果の一部又は全部を送信又は受信してもよい。
 本明細書(請求項を含む)において、「a、b及びcの少なくとも1つ(一方)」又は「a、b又はcの少なくとも1つ(一方)」の表現(同様な表現を含む)が用いられる場合は、a、b、c、a-b、a-c、b-c、又は、a-b-cのいずれかを含む。また、a-a、a-b-b、a-a-b-b-c-c等のように、いずれかの要素について複数のインスタンスを含んでもよい。さらに、a-b-c-dのようにdを有する等、列挙された要素(a、b及びc)以外の他の要素を加えることも含む。
 本明細書(請求項を含む)において、「データを入力として/データに基づいて/に従って/に応じて」等の表現(同様な表現を含む)が用いられる場合は、特に断りがない場合、各種データそのものを入力として用いる場合や、各種データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、各種データの中間表現等)を入力として用いる場合を含む。また「データに基づいて/に従って/に応じて」何らかの結果が得られる旨が記載されている場合、当該データのみに基づいて当該結果が得られる場合を含むとともに、当該データ以外の他のデータ、要因、条件、及び/又は状態等にも影響を受けて当該結果が得られる場合をも含み得る。また、「データを出力する」旨が記載されている場合、特に断りがない場合、各種データそのものを出力として用いる場合や、各種データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、各種データの中間表現等)を出力とする場合も含む。
 本明細書(請求項を含む)において、「接続される(connected)」及び「結合される(coupled)」との用語が用いられる場合は、直接的な接続/結合、間接的な接続/結合、電気的(electrically)な接続/結合、通信的(communicatively)な接続/結合、機能的(operatively)な接続/結合、物理的(physically)な接続/結合等のいずれをも含む非限定的な用語として意図される。当該用語は、当該用語が用いられた文脈に応じて適宜解釈されるべきであるが、意図的に或いは当然に排除されるのではない接続/結合形態は、当該用語に含まれるものして非限定的に解釈されるべきである。
 本明細書(請求項を含む)において、「AがBするよう構成される(A configured to B)」との表現が用いられる場合は、要素Aの物理的構造が、動作Bを実行可能な構成を有するとともに、要素Aの恒常的(permanent)又は一時的(temporary)な設定(setting/configuration)が、動作Bを実際に実行するように設定(configured/set)されていることを含んでよい。例えば、要素Aが汎用プロセッサである場合、当該プロセッサが動作Bを実行可能なハードウェア構成を有するとともに、恒常的(permanent)又は一時的(temporary)なプログラム(命令)の設定により、動作Bを実際に実行するように設定(configured)されていればよい。また、要素Aが専用プロセッサ又は専用演算回路等である場合、制御用命令及びデータが実際に付属しているか否かとは無関係に、当該プロセッサの回路的構造が動作Bを実際に実行するように構築(implemented)されていればよい。
 本明細書(請求項を含む)において、含有又は所有を意味する用語(例えば、「含む(comprising/including)」及び有する「(having)等)」が用いられる場合は、当該用語の目的語により示される対象物以外の物を含有又は所有する場合を含む、open-endedな用語として意図される。これらの含有又は所有を意味する用語の目的語が数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)である場合は、当該表現は特定の数に限定されないものとして解釈されるべきである。
 本明細書(請求項を含む)において、ある箇所において「1つ又は複数(one or more)」又は「少なくとも1つ(at least one)」等の表現が用いられ、他の箇所において数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)が用いられているとしても、後者の表現が「1つ」を意味することを意図しない。一般に、数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)は、必ずしも特定の数に限定されないものとして解釈されるべきである。
 本明細書において、ある実施例の有する特定の構成について特定の効果(advantage/result)が得られる旨が記載されている場合、別段の理由がない限り、当該構成を有する他の1つ又は複数の実施例についても当該効果が得られると理解されるべきである。但し当該効果の有無は、一般に種々の要因、条件、及び/又は状態等に依存し、当該構成により必ず当該効果が得られるものではないと理解されるべきである。当該効果は、種々の要因、条件、及び/又は状態等が満たされたときに実施例に記載の当該構成により得られるものに過ぎず、当該構成又は類似の構成を規定したクレームに係る発明において、当該効果が必ずしも得られるものではない。
 本明細書(請求項を含む)において、「最大化(maximize)」等の用語が用いられる場合は、グローバルな最大値を求めること、グローバルな最大値の近似値を求めること、ローカルな最大値を求めること、及びローカルな最大値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最大値の近似値を確率的又はヒューリスティックに求めることを含む。同様に、「最小化(minimize)」等の用語が用いられる場合は、グローバルな最小値を求めること、グローバルな最小値の近似値を求めること、ローカルな最小値を求めること、及びローカルな最小値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最小値の近似値を確率的又はヒューリスティックに求めることを含む。同様に、「最適化(optimize)」等の用語が用いられる場合は、グローバルな最適値を求めること、グローバルな最適値の近似値を求めること、ローカルな最適値を求めること、及びローカルな最適値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最適値の近似値を確率的又はヒューリスティックに求めることを含む。
 本明細書(請求項を含む)において、複数のハードウェアが所定の処理を行う場合、各ハードウェアが協働して所定の処理を行ってもよいし、一部のハードウェアが所定の処理の全てを行ってもよい。また、一部のハードウェアが所定の処理の一部を行い、別のハードウェアが所定の処理の残りを行ってもよい。本明細書(請求項を含む)において、「1又は複数のハードウェアが第1の処理を行い、前記1又は複数のハードウェアが第2の処理を行う」等の表現が用いられている場合、第1の処理を行うハードウェアと第2の処理を行うハードウェアは同じものであってもよいし、異なるものであってもよい。つまり、第1の処理を行うハードウェア及び第2の処理を行うハードウェアが、前記1又は複数のハードウェアに含まれていればよい。なお、ハードウェアは、電子回路、又は、電子回路を含む装置等を含んでもよい。
 以上、本開示の実施形態について詳述したが、本開示は上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において種々の追加、変更、置き換え及び部分的削除等が可能である。例えば、前述した全ての実施形態において、数値又は数式を説明に用いている場合は、一例として示したものであり、これらに限られるものではない。また、実施形態における各動作の順序は、一例として示したものであり、これらに限られるものではない。
1: 情報処理システム、
10: サーバ、
20: クライアント、
30: プロキシサーバ、
40: ロードバランサ、
50: サーバ群

Claims (17)

 1又は複数のメモリと、
 1又は複数のプロセッサと、を備え、
 前記1又は複数のプロセッサは、
  1又は複数の第2情報処理装置から複数のグラフの情報を受信することと、
  前記複数のグラフのうち、グラフニューラルネットワークモデルを用いて同時に処理可能な複数のグラフの情報を、前記グラフニューラルネットワークモデルに入力して同時に処理することで、前記同時に処理可能な複数のグラフのそれぞれに対する処理結果を取得することと、
  前記処理結果を、対応するグラフの情報を送信した第2情報処理装置に送信することと、
 を実行可能に構成される、
 情報処理装置。
 前記1又は複数のプロセッサは、
  前記同時に処理可能な複数のグラフの情報から入力情報を生成し、前記入力情報を前記グラフニューラルネットワークモデルに入力する、
 請求項1に記載の情報処理装置。
 前記1又は複数のプロセッサは、
  自装置のリソースに基づいて、複数のグラフのうち、前記同時に処理可能な複数のグラフを選択する、
 請求項1又は請求項2に記載の情報処理装置。
 前記1又は複数のプロセッサは、
  前記複数のグラフに含まれる各グラフのノード数又はエッジ数の少なくとも1つに基づいて、前記同時に処理可能な複数のグラフを選択する、
 請求項1乃至請求項3のいずれかに記載の情報処理装置。
 前記1又は複数のプロセッサは、
  第1ノード数を有する第1グラフの情報と第2ノード数を有する第2グラフの情報とを受信し、
  少なくとも、前記第1ノード数と前記第2ノード数の和が所定ノード数以下である場合に、前記第1グラフと前記第2グラフとを前記同時に処理可能な複数のグラフとして選択する、
 請求項4に記載の情報処理装置。
 前記1又は複数のプロセッサは、
  第3ノード数を有する第3グラフの情報を更に受信し、
  少なくとも、前記第1ノード数と前記第2ノード数と前記第3ノード数との和が前記所定ノード数を超え、かつ、前記第1ノード数と前記第2ノード数の和が前記所定ノード数以下である場合に、前記第1グラフと前記第2グラフとを前記同時に処理可能な複数のグラフとして選択し、
  前記第3グラフの情報を、前記同時に処理可能な複数のグラフとは別のタイミングで前記グラフニューラルネットワークモデルに入力する、
 請求項5に記載の情報処理装置。
 前記グラフニューラルネットワークモデルは、NNP(Neural Network Potential)モデルである、
 請求項1乃至請求項6のいずれか1項に記載の情報処理装置。
 請求項1乃至請求項7のいずれか1項に記載の情報処理装置と、
 第2情報処理装置と、
 を備える情報処理システム。
 1又は複数のメモリと、
 1又は複数のプロセッサと、を備え、
 前記1又は複数のプロセッサは、
  1又は複数の第2情報処理装置から複数のグラフの情報を受信することと、
  前記複数のグラフのうち、グラフニューラルネットワークモデルを用いて同時に処理可能な複数のグラフの情報を、前記グラフニューラルネットワークモデルを用いた演算を実行する第1情報処理装置に送信することと、
  前記第1情報処理装置から、送信した前記複数のグラフの情報のそれぞれに対する処理結果を受信することと、
  前記処理結果を、対応するグラフの情報を送信した第2情報処理装置に送信することと、
 を実行可能に構成される、
 情報処理装置。
 前記グラフニューラルネットワークモデルは、NNP(Neural Network Potential)モデルである、
 請求項9に記載の情報処理装置。
 第1情報処理装置と、
 第2情報処理装置と、
 請求項9又は請求項10に記載の情報処理装置と、
 を備える情報システム。
 1又は複数のメモリと、
 1又は複数のプロセッサと、を備え、
 前記1又は複数のプロセッサは、
  複数のグラフの情報を、第3情報処理装置から受信することと、
  グラフニューラルネットワークモデルを用いて前記複数のグラフに関する演算を実行する第1情報処理装置を、複数の第1情報処理装置から選択することと、
  選択された前記第1情報処理装置に、前記複数のグラフの情報を送信することと、
  選択された前記第1情報処理装置から、前記複数のグラフの情報のそれぞれに対する処理結果を受信することと、
  前記処理結果を、前記第3情報処理装置に送信することと、
 を実行可能に構成され、
 前記複数のグラフの情報は、1又は複数の第2情報処理装置から送信された複数のグラフの情報のうち、前記グラフニューラルネットワークモデルを用いて同時に処理可能な複数のグラフの情報である、
 情報処理装置。
 前記グラフニューラルネットワークモデルは、NNP(Neural Network Potential)モデルである、
 請求項12に記載の情報処理装置。
 第1情報処理装置と、
 第2情報処理装置と、
 第3情報処理装置と、
 請求項12又は請求項13に記載の情報処理装置と、
 を備える情報システム。
 1又は複数のプロセッサにより、
  1又は複数の第2情報処理装置から複数のグラフの情報を受信することと、
  前記複数のグラフのうち、グラフニューラルネットワークモデルを用いて同時に処理可能な複数のグラフの情報を、前記グラフニューラルネットワークモデルに入力して同時に処理することで、前記同時に処理可能な複数のグラフのそれぞれに対する処理結果を取得することと、
  前記処理結果を、対応するグラフの情報を送信した第2情報処理装置に送信することと、
 を備える、情報処理方法。
 1又は複数のプロセッサにより、
  1又は複数の第2情報処理装置から複数のグラフの情報を受信することと、
  前記複数のグラフのうち、グラフニューラルネットワークモデルを用いて同時に処理可能な複数のグラフの情報を、前記グラフニューラルネットワークモデルを用いた演算を実行する第1情報処理装置に送信することと、
  前記第1情報処理装置から、送信した前記複数のグラフの情報に関する処理結果を受信することと、
  前記処理結果を、対応するグラフの情報を送信した第2情報処理装置に送信することと、
 を備える、情報処理方法。
 1又は複数のプロセッサにより、
  複数のグラフの情報を、第3情報処理装置から受信することと、
  グラフニューラルネットワークモデルを用いて前記複数のグラフに関する演算を実行する第1情報処理装置を、複数の第1情報処理装置から選択することと、
  選択された前記第1情報処理装置に、前記複数のグラフ情報を送信することと、
  選択された前記第1情報処理装置から、前記複数のグラフに関する処理結果を受信することと、
  前記処理結果を、前記第3情報処理装置に送信することと、
 を備える、方法であって、
 前記複数のグラフ情報は、1又は複数の第2情報処理装置から送信された複数のグラフの情報のうち、前記グラフニューラルネットワークモデルを用いて同時に処理する複数のグラフである、
 情報処理方法。
PCT/JP2022/023519 2021-06-11 2022-06-10 情報処理装置、情報処理システム及び情報処理方法 WO2022260176A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2023527951A JP7349594B2 (ja) 2021-06-11 2022-06-10 情報処理装置、情報処理システム及び情報処理方法
US18/533,491 US20240127028A1 (en) 2021-06-11 2023-12-08 Information processing device, information processing system and information processing method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202163209419P 2021-06-11 2021-06-11
US63/209,419 2021-06-11

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/533,491 Continuation US20240127028A1 (en) 2021-06-11 2023-12-08 Information processing device, information processing system and information processing method

Publications (1)

Publication Number Publication Date
WO2022260176A1 true WO2022260176A1 (ja) 2022-12-15

Family

ID=84425262

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/023519 WO2022260176A1 (ja) 2021-06-11 2022-06-10 情報処理装置、情報処理システム及び情報処理方法

Country Status (3)

Country Link
US (1) US20240127028A1 (ja)
JP (1) JP7349594B2 (ja)
WO (1) WO2022260176A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018045369A (ja) * 2016-09-13 2018-03-22 株式会社東芝 認識装置、認識システム、認識方法およびプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112259246B (zh) * 2020-10-21 2023-07-25 平安科技(深圳)有限公司 一种融合医学概念层级结构的疾病预测方法及相关设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018045369A (ja) * 2016-09-13 2018-03-22 株式会社東芝 認識装置、認識システム、認識方法およびプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MATEJ BALOG; BART VAN MERRI\"ENBOER; SUBHODEEP MOITRA; YUJIA LI; DANIEL TARLOW: "Fast Training of Sparse Graph Neural Networks on Dense Hardware", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 27 June 2019 (2019-06-27), 201 Olin Library Cornell University Ithaca, NY 14853 , XP081385134 *

Also Published As

Publication number Publication date
JPWO2022260176A1 (ja) 2022-12-15
US20240127028A1 (en) 2024-04-18
JP7349594B2 (ja) 2023-09-22

Similar Documents

Publication Publication Date Title
CN108292241B (zh) 处理计算图
Sanaj et al. An efficient approach to the map-reduce framework and genetic algorithm based whale optimization algorithm for task scheduling in cloud computing environment
JP2017050001A (ja) 効果的なニューラルネットワークの配置に用いるシステム及び方法
US11816509B2 (en) Workload placement for virtual GPU enabled systems
Xie et al. Pandas: robust locality-aware scheduling with stochastic delay optimality
Potluri et al. Optimization model for QoS based task scheduling in cloud computing environment
US10831536B2 (en) Task scheduling using improved weighted round robin techniques
US20210357732A1 (en) Neural network accelerator hardware-specific division of inference into groups of layers
KR101656706B1 (ko) 고성능 컴퓨팅 환경에서의 작업 분배 시스템 및 방법
KR20140111834A (ko) 컴퓨팅 스케줄링 방법 및 시스템
JP2023511467A (ja) 機械学習ワークロードのためのタスクスケジューリング
Sun et al. Cognn: efficient scheduling for concurrent gnn training on gpus
Lai et al. Delay-aware container scheduling in kubernetes
Abdalkafor et al. A hybrid approach for scheduling applications in cloud computing environment
WO2022260176A1 (ja) 情報処理装置、情報処理システム及び情報処理方法
WO2021146635A1 (en) Sparse matrix operations for deep learning
WO2020031675A1 (ja) スケジューリング装置、スケジューリングシステム、スケジューリング方法、プログラム及び非一時的コンピュータ可読媒体
CN114896070A (zh) 一种用于深度学习任务的gpu资源分配方法
Zohrati et al. Flexible approach to schedule tasks in cloud‐computing environments
US11474868B1 (en) Sharded polling system
Manavar et al. Experience with PCIe streaming on FPGA for high throughput ML inferencing
US11966783B1 (en) Real time scheduling using expected application resource usage
US20220179687A1 (en) Information processing apparatus and job scheduling method
US20240160719A1 (en) Information processing system
KR102662496B1 (ko) 멀티 gpu를 사용한 다수의 딥러닝 모델 기반 추론 응답 생성을 위한 배치 스케줄링 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22820354

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2023527951

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22820354

Country of ref document: EP

Kind code of ref document: A1