TOP > 外国特許検索 > Computing system including user program system executing user program and library program system, executing library programs to be used in user program, computing method, user program system, library program system, and storage medium containing program

Computing system including user program system executing user program and library program system, executing library programs to be used in user program, computing method, user program system, library program system, and storage medium containing program

外国特許コード F110003470
整理番号 A281-03WO
掲載日 2011年6月27日
出願国 アメリカ合衆国
出願番号 66703805
公報番号 20080059974
公報番号 8281325
出願日 平成17年11月11日(2005.11.11)
公報発行日 平成20年3月6日(2008.3.6)
公報発行日 平成24年10月2日(2012.10.2)
国際出願番号 JP2005020716
国際公開番号 WO2006051902
国際出願日 平成17年11月11日(2005.11.11)
国際公開日 平成18年5月18日(2006.5.18)
優先権データ
  • 特願2004-328157 (2004.11.11) JP
  • 2005JP020716 (2005.11.11) WO
発明の名称 (英語) Computing system including user program system executing user program and library program system, executing library programs to be used in user program, computing method, user program system, library program system, and storage medium containing program
発明の概要(英語) A numerical data transfer section transfers numerical data and its format as input values for computation from a user program system to a library program system, gives it a name, and registers/manages it.
In addition, a computation request section transfers information on the content of the computation from the user program system to the library program system.
In library program system, a computing method determining section determine the types of library programs to be used and their execution sequence on the basis of the received information on the content of the computation.
A computation-result transmitting section transfers results of execution from the library program system to the user program system in accordance with a request from a user.
Accordingly, the user of the user program can more easily use library programs without having to pay attention to specific processes carried out by the library program system.
従来技術、競合技術の概要(英語) BACKGROUND ART
Conventionally, general-purpose mathematical libraries have been widely used to execute complex and massive computation, for example, in science and technology fields.
A general-purpose mathematical library is a collection of subroutines for numerical computation which solve simultaneous linear equations, compute eigenvalues of a matrix, perform a spline interpolation, or solve a differential equation, to name a few examples.
Computing involving a mathematical library is basically realized by a computing system which contain a user program system executing a user program created and used by a user and a library program system executing a library program.
The user embeds, in the user program, commands for the execution of the library program to use the library programs.
As described in the foregoing, the user does not need to write a complex numerical analysis program on his own if he uses a mathematical library.
That relieves the user of some workload in programming for computation in science and technology fields.
A user program which, as an example, solves simultaneous linear equation Ax=b on a conventional computing system consists of the following series of instructions:

--

-- REAL *8 A(LDA,N),B(N)

-- (Generate data)

-- Calculate: Call library

-- CALL LU(LDA,N,A,IERR)

-- CALL SOLVE(LDA,N,A,B,IERR)

-- (Use results)

-- END

--
It is assumed here that A is a matrix given in the form of a two-dimensional array A and that b is a vector given in the form of one-dimensional array B.
As shown above, the user program is arranged to specify a set of data for each execution command in the library program.
Put differently, the user program is responsible for entire data management, including selection of a library program, sequence of execution, selection of data format, and intermediate results.
In addition, when the library program in the library program system is modified or a new program is added, the user of the user program needs to make changes to the content of the user program by considering these changes and additions.
The execution commands for the library program contains data format settings.
Therefore, to change an input-value, not only the input value must be changed, but also the execution commands per se must be changed in accordance with the data format.
Patent document 1 (Japanese Unexamined Patent Publication 9-128352/1997 (Tokukaihei 9-128352; published May 16, 1997) describes a master processor and two or more slave processors in a parallel computer.
The master processor executing a user program.
The slave processors executing only routines in a library.
In so doing, the slave processors first start up only once and then wait in an infinite loop.
When a library is called, the master processor communicates commands and data needed for execution to the slaves for parallel execution.
After that, the slaves return to the same state as before the execution, in other words, go back to an infinite loop, waiting for communications from the master processor.
This arrangement reduces the slave processors' start-up overhead in the case of calling the library more repeatedly, which allows for a high speed library call on the parallel computer.
Patent document 2 (Japanese Unexamined Patent Publication 11-039271/1999 (Tokukaihei 11-039271; published Feb. 12, 1999) describes selection, and assigning to a task, of an optimal subroutine from those in a library in accordance with the data size the user wants to solve.
Non-patent documents 1 (GridRPC Tutorial; and 2 (OmniRPC: a Grid RPC system for Parallel Programming; http://www.omni.hpccjp/OmniRPC/index.htmlja) describe grid RPC (Remote Procedure Call) systems.
Patent document 3 (Japanese Unexamined Patent Publication (Tokukai) 2000-231478 (published Aug. 22, 2000) describes an arrangement in which there are provided a specification information defining section and a program generating section.
The specification information defining section defines various specification information related to core mathematical expressions representing data processing, a source from which necessary data for the mathematical expression is fetched, a destination to which results of calculations are transferred, and conditions for the data processing.
The program generating section generates a program that actually fetches data from the source, performs calculations, and transfers results to the destination based on the defined specification information.
The provision of these sections enables automatic generation of a program that realizes the data processing in accordance with the specification information.
All one has to do for the automatic generation is to define specification information including the original core mathematical expressions in a table format according to his needs.
Patent document 4 (Japanese Unexamined Patent Publication (Tokukai) 2002-073578 (published Mar. 12, 2002) describes there being provided a proxy computer that relays requests from client computers.
The proxy computer contains a transfer-destination list, request transfer means, and result transfer means.
In the transfer-destination list, a relationship between the types of requests issued by the client computers and the server objects to be transferred is defined in advance.
The request transfer means transfers the requests issued by the client computers to the server objects contained in the transfer-destination list in accordance with the types of the requests.
The result transfer means transfers results returned from the server objects to the original client computers.
Patent document 5 (Japanese Unexamined Patent Publication (Tokukai) 2004-102507 (published Apr. 2, 2004) describes a system in which when the receiving section of a communications module receives, from a first object, a request for communications with a second object and data to be transmitted to the second object, a communications determining section makes an inquiry to a network device, receives a communications protocol and address information corresponding to the second object from the network device, and determines that this is to be used.
Furthermore, the communications section transmits the transmission data in accordance with the communications protocol and address information determined by the communications determining section.
Hence, inter-object communications are realized between the first and second objects.

特許請求の範囲(英語) [claim1]
1. A computing method for a computing system containing a user program system executing a user program and a library program system executing library programs to be used in the user program, the user program system operating on a first computer and the library program system operates on the first computer or on at least one computer communicably connected to the first computer, the at least one computer being different from the first computer, said method comprising:
a first transfer step of the user program system transferring process-target data which will be subjected to computation to the library program system;
a second transfer step of the user program system receiving, from the library program system, process-result data representing results of the computation on the process-target data; and
a computation instruction step and a computing step carried out between, and independently from, the first and second transfer steps,
wherein in the computation instruction step, the user program system instructs the library program system on content of the computation by means of a character string which is written in a syntax different from (i) that of a programming language in which a program for executing the first and second transfer steps is written, and (ii) that of a programming language in which a library program is written; and
in the computing step, the library program system analyzes the character string to determine types of library programs to be used in the computation and an execution sequence of those library programs and executes the determined library programs in the determined execution sequence to carry out the computation on the process-target data, wherein
in a case where the library program system is configured to determine how to share the computation and to transmit a result of the sharing method to the user program system,
the user program system is configured to transfer input value information to the at least one computer on the basis of the sharing method of the computation.
[claim2]
2. A computing system comprising: a user program system for executing a user program; and a library program system for executing library programs to be used in the user program,
the user program system operating on a first computer and the library program system operates on the first computer or on at least one computer communicably connected to the first computer, the at least one computer being different from the first computer,
the user program system including
a numerical data transfer section for transferring process-target data which will be subjected to computation to the library program system;
a computation-result receiving section for receiving, from the library program system, process-result data representing results of the computation on the process-target data; and
a computation request section for instructing the library program system on content of the computation by means of a character string, independently from the transfer of the process-target data and the process-result data, the character string being written in a syntax different from (i) that of a programming language in which a program for executing the first and second transfer steps is written, and (ii) that of a programming language in which a library program is written,
the library program system including a computing section for analyzing the character string to determine types of library programs to be used in the computation and an execution sequence of those library programs and executing the determined library programs in the determined execution sequence to carry out the computation on the process-target data, wherein
in a case where a computing method determining section in the library program system is configured to determine how to share the computation and to transmit a result of the sharing method to the user program system,
in the user program system, the numerical data transfer section is configured to transfer input value information to the at least one computer on the basis of the received result of the sharing method.
[claim3]
3. The computing system of claim 2, wherein there are provided a plurality of computers on which the library program system operates.
[claim4]
4. The user program system contained in the computing system of claim 2.
[claim5]
5. The library program system contained in the computing system of claim 2.
[claim6]
6. A non-transitory computer-readable storage medium, on which a program is stored, the program causing a computer to perform functions of each section contained in the user program system of claim 4.
[claim7]
7. A non-transitory computer-readable storage medium, on which a program is stored, the program causing a computer to perform functions of each sections of the computing section contained in the library program system of claim 5.
[claim8]
8. A computing system comprising: a user program system for executing a user program; and
a library program system for executing library programs to be used in the user program,
the user program system including
a numerical data transfer section for, when the user program is to implement a process for the library program system to carry out computation, implementing a process of transferring input value information on input values for the computation to the library program system;
a computation request section for implementing a process of transferring, to the library program system, computation request information as information on content of the computation carried out in the library program system; and a computation-result receiving section for implementing a process of receiving, from the library program system, results of execution of the library programs in the library program system; and
the library program system including
a numerical data receiving section for implementing a process of receiving, from the user program system, the input value information on the input values for the computation which is used in the execution of the library programs;
a computing method determining section for implementing a process of analyzing the computation request information sent from the user program system, so as to determine types of library programs to be used and an execution sequence of those library programs; and
a computation-result transmitting section for implementing a process of transmitting the results of the execution of the library programs to the user program system, wherein
the user program system operates on a first computer and the library program system operates on the first computer or on at least one computer communicably connected to the first computer, the at least one computer being different from the first computer,
the numerical data transfer section and the computation request section are configured to transfer the input value information and the information on the content of the computation to the at least one computer on which the library program system operates,
in a case where the computing method determining section, in the library program system, which is configured to receive the input value information and the information on the content of the computation, is configured to determine how to share the computation and to transmit a result of the sharing method to the user program system,
the numerical data transfer section is configured to transfer input value information to the at least one computer on the basis of the received result of the sharing method, and
the computation request information is a character string which is written in a syntax different from (i) that of a programming language in which a program for executing the process of transferring the input value information and the process for receiving transfer and the results of execution of the library programs and (ii) that of a programming language in which the library programs are written.
[claim9]
9. The computing system of claim 8, wherein the numerical data transfer section transfers numerical data and a format thereof as the input value information.
[claim10]
10. The computing system of claim 8, wherein: the numerical data receiving section is configured to store the received input value information in the memory section; and the computing method determining section is configured to determine which of the input value information stored in the memory section to use in the execution of the library programs.
[claim11]
11. The computing system of claim 8, wherein the computation request section is configured to transfer a character string representing the content of the computation as the information on the content of the computation.
[claim12]
12. The computing system of claim 8, wherein the computation request section is configured to transfer a character string representing a mathematical equation per se as the information on the content of the computation.
[claim13]
13. The user program system contained in the computing system of claim 8.
[claim14]
14. The library program system contained in the computing system of claim 8.
[claim15]
15. A computing method for a computing system containing a user program system executing a user program and a library program system executing library programs to be used in the user program, the user program system operating on a first computer and the library program system operates on the first computer or on at least one computer communicably connected to the first computer, the at least one computer being different from the first computer,
said method comprising:
the user program system carrying out an input value transfer step of, when the user program is to implement a process for the library program system to carry out computation, implementing a process of transferring input value information on input values for the computation to the library program system;
a computation request step of implementing a process of transferring, to the library program system, computation request information as information on content of the computation carried out in the library program system; and a computation-result receiving step of implementing a process of receiving, from the library program system, results of execution of the library programs in, the library program, system; and
the library program system carrying out a numerical data receiving step of implementing a process of receiving, from the user program system, the input value Information on the input values for the computation which is used in the execution of the library programs;
a computing method determining step of implementing a process of analyzing the computation request information sent from the user program system, so as to determine types of library programs to be used and an execution sequence of those library programs; and
a computation-result transmitting step of implementing a process of transmitting the results of the execution of the library programs to the user program system, wherein
the user program system is configured to transfer the input value information and the information on the content of the computation to the at least one computer on which the library program system operates,
in a case where the library program system, which is configured to receive the input value information and the information on the content of the computation, is configured to determine how to share the computation and to transmit a result of the sharing a result of the sharing method to the user program system,
the user program system is configured to transfer input value information to the at least one computer on the basis of the received result of the sharing method, and
the computation request information is a character string which is written in a syntax different from (i) that of a programming language in which a program for executing the process of transferring the input value information and the process for receiving transfer and the results of execution of the library programs and (ii) that of a programming language in which the library programs are written.
  • 発明者/出願人(英語)
  • HASEGAWA HIDEHIKO
  • JAPAN SCIENCE AND TECHNOLOGY AGENCY
国際特許分類(IPC)
米国特許分類/主・副
  • 719/330
  • 719/319
参考情報 (研究プロジェクト等) CREST The Innovation of Simulation Technology and the Construction of Foundations for Its Practical Use AREA
ライセンスをご希望の方、特許の内容に興味を持たれた方は、問合せボタンを押してください。

PAGE TOP

close
close
close
close
close
close