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;
}

Attachment: ompi_tuned_file.conf
Description: Binary data

Attachment: ompi_info_output
Description: Binary data

Attachment: tuned_output
Description: Binary data

Reply via email to