eVariX 2.6 now available for Matlab® on multicore CPU and GPU !
What’s new with eVariX 2.6 ?
- Extended support of Matlab® features:
- nargin and nargout
- the load function
- classes (partial)
- Interfacing external C user libs with Matlab®.
- For Matlab®/Linux only: Automatic GPU code generation. NEW!
- Details available in the 2.6 Reference Guide
How to compile a code using eVariX ?
evarix mycode.m -o mycode.
How to get hostID
To get the hostID, run the rlmhostid program located in the etc folder of the eVariX installation directory.
- Depending on your configuration, the program displays one or several hostIDs separated by spaces. Choose one of these hostIDs and copy it in the Ask for License form. Ex:
Hostid of this machine: 001517af25c0 001517af25c1
Choose 001517af25c0 OR 001517af25c1
- If the hostID is of the form disksn=ALPHANUM, copy the whole string disksn=ALPHANUM in the form.
evarix command not found
Check EVARIX_INSTALL_DIR/bin directory is in PATH environment variable.
MEX compiler not found (under LINUX)
Check MATLAB_INSTALL_DIR/bin directory is in PATH environment variable.
G++ compiler not found
On Linux, add the g++ executable directory to the PATH environment variable. If g++ is not installed on the platform, install it (version 4.8 or higher).
On windows, add the MinGW64 g++ executable directory to the PATH environment variable (see evarix doc to add a value to environment variables). If g++ is not installed on the platform, download and install MinGW 64 (with g++ version 4.8 or higher).
Can not compile MEX file
Compilation of MATLAB code into MEX file requires that MATLAB is installed on the platform. The compilation of MEX file uses the MathWorks MEX drivers and requires some Matlab includes and libraries.
Can not compile SCILAB compiled libraries
Compilation of SCILAB code into compiled libraries requires that SCILAB (version 5.x.y) is installed on the platform. The ––scilab-root option of eVariX must be used because the compilation uses Scilab headers and libraries.
Troubles compiling C++ code generated by eVariX
Use the -v option of eVariX to get the proper compilation command. Check all paths to input/output files, includes directory (-I option) and libraries directory (-L option).
Report any persisting problems to email@example.com.
Despite parallel annotations added to the code, the binary does not run parallel
- Make sure the ––enable-parallel-pragmas option is passed to eVariX.
- Make sure the OMP_NUM_THREADS environment variable is properly set for your session.
- Make sure your computer architecture is multicore…
Be aware that user-added parallelization annotations are prescriptive : make sure your code is parallelizable and check for possible C++ compile time warnings about that.
Too many input files provided (error message)
Check the syntax of options passed to eVariX: correct syntaxes are -optName, ––optName or ––optName=value (–optName value is invalid).
fatal error: api_scilab.h: No such file or directory (g++ message with –sci option )
Use the ––scilab-root=/path/to/scilab option of eVariX,or set the SCILAB_ROOT variable in the evarix.cfg file.
How to generate code for GPGPU ?
The current, free eVariX-2.5 is focused on parallel code for multicore CPUs, and does not exploit existing GPUs. Next release, eVariX-2.6 will provide a complete solution for heterogeneous CPU+GPU architectures.
Segmentation fault error when calling eVariX into SCILAB graphic IDE
There are incompatibilities between eVariX-2.5 and some JAVA library(ies ) used by SCILAB. The workaround is to preload another version of this (those) library(ies) when launching SCILAB. For example, run SCILAB with the command:
Problem with the ––path option on Windows
On Windows systems, the ––path option is not recursive. If the required MATLAB/SCILAB files are in several directories, the ––path option must be used for each of those directories.