Hello, I am trying to use coll_tuned_dynamic_rules_filename option.
I am not sure if I do everything right or not. But my impression is that config file feature does not work as expected. For example, if I specify config file as in the attached ompi_tuned_file.conf and execute the attached simple broadcast example as : > mpirun -n 16 --mca coll_tuned_use_dynamic_rules 1 --mca > coll_tuned_dynamic_rules_filename ompi_tuned_file.conf -mca > coll_base_verbose 1 bcast_example > > > <https://mail.google.com/mail/u/0/?ui=2&ik=e63390c27f&view=att&th=14d6e6bef2c6fbca&attid=0.2&disp=safe&realattid=f_i9vxd25k1&zw> > I would expect that during run time the config file should be ignored as > it does not contain any configuration for communicator size 16. However, it > uses configuration for the last communicator for which the size is 5. I > have attached tuned_output file for more information. > > Similar problem exists even if the configuration file contains config for > communicator size 16. For example , I added to the configuration file first > communicator size 16 then communicator size 5. But it used configuration > for communicator size 5. > > Another interesting thing is that if the second communicator size is > greater than the first communicator in the config file then it seems to > work correctly. At least I tested it for the case where communicator one > had size 16 and second had 55. > > > I used a development version of Open MPI (1.9.0a1). I forked it into my > own github (https://github.com/khalid-hasanov/ompi) and I have attached > ompi_info outputs as well. > > I have added some printfs into coll_tuned_decision_dynamic.c file to > double check it: > > if (alg) { > > printf("Men burdayam: alg=%d\n", alg); > > /* we have found a valid choice from the file based rules for > this message size */ > > return ompi_coll_tuned_bcast_intra_do_this (buff, count, > datatype, root, > > comm, module, > > alg, faninout, > segsize); > > } /* found a method */ > > > > > Best regards, > Khalid >
#include <stdlib.h> #include <mpi.h> int main(int argc, char** argv) { MPI_Init(&argc, &argv); int array[1024]; int root=0; MPI_Bcast( array, 1024, MPI_CHAR, root, MPI_COMM_WORLD); MPI_Finalize(); return EXIT_SUCCESS; }
ompi_tuned_file.conf
Description: Binary data
ompi_info_output
Description: Binary data
tuned_output
Description: Binary data