attached now .. Mohamad Chaarawi wrote: > Sorry, somehow i missed it!! > > I don't know what's going on exactly here, Ive never seen the > run_random_hostname_patterns.pl value.. > but i remember that i had some issues with hosts when setting the hosts > value. But then i commented them out. i don't know if that's the > problem, but i attached also all the ini files that im using.. > > > hosts = &if(&have_hostfile(), "--hostfile " . &hostfile(), \ > &if(&have_hostlist(), "--host " . &hostlist(), "")) > # Yes, all these quotes are necessary. Don't mess with them! > #hosts = &if(&have_hostfile(), "&join("--hostfile ", "&hostfile()")", \ > # "&if(&have_hostlist(), "&join("--host ", "&hostlist()")", "")") > > > Jeff Squyres wrote: >> Mohamad -- >> >> Did you have a chance to look at this? >> >> >> On Sep 19, 2007, at 7:30 AM, Jeff Squyres wrote: >> >>> That's weird; I don't know. >>> >>> Mohamad: can you send a snipit of your INI file that sets up the value >>> "run_random_hostname_patterns.pl"? I'm curious to see how it's >>> propagating down into the resource_manager value... >>> >>> >>> On Sep 18, 2007, at 8:43 PM, Josh Hursey wrote: >>> >>>> This is weird. How could the script "./wrappers/ >>>> run_random_hostname_patterns.pl" be submitted as the 'launcher' to >>>> the database? I thought submit.php would only get valid launchers >>>> from the client? >>>> >>>> -- Josh >>>> >>>> On Sep 18, 2007, at 8:05 PM, jjhur...@open-mpi.org wrote: >>>> >>>>> SQL QUERY: INSERT INTO test_run_command >>>>> (test_run_command_id, launcher, resource_mgr, parameters, network, >>>>> test_run_network_id) VALUES >>>>> ('132', './wrappers/run_random_hostname_patterns.pl', 'slurm', '', >>>>> '', '2') >>>>> SQL ERROR: ERROR: value too long for type character varying(16) >>>>> SQL ERROR: >>>> _______________________________________________ >>>> mtt-devel mailing list >>>> mtt-de...@open-mpi.org >>>> http://www.open-mpi.org/mailman/listinfo.cgi/mtt-devel >>> >>> --Jeff Squyres >>> Cisco Systems >>> >>> >> >> --Jeff Squyres >> Cisco Systems >> > >
-- Mohamad Chaarawi Instructional Assistant http://www.cs.uh.edu/~mschaara Department of Computer Science University of Houston 4800 Calhoun, PGH Room 526 Houston, TX 77204, USA
# # Copyright (c) 2006-2007 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2006-2007 Sun Microystems, Inc. All rights reserved. # # Template MTT configuration file for Open MPI core testers. The # intent for this template file is to establish at least some loose # guidelines for what Open MPI core testers should be running on a # nightly basis. This file is not intended to be an exhaustive sample # of all possible fields and values that MTT offers. Each site will # undoubtedly have to edit this template for their local needs (e.g., # pick compilers to use, etc.), but this file provides a baseline set # of configurations that we intend you to run. # OMPI core members will need to edit some values in this file based # on your local testing environment. Look for comments with "OMPI # Core:" for instructions on what to change. # Note that this file is artificially longer than it really needs to # be -- a bunch of values are explicitly set here that are exactly # equivalent to their defaults. This is mainly because there is no # reliable form of documentation for this ini file yet, so the values # here comprise a good set of what options are settable (although it # is not a comprehensive set). # Also keep in mind that at the time of this writing, MTT is still # under active development and therefore the baselines established in # this file may change on a relatively frequent basis. # The guidelines are as follows: # # 1. Download and test nightly snapshot tarballs of at least one of # the following: # - the trunk (highest preference) # - release branches (highest preference is the most recent release # branch; lowest preference is the oldest release branch) # 2. Run all 4 correctness test suites from the ompi-tests SVN # - trivial, as many processes as possible # - intel tests with all_tests_no_perf, up to 64 processes # - IBM, as many processes as possible # - IMB, as many processes as possible # 3. Run with as many different components as possible # - PMLs (ob1, dr) # - BTLs (iterate through sm, tcp, whatever high speed network(s) you # have, etc. -- as relevant) #====================================================================== # Overall configuration #====================================================================== [MTT] # OMPI Core: if you are not running in a scheduled environment and you # have a fixed hostfile for what nodes you'll be running on, fill in # the absolute pathname to it here. If you do not have a hostfile, # leave it empty. Example: # hostfile = /home/me/mtt-runs/mtt-hostfile # This file will be parsed and will automatically set a valid value # for &env_max_np() (it'll count the number of lines in the hostfile, # adding slots/cpu counts if it finds them). The "hostfile" value is # ignored if you are running in a recognized scheduled environment. hostfile = # OMPI Core: if you would rather list the hosts individually on the # mpirun command line, list hosts here delimited by whitespace (if you # have a hostfile listed above, this value will be ignored!). Hosts # can optionally be suffixed with ":num", where "num" is an integer # indicating how many processes may be started on that machine (if not # specified, ":1" is assumed). The sum of all of these values is used # for &env_max_np() at run time. Example (4 uniprocessors): # hostlist = node1 node2 node3 node4 # Another example (4 2-way SMPs): # hostlist = node1:2 node2:2 node3:2 node4:2 # The "hostlist" value is ignored if you are running in a scheduled # environment or if you have specified a hostfile. hostlist = # OMPI Core: if you are running in a scheduled environment and want to # override the scheduler and set the maximum number of processes # returned by &env_max_procs(), you can fill in an integer here. max_np = # OMPI Core: Output display preference; the default width at which MTT # output will wrap. textwrap = 76 # OMPI Core: After the timeout for a command has passed, wait this # many additional seconds to drain all output, and then kill it with # extreme prejiduce. drain_timeout = 5 # OMPI Core: Whether this invocation of the client is a test of the # client setup itself. Specifically, this value should be set to true # (1) if you are testing your MTT client and/or INI file and do not # want the results included in normal reporting in the MTT central # results database. Results submitted in "trial" mode are not # viewable (by default) on the central database, and are automatically # deleted from the database after a short time period (e.g., a week). # Setting this value to 1 is exactly equivalent to passing "--trial" # on the MTT client command line. However, any value specified here # in this INI file will override the "--trial" setting on the command # line (i.e., if you set "trial = 0" here in the INI file, that will # override and cancel the effect of "--trial" on the command line). # trial = 0 # OMPI Core: Set the scratch parameter here (if you do not want it to # be automatically set to your current working directory). Setting # this parameter accomplishes the same thing that the --scratch option # does. # scratch = &getenv("HOME")/mtt-scratch # OMPI Core: Set local_username here if you would prefer to not have # your local user ID in the MTT database # local_username = # OMPI Core: --force can be set here, instead of at the command line. # Useful for a developer workspace in which it makes no sense to not # use --force # force = 1 # OMPI Core: Specify a list of sentinel files that MTT will regularly # check for. If these files exist, MTT will exit more-or-less # immediately (i.e., after the current test completes) and report all # of its results. This is a graceful mechanism to make MTT stop right # where it is but not lose any results. # terminate_files = &getenv("HOME")/mtt-stop,&scratch_root()/mtt-stop # OMPI Core: Specify a default description string that is used in the # absence of description strings in the MPI install, Test build, and # Test run sections. The intent of this field is to record variable # data that is outside the scope, but has effect on the software under # test (e.g., firmware version of a NIC). If no description string is # specified here and no description strings are specified below, the # description data field is left empty when reported. # description = NIC firmware: &system("get_nic_firmware_rev") # OMPI Core: Specify a logfile where you want all MTT output to be # sent in addition to stdout / stderr. # logfile = /tmp/my-logfile.txt # OMPI Core: If you have additional .pm files for your own funclets, # you can have a comma-delimited list of them here. Note that each # .pm file *must* be a package within the MTT::Values::Functions # namespace. For example, having a Cisco.pm file must include the # line: # # package MTT::Values::Functions::Cisco; # # If this file contains a perl function named foo, you can invoke this # functlet as &Cisco::foo(). Note that funclet files are loaded # almost immediately, so you can use them even for other field values # in the MTT section. # funclet_files = /path/to/file1.pm, /path/to/file2.pm #---------------------------------------------------------------------- [Lock] # The only module available is the MTTLockServer, and requires running # the mtt-lock-server executable somewhere. You can leave this # section blank and there will be no locking. #module = MTTLockServer #mttlockserver_host = hostname where mtt-lock-server is running #mttlockserver_port = integer port number of the mtt-lock-server #====================================================================== # MPI get phase #====================================================================== [MPI get: ompi-nightly-trunk] mpi_details = Open MPI module = OMPI_Snapshot ompi_snapshot_url = http://www.open-mpi.org/nightly/trunk #====================================================================== # Install MPI phase #====================================================================== [MPI install: gcc warnings] mpi_get = ompi-nightly-trunk save_stdout_on_success = 1 merge_stdout_stderr = 0 bitness = 32 module = OMPI ompi_vpath_mode = none # OMPI Core: This is a GNU make option; if you are not using GNU make, # you'll probably want to delete this field (i.e., leave it to its # default [empty] value). ompi_make_check = 1 # OMPI Core: You will likely need to update these values for whatever # compiler you want to use. You can pass any configure flags that you # want, including those that change which compiler to use (e.g., CC=cc # CXX=CC F77=f77 FC=f90). Valid compiler names are: gnu, pgi, intel, # ibm, kai, absoft, pathscale, sun. If you have other compiler names # that you need, let us know. Note that the compiler_name flag is # solely for classifying test results; it does not automatically pass # values to configure to set the compiler. ompi_compiler_name = gnu ompi_compiler_version = &get_gcc_version() ompi_configure_arguments = --enable-picky --enable-debug --enable-sparse-groups --with-openib=/usr/local/ofed #====================================================================== # MPI run details #====================================================================== [MPI Details: Open MPI] # MPI tests exec = mpirun @hosts@ -np &test_np() @mca@ --prefix &test_prefix() &test_executable() &test_argv() # ORTE tests exec:rte = &test_executable() --host &env_hosts() --prefix &test_prefix() &test_argv() #hosts = &if(&have_hostfile(), "--hostfile " . &hostfile(), \ # &if(&have_hostlist(), "--host " . &hostlist(), "")) # Yes, all these quotes are necessary. Don't mess with them! #hosts = &if(&have_hostfile(), "&join("--hostfile ", "&hostfile()")", \ # "&if(&have_hostlist(), "&join("--host ", "&hostlist()")", "")") # Example showing conditional substitution based on the MPI get # section name (e.g., different versions of OMPI have different # capabilities / bugs). mca = &enumerate( \ "--mca btl openib,sm,self --mca mpi_leave_pinned 1") # Boolean indicating IB connectivity is_up = &check_ipoib_connectivity() # Figure out which mca's to use mca = <<EOT &perl(' # Return cached mca, if we have it if (defined(@mca)) { return \@mca; } my @hosts = split /\s+|,/, hostlist_hosts(); if (scalar(@hosts) < 2) { push(@mca, "--mca btl self,sm"); } else { if ($ib_up) { push(@mca, "--mca btl self,openib"); } else { push(@mca, "--mca btl self,tcp"); } } return \@mca; ') EOT #---------------------------------------------------------------------- # WARNING: THIS DEFAULT after_each_exec STEP IS PRONE TO FAILURE! # Given that part of what we are testing is ORTE itself, using orterun # to launch something to cleanup can be problematic. We *HIGHLY* # recommend that you replace the after_each_exec section default value # below with something that your run-time system can performan # natively. For example, putting "srun -N $SLURM_NNODES killall -9 # mpirun orted &test_executable()" works nicely on SLURM / Linux # systems -- assuming that your MTT run has all nodes exclusively to # itself (i.e., that the "killall" won't kill some legitimate jobs). #---------------------------------------------------------------------- # A helper script is installed by the "OMPI" MPI Install module named # "mtt_ompi_cleanup.pl". This script is orterun-able and will kill # all rogue orteds on a node and whack any session directories. # Invoke via orterun just to emphasize that it is not an MPI # application. The helper script is installed in OMPI's bin dir, so # it'll automatically be found in the path (because OMPI's bin dir is # in the path). #after_each_exec = &if(&ne("", &getenv("SLURM_NNODES")), "srun -N &getenv("SLURM_NNODES")") ~/mtt-testing/after_each_exec.pl after_each_exec = srun -N $SLURM_NNODES killall -9 mpirun orted &test_executable() #====================================================================== # Test get phase #====================================================================== [Test get: ibm] module = SVN svn_url = https://svn.open-mpi.org/svn/ompi-tests/trunk/ibm svn_post_export = <<EOT ./autogen.sh EOT #---------------------------------------------------------------------- [Test get: onesided] module = SVN svn_url = https://svn.open-mpi.org/svn/ompi-tests/trunk/onesided svn_post_export = <<EOT ./autogen.sh EOT #---------------------------------------------------------------------- [Test get: mpicxx] module = SVN svn_url = https://svn.open-mpi.org/svn/ompi-tests/trunk/cxx-test-suite svn_post_export = <<EOT ./autogen.sh EOT #---------------------------------------------------------------------- [Test get: imb] module = SVN svn_url = https://svn.open-mpi.org/svn/ompi-tests/trunk/IMB_2.3 #---------------------------------------------------------------------- [Test get: netpipe] module = SVN svn_url = https://svn.open-mpi.org/svn/ompi-tests/trunk/NetPIPE_3.6.2 #---------------------------------------------------------------------- [Test get: orte] module = SVN svn_url = https://svn.open-mpi.org/svn/ompi-tests/trunk/orte #====================================================================== # Test build phase #====================================================================== [Test build: ibm] test_get = ibm save_stdout_on_success = 1 merge_stdout_stderr = 1 stderr_save_lines = 100 module = Shell shell_build_command = <<EOT ./configure CC=mpicc CXX=mpic++ F77=mpif77 make EOT #---------------------------------------------------------------------- [Test build: onesided] test_get = onesided save_stdout_on_success = 1 merge_stdout_stderr = 1 stderr_save_lines = 100 module = Shell shell_build_command = <<EOT ./configure make EOT #---------------------------------------------------------------------- [Test build: mpicxx] test_get = mpicxx save_stdout_on_success = 1 merge_stdout_stderr = 1 module = Shell shell_build_command = <<EOT ./configure CC=mpicc CXX=mpic++ make EOT #---------------------------------------------------------------------- [Test build: imb] test_get = imb save_stdout_on_success = 1 merge_stdout_stderr = 1 stderr_save_lines = 100 module = Shell shell_build_command = <<EOT cd src make clean IMB-MPI1 EOT #---------------------------------------------------------------------- [Test build: netpipe] test_get = netpipe save_stdout_on_success = 1 merge_stdout_stderr = 1 stderr_save_lines = 100 module = Shell shell_build_command = <<EOT make mpi EOT #---------------------------------------------------------------------- [Test build: orte] test_get = orte save_stdout_on_success = 1 merge_stdout_stderr = 1 stderr_save_lines = 100 module = Shell shell_build_command = <<EOT gmake EOT #====================================================================== # Test Run phase #====================================================================== [Test run: ibm] test_build = ibm pass = &and(&cmd_wifexited(), &eq(&cmd_wexitstatus(), 0)) skipped = &and(&cmd_wifexited(), &eq(&cmd_wexitstatus(), 77)) timeout = &max(30, &multiply(10, &test_np())) save_stdout_on_pass = 1 merge_stdout_stderr = 1 stdout_save_lines = 100 np = &env_max_procs() specify_module = Simple # Similar rationale to the intel test run section simple_first:tests = &find_executables("collective", "communicator", \ "datatype", "dynamic", "environment", \ "group", "info", "io", "onesided", \ "pt2pt", "topology") # Similar rationale to the intel test run section simple_fail:tests = environment/abort environment/final simple_fail:pass = &and(&cmd_wifexited(), &ne(&cmd_wexitstatus(), 0)) simple_fail:exclusive = 1 simple_fail:np = &env_max_procs() #---------------------------------------------------------------------- [Test run: onesided] test_build = onesided pass = &and(&cmd_wifexited(), &eq(&cmd_wexitstatus(), 0)) timeout = &max(30, &multiply(10, &test_np())) save_stdout_on_pass = 1 merge_stdout_stderr = 1 stdout_save_lines = 100 np = &if(>(&env_max_procs(), 0), &step(2, &max(2, &env_max_procs()), 2), 2) specify_module = Simple simple_pass:tests = &cat("run_list") #---------------------------------------------------------------------- [Test run: mpicxx] test_build = mpicxx pass = &and(&cmd_wifexited(), &eq(&cmd_wexitstatus(), 0)) timeout = &max(30, &multiply(10, &test_np())) save_stdout_on_pass = 1 merge_stdout_stderr = 1 argv = &if(&eq("&mpi_get_name()", "ompi-nightly-v1.1"), "-nothrow", "") np = &env_max_procs() specify_module = Simple simple_pass:tests = src/mpi2c++_test src/mpi2c++_dynamics_test #---------------------------------------------------------------------- [Test run: imb correctness] test_build = imb pass = &and(&cmd_wifexited(), &eq(&cmd_wexitstatus(), 0)) timeout = &max(1800, &multiply(50, &test_np())) save_stdout_on_pass = 1 merge_stdout_stderr = 1 stdout_save_lines = 100 np = &env_max_procs() specify_module = Simple simple_only:tests = src/IMB-MPI1 #---------------------------------------------------------------------- [Test run: imb performance] test_build = imb pass = &eq(&cmd_wexitstatus(), 0) timeout = -1 save_stdout_on_pass = 1 # Ensure to leave this value as "-1", or performance results could be lost! stdout_save_lines = -1 merge_stdout_stderr = 1 argv = -npmin &test_np() &enumerate("PingPong", "PingPing", "Sendrecv", "Exchange", "Allreduce", "Reduce", "Reduce_scatter", "Allgather", "Allgatherv", "Alltoall", "Bcast", "Barrier") specify_module = Simple analyze_module = IMB simple_pass:tests = src/IMB-MPI1 #---------------------------------------------------------------------- [Test run: netpipe] test_build = netpipe pass = &eq(&cmd_wexitstatus(), 0) timeout = -1 save_stdout_on_pass = 1 # Ensure to leave this value as "-1", or performance results could be lost! stdout_save_lines = -1 merge_stdout_stderr = 1 # NetPIPE is ping-pong only, so we only need 2 procs np = 2 specify_module = Simple analyze_module = NetPipe simple_pass:tests = NPmpi #---------------------------------------------------------------------- [Test run: orte] test_build = orte pass = &eq(&test_wexitstatus(), 0) # Give these tests a good long time to run. # (E.g., one orte test runs through a long series of # hostname patterns) timeout = 5:00 save_stdout_on_pass = 1 merge_stdout_stderr = 1 np = &if(>(&env_max_procs(), 0), &step(2, &max(2, &env_max_procs()), 2), 2) module = Simple specify_module = Simple mpi_details_exec = rte simple_only:tests = &find_executables("./wrappers") simple_only_if_exec_exists = 1 #====================================================================== # Reporter phase #====================================================================== [Reporter: IU database] module = MTTDatabase mttdatabase_realm = OMPI mttdatabase_url = https://www.open-mpi.org/mtt/submit/ # OMPI Core: Change this to be the username and password for your # submit user. Get this from the OMPI MTT administrator. mttdatabase_username = uh mttdatabase_password = mttdatabase_password = &stringify(&cat("/home/mschaara/mtt-testing/mtt-db-password.txt")) # OMPI Core: Change this to be some short string identifying your # cluster. mttdatabase_platform = shark #---------------------------------------------------------------------- # This is a backup for while debugging MTT; it also writes results to # a local text file [Reporter: text file backup] module = TextFile textfile_filename = $phase-$section-$mpi_name-$mpi_version.txt textfile_summary_header = <<EOT hostname: &shell("hostname") uname: &shell("uname -a") who am i: &shell("who am i") EOT textfile_summary_footer = textfile_detail_header = textfile_detail_footer = textfile_textwrap = 78
#====================================================================== # Generic OMPI core performance testing template configuration #====================================================================== [MTT] # Leave this string so that we can identify this data subset in the # database # OMPI Core: Use a "test" label until we're ready to run real results description = [testbake] #description = [2007 collective performance bakeoff] # OMPI Core: Use the "trial" flag until we're ready to run real results trial = 1 # Put other values here as relevant to your environment. #---------------------------------------------------------------------- [Lock] # Put values here as relevant to your environment. #====================================================================== # MPI get phase #====================================================================== [MPI get: ompi-nightly-trunk] mpi_details = OMPI module = OMPI_Snapshot ompi_snapshot_url = http://www.open-mpi.org/nightly/trunk #---------------------------------------------------------------------- [MPI get: MPICH2] mpi_details = MPICH2 module = Download download_url = http://www-unix.mcs.anl.gov/mpi/mpich2/downloads/mpich2-1.0.5p4.tar.gz #---------------------------------------------------------------------- [MPI get: MVAPICH2] mpi_details = MVAPICH2 module = Download download_url = http://mvapich.cse.ohio-state.edu/download/mvapich2/mvapich2-0.9.8p3.tar.gz #====================================================================== # Install MPI phase #====================================================================== # All flavors of Open MPI [MPI install: OMPI/GNU-standard] mpi_get = ompi-nightly-trunk save_stdout_on_success = 1 merge_stdout_stderr = 0 module = OMPI ompi_compiler_name = gnu ompi_compiler_version = &get_gcc_version() # Adjust these configure flags for your site ompi_configure_arguments = CFLAGS=-O3 --enable-mpirun-prefix-by-default --enable-branch-probabilities --disable-heterogeneous --without-mpi-param-check --enable-sparse-groups --with-openib=/usr/local/ofed #---------------------------------------------------------------------- [MPI install: MPICH2] mpi_get = mpich2 save_stdout_on_success = 1 merge_stdout_stderr = 0 # Adjust this for your site (this is what works at Cisco). Needed to # launch in SLURM; adding this to LD_LIBRARY_PATH here propagates this # all the way through the test run phases that use this MPI install, # where the test executables will need to have this set. prepend_path = LD_LIBRARY_PATH /opt/SLURM/lib module = MPICH2 mpich2_compiler_name = gnu mpich2_compiler_version = &get_gcc_version() mpich2_configure_arguments = --disable-f90 CFLAGS=-O3 --enable-fast --with-device=ch3:nemesis # These are needed to launch through SLURM; adjust as appropriate. mpich2_additional_wrapper_ldflags = -L/opt/SLURM/lib mpich2_additional_wrapper_libs = -lpmi #---------------------------------------------------------------------- [MPI install: MVAPICH2] mpi_get = mvapich2 save_stdout_on_success = 1 merge_stdout_stderr = 0 # Adjust this for your site (this is what works at Cisco). Needed to # launch in SLURM; adding this to LD_LIBRARY_PATH here propagates this # all the way through the test run phases that use this MPI install, # where the test executables will need to have this set. prepend_path = LD_LIBRARY_PATH /opt/SLURM/lib module = MVAPICH2 # Adjust this to be where your OFED is installed mvapich2_setenv = OPEN_IB_HOME /usr/local/ofed mvapich2_setenv = F77 gfortran mvapich2_setenv = LIBS -L/usr/local/ofed/lib64 -libverbs -lpthread mvapich2_build_script = make.mvapich2.ofa mvapich2_compiler_name = gnu mvapich2_compiler_version = &get_gcc_version() # These are needed to launch through SLURM; adjust as appropriate. mvapich2_additional_wrapper_ldflags = -L/opt/SLURM/lib mvapich2_additional_wrapper_libs = -lpmi #====================================================================== # MPI run details #====================================================================== [MPI Details: OMPI] # Check &test_alloc() for byslot or bynode exec = mpirun @alloc@ -np &test_np() @mca@ &test_executable() &test_argv() parameters = &MPI::OMPI::find_mpirun_params(&test_command_line(), \ &test_executable()) network = &MPI::OMPI::find_network(&test_command_line(), &test_executable()) alloc = &if(&eq(&test_alloc(), "node"), "--bynode", "--byslot") mca = &enumerate( \ "--mca btl sm,tcp,self ", \ "--mca btl tcp,self ", \ "--mca btl sm,openib,self ", \ "--mca btl sm,openib,self --mca mpi_leave_pinned 1 ", \ "--mca btl openib,self ", \ "--mca btl openib,self --mca mpi_leave_pinned 1 ", \ "--mca btl openib,self --mca mpi_leave_pinned_pipeline 1 ", \ "--mca btl openib,self --mca btl_openib_use_srq 1 ") # It is important that the after_each_exec step is a single # command/line so that MTT will launch it directly (instead of via a # temporary script). This is because the "srun" command is # (intentionally) difficult to kill in some cases. See # https://svn.open-mpi.org/trac/mtt/changeset/657 for details. after_each_exec = &if(&ne("", &getenv("SLURM_NNODES")), "srun -N " . &getenv("SLURM_NNODES")) /home/mschaara/mtt-testing/after_each_exec.pl #---------------------------------------------------------------------- [MPI Details: MPICH2] # Launching through SLURM. If you use mpdboot instead, you need to # ensure that multiple mpd's on the same node don't conflict (or never # happen). exec = srun @alloc@ -n &test_np() &test_executable() &test_argv() # If not using SLURM, you'll need something like this (not tested). # You may need different hostfiles for running by slot/by node. #exec = mpiexec -np &test_np() --host &hostlist() &test_executable() network = loopback,ethernet,shmem # In this SLURM example, if each node has 4 CPUs, telling SLURM to # launching "by node" means specifying that each MPI process will use 4 # CPUs. alloc = &if(&eq(&test_alloc(), "node"), "-c 2", "") #---------------------------------------------------------------------- [MPI Details: MVAPICH2] # Launching through SLURM. If you use mpdboot instead, you need to # ensure that multiple mpd's on the same node don't conflict (or never # happen). exec = srun @alloc@ -n &test_np() &test_executable() &test_argv() # If not using SLURM, you'll need something like this (not tested). # You may need different hostfiles for running by slot/by node. #exec = mpiexec -np &test_np() --host &hostlist() &test_executable() network = loopback,verbs,shmem # In this example, each node has 4 CPUs, so to launch "by node", just # specify that each MPI process will use 4 CPUs. alloc = &if(&eq(&test_alloc(), "node"), "-c 2", "") #====================================================================== # Test get phase #====================================================================== [Test get: netpipe] module = Download download_url = http://www.scl.ameslab.gov/netpipe/code/NetPIPE_3.6.2.tar.gz #---------------------------------------------------------------------- [Test get: osu] module = SVN svn_url = https://svn.open-mpi.org/svn/ompi-tests/trunk/osu #---------------------------------------------------------------------- [Test get: imb] module = SVN svn_url = https://svn.open-mpi.org/svn/ompi-tests/trunk/IMB_2.3 #---------------------------------------------------------------------- [Test get: skampi] module = SVN svn_url = https://svn.open-mpi.org/svn/ompi-tests/trunk/skampi-5.0.1 #====================================================================== # Test build phase #====================================================================== [Test build: netpipe] test_get = netpipe save_stdout_on_success = 1 merge_stdout_stderr = 1 stderr_save_lines = 100 module = Shell shell_build_command = <<EOT make mpi EOT #---------------------------------------------------------------------- [Test build: osu] test_get = osu save_stdout_on_success = 1 merge_stdout_stderr = 1 stderr_save_lines = 100 module = Shell shell_build_command = <<EOT make osu_latency osu_bw osu_bibw EOT #---------------------------------------------------------------------- [Test build: imb] test_get = imb save_stdout_on_success = 1 merge_stdout_stderr = 1 module = Shell shell_build_command = <<EOT cd src make clean IMB-MPI1 EOT #---------------------------------------------------------------------- [Test build: skampi] test_get = skampi save_stdout_on_success = 1 merge_stdout_stderr = 1 stderr_save_lines = 100 module = Shell # Set EVERYONE_CAN_MPI_IO for HP MPI shell_build_command = <<EOT make CFLAGS="-O2 -DPRODUCE_SPARSE_OUTPUT -DEVERYONE_CAN_MPI_IO" EOT #====================================================================== # Test Run phase #====================================================================== [Test run: netpipe] test_build = netpipe pass = &and(&cmd_wifexited(), &eq(&cmd_wexitstatus(), 0)) # Timeout hueristic: 10 minutes timeout = 10:00 save_stdout_on_pass = 1 # Ensure to leave this value as "-1", or performance results could be lost! stdout_save_lines = -1 merge_stdout_stderr = 1 np = 2 alloc = node specify_module = Simple analyze_module = NetPipe simple_pass:tests = NPmpi #---------------------------------------------------------------------- [Test run: osu] test_build = osu pass = &and(&cmd_wifexited(), &eq(&cmd_wexitstatus(), 0)) # Timeout hueristic: 10 minutes timeout = 10:00 save_stdout_on_pass = 1 # Ensure to leave this value as "-1", or performance results could be lost! stdout_save_lines = -1 merge_stdout_stderr = 1 np = 2 alloc = node specify_module = Simple analyze_module = OSU simple_pass:tests = osu_bw osu_latency osu_bibw #---------------------------------------------------------------------- [Test run: imb] test_build = imb pass = &and(&cmd_wifexited(), &eq(&cmd_wexitstatus(), 0)) # Timeout hueristic: 10 minutes timeout = 10:00 save_stdout_on_pass = 1 # Ensure to leave this value as "-1", or performance results could be lost! stdout_save_lines = -1 merge_stdout_stderr = 1 np = &env_max_procs() argv = -npmin &test_np() &enumerate("PingPong", "PingPing", "Sendrecv", "Exchange", "Allreduce", "Reduce", "Reduce_scatter", "Allgather", "Allgatherv", "Alltoall", "Bcast", "Barrier") specify_module = Simple analyze_module = IMB simple_pass:tests = src/IMB-MPI1 #---------------------------------------------------------------------- [Test run: skampi] test_build = skampi pass = &and(&cmd_wifexited(), &eq(&cmd_wexitstatus(), 0)) # Timeout hueristic: 10 minutes timeout = 10:00 save_stdout_on_pass = 1 # Ensure to leave this value as "-1", or performance results could be lost! stdout_save_lines = -1 merge_stdout_stderr = 1 np = &env_max_procs() argv = -i &find("mtt_.+.ski", "input_files_bakeoff") specify_module = Simple analyze_module = SKaMPI simple_pass:tests = skampi #====================================================================== # Reporter phase #====================================================================== [Reporter: IU database] module = MTTDatabase mttdatabase_realm = OMPI mttdatabase_url = https://www.open-mpi.org/mtt/submit/ # Change this to be the username and password for your submit user. # Get this from the OMPI MTT administrator. mttdatabase_username = uh mttdatabase_password = &stringify(&cat("/home/mschaara/mtt-testing/mtt-db-password.txt")) # Change this to be some short string identifying your cluster. mttdatabase_platform = shark mttdatabase_debug_filename = mttdb_debug_file_perf mttdatabase_keep_debug_files = 1 #---------------------------------------------------------------------- # This is a backup reporter; it also writes results to a local text # file [Reporter: text file backup] module = TextFile textfile_filename = $phase-$section-$mpi_name-$mpi_version.txt textfile_summary_header = <<EOT Hostname: &shell("hostname") uname: &shell("uname -a") Username: &shell("who am i") EOT textfile_summary_footer = textfile_detail_header = textfile_detail_footer = textfile_textwrap = 78