Explore chapters and articles related to this topic
Computational Methods
Published in Efstathios E. Michaelides, Clayton T. Crowe, John D. Schwarzkopf, Multiphase Flow Handbook, 2016
Efstathios E. Michaelides, Clayton T. Crowe, John D. Schwarzkopf
MFIX is distributed as a single tarball that contains the source code, documentation, and a suite of tutorials. A Fortran 90 compiler is required to compile the code. Typical compilers include GNU (gfortran), Portland Group (pgf90), and Intel (ifort) compilers. For parallel execution in distributed memory parallel (DMP) mode, an MPI library must also be available (mpich or openmpi). Once the tarball is extracted, the code can be installed by invoking a build script. Typically, the compilation is performed in a directory called the run directory, where the input le and user-de ned les are located. Invoking the make le goes through a series of options to select the mode of execution (serial, DMP, SMP, or hybrid mode), the level of optimization (ranging from none for debugging purposes to aggressive for production runs), and the Fortran compiler. Advanced users can customize the compilation ags to use a compiler that is not listed in the make le or take advantage of their hardware architecture by adding speci c compilation ags that will optimize the code. A er successful compilation, an executable le called m x.exe is created. As with any CFD tool, becoming fully accustomed with the operation of the so ware requires time, and a careful study of the various tutorials that are distributed along with the source code is recommended. For basic simulations, the entire setup is contained within a single input le, called m x.dat. is is a text le with a list of keywords/values that can be edited to modify the simulation parameters. A complete description of the keywords is given in the user guide (also called the Readme le). Only keyword values that di er from the default value or do not have a default value need to be speci ed. Keywords can be entered in any order, but they are usually grouped into logical sections. Typically, new users will study a few tutorials and then select one that is similar to the simulations they want to perform. e input le from the tutorial serves as a starting point, which minimizes the e ort required to de ne the simulation parameters.
Automatic offloading method of loop statements of software to FPGA
Published in International Journal of Parallel, Emergent and Distributed Systems, 2021
Comparing to OpenCL, for easy use of heterogeneous hardware, there are technologies that specify parallel processing areas by specified directives, and compilers convert these codes into device-oriented codes based on specified directive meanings. Open Accelerators (OpenACC) is an example of a directive-based specification [21], and the Portland Group (PGI) compiler is an example of a directive-based compiler [22]. For example, users specify OpenACC directive ‘#pragma acc kernels’ on Fortran/C/C++ codes to process them in parallel, and the PGI compiler checks the parallel processing possibility and outputs and deploys binary files to execute on CPUs and GPUs. For Java, IBM JDK supports offloading to GPUs based on a Java lambda expression [23].
Study and evaluation of automatic offloading method in mixed offloading destination environment
Published in Cogent Engineering, 2022
For easy heterogeneous hardware programming, there are technologies that specify parallel processing areas by specified directives, and compilers transform these directives into device-oriented codes on the basis of specified directives. Open accelerators (OpenACC; Wienke et al., 2012) and OpenMP are examples of directive-based specifications, and the Portland Group Inc. (PGI) compiler (Wolfe, 2010) and gcc are examples of compilers that support these directives.
Proposal and evaluation of adjusting resource amount for automatically offloaded applications
Published in Cogent Engineering, 2022
For easy heterogeneous hardware programming, there are technologies that specify parallel processing areas by specified directives, and compilers transform these specified parts into device-oriented codes on the basis of directives. Open accelerators (OpenACC; Wienke et al., 2012) and OpenMP are examples of directive-based specifications, and the Portland Group Inc. (PGI) compiler (Wolfe, 2010) and gcc are examples of compilers that support these directives.