2%> Verify the existence of ParaMonte-compatible MPI
3%> library installations on the current system.<br>
5%> \param[in]
vendor : The input scalar MATLAB string, containing the MPI
6%> library
vendor supported by the ParaMonte library.<br>
7%> Possible values are:<br>
9%> <li> ``OpenMPI``, representing the OpenMPI library.<br>
10%> <li> ``MPICH``, representing the MPICH MPI library.<br>
11%> <li> ``Intel``, representing the Intel MPI library.<br>
12%> <li> ``any``, representing any available MPI library.<br>
13%> Specifying
this value can force the function to
14%>
return as soon as any ParaMonte-compatible MPI library
15%> installation is detected on the current system.<br>
16%> <li> ``all``, representing all available MPI library.<br>
17%> Specifying
this value can lead to a comprehensive
18%> search
for all available ParaMonte-compatible
19%> MPI installations on the system,
which may
20%> time-consuming on some platforms.<br>
21%> This comprehensive system-level search
22%> only
if the initial shallow search
for
23%> the ParaMonte-compatible MPI library
24%> installations fails.<br>
26%> or any other informal
name returned by the ParaMonte
27%> MATLAB function [pm.lib.mpi.name()](@ref
name).<br>
28%> Note that **all values are
case-insensitive**.<br>
29%> (**optional,
default = ``
"any"``.)
32%> ``failed`` : The output scalar MATLAB ``logical`` that is ``
true``
33%>
if and only
if the MPI library verification fails.<br>
38%> failed = pm.lib.mpi.verify()
39%> failed = pm.lib.mpi.verify(
vendor)
44%> \include{lineno} example/
lib/mpi/
verify/main.m
46%> \include{lineno} example/
lib/mpi/
verify/main.out.m
51%> \JoshuaOsborne, May 21 2024, 7:18 PM, University of Texas at Arlington<br>
52%> \FatemehBagheri, May 20 2024, 1:25 PM, NASA Goddard Space Flight Center (GSFC), Washington, D.C.<br>
53%> \AmirShahmoradi, May 16 2016, 9:03 AM, Oden Institute
for Computational Engineering and Sciences (ICES), UT Austin<br>
66 % isall = strcmpi(
vendor,
"all");
67 % isany = strcmpi(
vendor,
"any");
69 % vendors = [
"Intel",
"MPICH",
"OpenMPI"];
71 % vendors = string(
vendor);
74 % mpiFound =
false(numel(vendors), 1);
75 %
for iven = numel(vendors)
77 % mpiVendor = vendors(iven);
78 % mpiVendorLower = lower(mpiVendor);
80 % disp(
"Checking for the " + mpiVendor +
" MPI library installations...")
82 % [mpiname, ~, ~] = pm.lib.mpi.runtime.detect(mpiVendor);
84 % mpiFound(iven) = ~strcmp(mpiname,
"");
86 % disp(pm.io.tab +
"An " + mpiVendor +
" MPI (runtime) library installation possibly exists on the system.")
88 % disp(pm.io.tab +
"None detected.")
94 %%%% Perform a brute-force search
for MPI installations.
98 if pm.sys.path.mpiexec.verify(
vendor);
function verify(in varval, in vartype, in varsize, in varname)
Verify the type and number of elements of the input varval match the specified input vartype and vars...
function name(in vendor)
Return the MPI library name as used in naming the ParaMonte MATLAB shared library directories.
function vendor(in name)
Return the MPI library vendor name from the input MPI name based on the internal ParaMonte shared lib...
function lib()
Return a scalar MATLAB string containing the path to the lib directory of the ParaMonte library packa...
function which(in vendor)
Return the a MATLAB string containing the path to the first mpiexec executable binary found in system...