CN113485802A - Easy-to-use large number computing system - Google Patents

Easy-to-use large number computing system Download PDF

Info

Publication number
CN113485802A
CN113485802A CN202110727210.0A CN202110727210A CN113485802A CN 113485802 A CN113485802 A CN 113485802A CN 202110727210 A CN202110727210 A CN 202110727210A CN 113485802 A CN113485802 A CN 113485802A
Authority
CN
China
Prior art keywords
software
server
calculation
computing
majority
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN202110727210.0A
Other languages
Chinese (zh)
Inventor
程宁波
邹伟
郭文彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Automation of Chinese Academy of Science
Original Assignee
Institute of Automation of Chinese Academy of Science
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 Institute of Automation of Chinese Academy of Science filed Critical Institute of Automation of Chinese Academy of Science
Priority to CN202110727210.0A priority Critical patent/CN113485802A/en
Publication of CN113485802A publication Critical patent/CN113485802A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

The invention relates to the field of scientific calculation, in particular to an easy-to-use large-number calculation system, and aims to solve the problem of reducing the use threshold of a large-number calculation execution algorithm library. The system of the present invention comprises: a majority computing software system and a majority computing hardware system; a large number of computing software systems run on a large number of computing hardware systems. The majority computing software system comprises: client software and server software; the client software is used for providing a man-machine interaction interface, editing and managing program codes and submitting computing task information to the server software; and the server software is used for carrying out majority calculation according to the calculation task information. According to the invention, the compiling of the calculation task program code is separated from the large number calculation, so that a user does not need to consider the problem of large number calculation when compiling the calculation task program code, and only needs to compile the program code of the calculation task and submit the calculation task according to a conventional and simple mode. Therefore, the use threshold of a large number of calculation execution algorithm libraries is greatly reduced.

Description

Easy-to-use large number computing system
Technical Field
The invention relates to the field of scientific computing, in particular to an easy-to-use large-number computing system.
Background
In current computer programming languages, the range of values that can be expressed by the data type is limited by the number of bits of the data type. Basic data types for computation include both integer and floating point types. In a common programming language, the largest range of values in integer data types is 64-bit integer data, and the largest range of floating point data types is 64-bit double-precision floating point data. Currently, there are also individual programming languages that support 128-bit data types. However, whether 64-bit or 128-bit data types, the range of values that can be expressed is limited, and the number of significant digits and the precision with which they can be expressed are limited. In some fields of physical simulation and astronomical calculation, conventional calculation cannot meet the requirements of numerical range and calculation precision, and most of calculations can process calculations with any precision and range.
Currently, most computations rely primarily on certain open source libraries (e.g., GMPs). Using these libraries for large numbers of calculations faces two limitations: 1) these libraries typically run under the linux operating system; 2) the use of these open source libraries requires a high programming base. Limitations with respect to the first aspect: at present, most of domestic users still use windows operating systems, and most of the users still use linux operating systems difficultly or cannot use linux operating systems; although a large number of individual computing libraries can be configured in a windows environment through means of recompilation and the like, the configuration process of the open-source environment is relatively complex, and general engineering technicians are difficult to configure successfully. Limitations with respect to the second aspect: the open source library is generally developed by adopting a programming language such as C, C + +, which not only requires a user to be skilled in mastering the programming language adopted by the open source library, but also requires the user to have a higher programming foundation. Due to the limitations of the two aspects, the threshold of large-number calculation programming is greatly improved, and professional large-number calculation programmers are required to be configured for some complex analog calculations.
In view of the above, the present invention is particularly proposed.
Disclosure of Invention
In order to solve the above problems in the prior art, the present invention provides an easy-to-use large number computing system, which reduces the threshold for using a large number computing execution algorithm library.
The invention provides an easy-to-use large number computing system, comprising: a majority computing software system and a majority computing hardware system;
the majority computing software system runs on the majority computing hardware system.
Preferably, the majority computing software system comprises: client software and server software;
the client software and the server software are communicated through a network;
the client software is used for providing a man-machine interaction interface, editing and managing program codes and submitting computing task information to the server software;
and the server software is used for carrying out majority calculation according to the calculation task information.
Preferably, the computing task information includes: data flow information and control flow information;
wherein,
the data flow information includes: program codes and raw data required for calculation;
the control flow information includes: and calculating an operation control instruction and a debugging control instruction.
Preferably, the server software performs majority calculation according to the data flow information and the control flow information, and sends feedback data flow information and feedback control flow information to the client software;
wherein the feedback data flow information comprises: calculating an intermediate result, printing information and a final calculation result; the feedback control flow information includes: debug information, exception information, and compute task information state information.
Preferably, the client software comprises one or more client software instances;
the server software comprises: the server side management software and the server side calculation execution software;
the server management software runs an example;
the server side calculation execution software runs a plurality of instances;
and the server management software distributes a calculation task to each server calculation execution software according to the data flow information and the control flow information, and sends the feedback data flow information and the feedback control flow information returned by each server calculation execution software to the client software.
Preferably, the majority computing hardware system comprises: a client computing device and a large array of computing servers;
the client computing device is used for running the client software;
and the large number computing server array is used for operating the server software.
Preferably, the array of large number compute servers comprises: a computation management server and a plurality of computation execution servers;
the calculation management server is used for operating the server management software;
each calculation execution server is used for running at least one server side calculation execution software.
Preferably, the computation management server and the computation execution server are both configured with a high-performance multi-core CPU computer server.
Preferably, each of the server computing and executing software includes: an interpreter and a large number calculation execution algorithm library;
the large number calculation execution algorithm library is a large number calculation library written by using a high-level programming language.
Preferably, the client computing device comprises: a desktop computer, a notebook computer, a workstation or a mobile portable terminal.
Compared with the closest prior art, the invention has the following beneficial effects:
the easy-to-use majority computing system provided by the invention comprises: a majority computing software system and a majority computing hardware system; the large-number computing software system runs on the large-number computing hardware system; the majority computing software system comprises: client software and server software; the client software and the server software communicate through a network. The client software is used for providing a man-machine interaction interface, editing and managing program codes and submitting computing task information to the server software; and the server software is used for carrying out majority calculation according to the calculation task information. The invention adopts client software and server software to realize the separation of the writing of the calculation task program codes and the calculation of large numbers. When a user writes a program code of a calculation task in client software, the problem of large-number calculation does not need to be considered, the program code of the calculation task only needs to be written according to a conventional simple mode and the calculation task is submitted, and the specific realization of the large-number calculation is completed by server software, so that the application threshold of a large-number calculation execution algorithm library is reduced to a great extent.
In addition, since the server software runs on the high-performance server array, the invention can greatly shorten the calculation time no matter the common large-number calculation task or the large-scale large-number calculation task is completed.
Drawings
FIG. 1 is a principal component schematic diagram of an easy-to-use large-scale computing system embodiment provided by the present invention;
FIG. 2 is a schematic diagram of client software communicating with server software in an embodiment of the present invention;
FIG. 3 is a schematic diagram of the main components of a large number computing server array in an embodiment of the present invention;
FIG. 4 is a schematic diagram illustrating the flow of information when server software processes a computing task according to an embodiment of the present invention;
FIG. 5 is a flowchart illustrating an embodiment of an interpreter processing a program code.
Detailed Description
Preferred embodiments of the present invention are described below with reference to the accompanying drawings. It should be understood by those skilled in the art that these embodiments are only for explaining the technical principle of the present invention, and are not intended to limit the scope of the present invention.
It should be noted that the terms "first" and "second" in the description of the present invention are used for convenience of description only and do not indicate or imply relative importance of the devices, elements or parameters, and therefore should not be construed as limiting the present invention.
FIG. 1 is a schematic diagram of the principal components of an easy-to-use large-scale computing system embodiment of the present invention. As shown in fig. 1, the majority calculation system of the present embodiment includes: a majority computing software system 10 and a majority computing hardware system 20, and the majority computing software system 10 runs on the majority computing hardware system 20.
Among them, the majority calculation software system 10 includes: client software 11 and server software 12; the client software 11 communicates with the server software 12 through a network; the client software 11 is used for providing a human-computer interaction interface, editing and managing program codes and submitting computing task information to the server software 12; the server software 12 is used for performing majority calculation according to the calculation task information.
The main functions provided by the client software 11 to the user include, but are not limited to, the following: program code compiling, calculation request submitting, running and debugging control, running and debugging information display, calculation result display and the like. The client software 11 provides mainly human-computer interaction interface functions and does not provide a large number of computing functions. In the aspect of the programming form of the program codes, a user only needs to write the program codes of the calculation tasks according to a conventional method (for example, writing is performed by adopting a simple script language), and the user is not required to know and master the related contents of a large number of calculations.
In this embodiment, the calculating task information includes: data flow information and control flow information. Wherein the data flow information comprises: program codes, original data required for calculation and the like, and does not contain information related to realization of majority calculation; the control flow information includes: and calculating an operation control instruction and a debugging control instruction and the like.
In this embodiment, the server software 12 performs majority calculation according to the data flow information and the control flow information, and sends feedback data flow information and feedback control flow information to the client software 11. Wherein, feeding back the data flow information comprises: calculating intermediate results, printing information, final calculation results and the like; the feedback control flow information includes: debug information, exception information, and compute task information status information, etc.
In this embodiment, the client software 11 may include one or more client software instances; the server software 12 may include: the server side management software and the server side calculation execution software; the server management software runs an example; the server side calculation execution software runs a plurality of instances.
Each server side calculation execution software comprises: an interpreter and a large number calculation execution algorithm library; the large number calculation execution algorithm library is a large number calculation library written by utilizing a high-level programming language, can be an existing mature open source large number calculation library, and can also be a designed and developed large number calculation library.
Fig. 2 is a schematic diagram of the client software and the server software communicating according to the embodiment of the present invention. As shown in fig. 2, in the present embodiment, M instances are run by the client software 11, one instance is run by the server management software 121, and N instances are run by the server calculation execution software 122. The client software 11 sends the calculation task information (data flow information and control flow information) to the server management software 121, the server management software 121 distributes the calculation tasks to the server calculation execution software 122 according to the data flow information and the control flow information, and sends the feedback data flow information and the feedback control flow information returned by the server calculation execution software to the client software.
As can also be seen from fig. 1, the majority computing hardware system 20 in this embodiment includes: a client computing device 21 and a large array of computing servers 22. Wherein the client computing device 21 is for running client software 11; a large array of compute servers 22 is used to run the server side software 12.
The client computing devices 21 establish a connection with the array of large number of compute service servers 22 over a network. An alternative embodiment is: the client computing device 21 and the large number computing server array 22 are arranged in the same local area network, and the client computing device 21 and the large number computing server array 22 establish network connection through a wired network. Another alternative embodiment is: the large number computing server array 22 is configured as a remote server, and the client computing device 21 establishes a network connection, which may be a wired connection or a wireless connection, with the large number computing server array 22 through the internet.
The client computing device 21 mainly includes, but is not limited to, a general desktop computer, a notebook computer, a workstation or a mobile portable terminal (e.g., a mobile phone, a pad), and the like. The requirement of most of computing client software on the computing performance of computing equipment is not high, so that the computing equipment with common configuration is adopted. Each client computing device may run one or more client software.
FIG. 3 is a schematic diagram of the main components of a large number computing server array in the embodiment of the present invention. As shown in fig. 3, in the present embodiment, the majority calculation server array 22 includes: a computation management server 221 and a plurality of computation execution servers 222. The calculation management server 221 is configured to run server management software; each compute execution server 222 is configured to run at least one server-side compute execution software.
The calculation management server 221 and the calculation execution server 222 are each configured with a high-performance multi-core CPU computer server. The computation execution server 222 is an actual execution device for a large number of computation tasks, and a plurality of computation execution servers 222 may perform large number of computations in parallel.
In this embodiment, the calculation management server runs 1 server management software, and each calculation execution server runs 1 server calculation execution software instance. Of course, when the computing power of the computing execution servers is sufficient, each computing execution server may run a plurality of server-side computing execution software instances; for example, the total number of CPU cores that a high-performance server can configure at present can reach several tens of cores. If only 1 server-side calculation execution software is operated, the calculation capacity of the server is not fully exerted, and in this case, a plurality of server-side calculation execution software instances can be operated on 1 calculation execution server in parallel.
FIG. 4 is a schematic diagram of information flow when server software processes a computing task according to an embodiment of the present invention. As shown in fig. 4, the server software 12 includes: server management software 121 and server calculation execution software 122. The server management software 121 includes: an information manager and a computing task allocator. The server-side calculation execution software 122 includes: interpreters and large-scale computation execution algorithm libraries.
The server management software 121 receives data (including "data flow information" and "control flow information") from the client management software, and then executes the following main steps: a) the information manager manages the received data flow information and control flow information; b) distributing a computing task by a computing task distributor according to the data flow information, the control flow information and the task load state of the server computing and executing software, namely distributing the server computing and executing software; c) the calculation task distributor sends the related data flow information and the control flow information to corresponding server side calculation execution software; d) the server computation execution software 122 receives "data flow information" and "control flow information"; e) the interpreter operates to complete the execution of the code program in the calculation task according to the data flow information and the control flow information, wherein the related large number operation part is realized by calling a large number calculation execution algorithm library; f) in the operating process of the interpreter, the feedback data flow information and the feedback control flow information are sent to an information manager of the server side management software, and the information manager sends the feedback data flow information and the feedback control flow information to the corresponding client side software.
FIG. 5 is a flowchart illustrating the processing of a piece of program code by an interpreter according to an embodiment of the present invention. As shown in fig. 5, the process includes 4 main steps: 1) lexical analysis; 2) analyzing the grammar; 3) AST traversal (AST-abstract syntax tree); 4) and (5) post-calculation processing. During an AST pass, operations involving large numbers of operations, the interpreter may call a large number of computation execution algorithm libraries. The large number calculation execution algorithm library can adopt a large number calculation library which is designed and developed by self, and can also adopt an existing mature open source large number calculation library. The language in which the majority of computing libraries are developed is not limited.
The embodiment can greatly reduce the technical threshold of using most of calculations. Client software is a direct human-computer interaction interface for users with most computing systems. When the user writes the program code of the calculation task in the client software, the problem of large-number calculation does not need to be considered, the program code of the calculation task only needs to be written according to a conventional simple mode and the calculation task is submitted, and the specific implementation problem of large-number calculation does not need to be considered. In addition, because the large-number computing server software runs on the high-performance server array, the invention can greatly shorten the computing time no matter the ordinary large-number computing task or the large-scale large-number computing task is completed.
Those of skill in the art will appreciate that the method steps of the examples described in connection with the embodiments disclosed herein may be embodied in electronic hardware, computer software, or combinations of both, and that the components and steps of the examples have been described above generally in terms of their functionality in order to clearly illustrate the interchangeability of electronic hardware and software. Whether such functionality is implemented as electronic hardware or software depends upon the particular application and design constraints imposed on the solution. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
So far, the technical solutions of the present invention have been described in connection with the preferred embodiments shown in the drawings, but it is easily understood by those skilled in the art that the scope of the present invention is obviously not limited to these specific embodiments. Equivalent changes or substitutions of related technical features can be made by those skilled in the art without departing from the principle of the invention, and the technical scheme after the changes or substitutions can fall into the protection scope of the invention.

Claims (10)

1. An easy-to-use majority computing system, the system comprising: a majority computing software system and a majority computing hardware system;
the majority computing software system runs on the majority computing hardware system.
2. The tractable big number computing system according to claim 1, wherein the big number computing software system comprises: client software and server software;
the client software and the server software are communicated through a network;
the client software is used for providing a man-machine interaction interface, editing and managing program codes and submitting computing task information to the server software;
and the server software is used for carrying out majority calculation according to the calculation task information.
3. The easy-to-use majority computing system of claim 2, wherein the computing task information comprises: data flow information and control flow information;
wherein,
the data flow information includes: program codes and raw data required for calculation;
the control flow information includes: and calculating an operation control instruction and a debugging control instruction.
4. The easy-to-use majority computation system of claim 3, wherein the server software performs majority computation based on the data flow information and the control flow information and sends feedback data flow information and feedback control flow information to the client software;
wherein,
the feedback data stream information includes: calculating an intermediate result, printing information and a final calculation result;
the feedback control flow information includes: debug information, exception information, and compute task information state information.
5. The tractable majority computing system according to claim 4,
the client software comprises one or more client software instances;
the server software comprises: the server side management software and the server side calculation execution software;
the server management software runs an example;
the server side calculation execution software runs a plurality of instances;
and the server management software distributes a calculation task to each server calculation execution software according to the data flow information and the control flow information, and sends the feedback data flow information and the feedback control flow information returned by each server calculation execution software to the client software.
6. An easy to use majority computation system according to any of claims 2-5, wherein the majority computation hardware system comprises: a client computing device and a large array of computing servers;
the client computing device is used for running the client software;
and the large number computing server array is used for operating the server software.
7. The easy-to-use big-count computing system of claim 6, wherein the big-count computing server array comprises: a computation management server and a plurality of computation execution servers;
the calculation management server is used for operating the server management software;
each calculation execution server is used for running at least one server side calculation execution software.
8. The easy-to-use majority computing system of claim 7 wherein the compute management server and the compute execution server are each configured with a high performance multi-core CPU computer server.
9. The easy-to-use majority computation system of claim 8, wherein each of the server-side computation execution software comprises: an interpreter and a large number calculation execution algorithm library;
the large number calculation execution algorithm library is a large number calculation library written by using a high-level programming language.
10. The easy-to-use majority computing system of claim 5, wherein the client computing device comprises: a desktop computer, a notebook computer, a workstation or a mobile portable terminal.
CN202110727210.0A 2021-06-29 2021-06-29 Easy-to-use large number computing system Pending CN113485802A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110727210.0A CN113485802A (en) 2021-06-29 2021-06-29 Easy-to-use large number computing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110727210.0A CN113485802A (en) 2021-06-29 2021-06-29 Easy-to-use large number computing system

Publications (1)

Publication Number Publication Date
CN113485802A true CN113485802A (en) 2021-10-08

Family

ID=77936673

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110727210.0A Pending CN113485802A (en) 2021-06-29 2021-06-29 Easy-to-use large number computing system

Country Status (1)

Country Link
CN (1) CN113485802A (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104166586A (en) * 2014-09-04 2014-11-26 中南大学 Transparent computing method and transparent computing system based on virtualization technology
CN106681699A (en) * 2015-11-06 2017-05-17 中国电力科学研究院 Online analyzing and calculating parallel programming auxiliary system and debugging method thereof for large power grid
CN112988114A (en) * 2021-03-12 2021-06-18 中国科学院自动化研究所 GPU-based large number computing system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104166586A (en) * 2014-09-04 2014-11-26 中南大学 Transparent computing method and transparent computing system based on virtualization technology
CN106681699A (en) * 2015-11-06 2017-05-17 中国电力科学研究院 Online analyzing and calculating parallel programming auxiliary system and debugging method thereof for large power grid
CN112988114A (en) * 2021-03-12 2021-06-18 中国科学院自动化研究所 GPU-based large number computing system

Similar Documents

Publication Publication Date Title
US10942716B1 (en) Dynamic computational acceleration using a heterogeneous hardware infrastructure
US7818410B1 (en) System and method of implementing major application migration
Zatsarinny et al. Toward high performance solutions as services of research digital platform
CN111666077B (en) Operator processing method and device, electronic equipment and storage medium
US8990294B2 (en) File system optimization by log/metadata analysis
CN109196476A (en) Seamless high-performance interoperability between the different type figure of shared garbage collector
Han Bioworks: a workflow system for automation of bioinformatics analysis processes
KR100869886B1 (en) Rehosting method which convert mainframe system into open system
CN111240686A (en) Cloud compiling method and system, terminal device, cloud server and storage medium
CN104572102A (en) Method for solving Chinese messy codes in JAVA
CN106843822B (en) Execution code generation method and equipment
CN112988114B (en) GPU-based large number computing system
CN113485802A (en) Easy-to-use large number computing system
CN111459924A (en) Data acquisition method, system, electronic device, and medium
CN105607892A (en) Concurrent execution method and system for multiple programs
CN110209631A (en) Big data processing method and its processing system
CN115641249A (en) Performance optimization method based on domestic platform GPU
Tardieu et al. X10 and APGAS at Petascale
CN110377401B (en) Transaction request processing method, device, server and storage medium based on IDEA
CN113986097A (en) Task scheduling method and device and electronic equipment
US20150154100A1 (en) Tuning business software for a specific business environment
CN104331302A (en) Application updating method, mobile terminal and communication system
CN104933616A (en) Financial server, data processing method thereof and system
Yu et al. PartitionTuner: An operator scheduler for deep‐learning compilers supporting multiple heterogeneous processing units
Harrison et al. The role of programming language in estimating software development costs

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20211008