In the Center's large-scale computer systems, the process of making your source code to generating an executable module must be done on the Login or Frontend node. If users are permitted to make their program on the computing nodes of our systems, the computational workload will affect other user's job execution.
The usual workflow until execution of your program is as follows:
1. making, editing, and modifying source code.
2. generating an executable module from source code.
1. Making your source code
A user makes his/her source code by using the editor.vi and emacs are available on our center's Frontend node.
2.Generating an execution module from source code
Source code is just a sequence of characters for computers and so our systems cannot know how to execute it. Users need to generate an executable module runnable on systems from source code.
The process of generating an executable module from source code is divided into two processes: the generation process of the object module from the source code and the generation process of the executable module from the object module. Strictly , the former process is called compile and the latter process, link. In general, however, the whole process from source code to executable module is also called compile.
In the compilation process, a software called compiler performs a variety of analyses after pre-processing, such as the inclusion of header files. As the result, the source code is transformed to an object module in machine language, which the CPU can execute.
In the process of compilation, the compiler analyzes a source code and then generates the object module as the interim code of the executable module.
The compiling process is composed of a lexical analysis that analyzes which character and numeric numbers are written, a syntactic analysis which investigates the structure of the program, and semantic analysis which verifies the semantic meaning of the program. If you are interested in compilation, please review further details on your own. 🙂
The object module itself cannot be executable. In the object module, several functions used in the source code are not translated into a machine language. Therefore, in the linking process, several functions written in a machine language in the library are linked to the functions in the object module. After compilation and the linking processes, the executable module is finally generated.
In general, the compiler generates an executable module for the computer which compiler runs. In our Center, users need to do a cross-compile to generate their executable module for our large-scale computer systems on the Frontend and Login nodes. See below for the details of the cross compiler on our large-scale computer systems:
Cross compiler is a type of compiler that generates an executable module for different computer platforms other than on the computer platform the compiler and linker runs.