========================= What is Omni Compiler ? ========================= Omni Compiler is a compiler for code including `XcalableMP `_, `XcalableACC `_, and `OpenACC `_ directives. The base languages supported by Omni Compiler are C language (C99) and Fortran 2008 in XcalableMP, and C language (C99) in XcalableACC and OpenACC. Omni Compiler is one of source-to-source compilers that translate from code including directives to code including runtime calls. In Omni Compiler, `XcodeML `_ is used to analyze code in an intermediate code format of XML expression. The following figure shows the operation flow of Omni Compiler. .. image:: ../img/flow.png Omni Compiler uses a native compiler, for example ``mpicc`` or ``nvcc``, to create an execution file from translated code including runtime calls. The runtime library provided by Omni Compiler uses MPI in XcalableMP, and CUDA in OpenACC, and both MPI and CUDA in XcalableACC. In XcalableMP, Omni Compiler may create better runtime libraries by adding one of the onesided communication libraries to MPI. We describe these in detail in Section "Use of onesided library on XcalableMP" of :doc:`install`.