VI4IO / io-500-dev

IO-500
37 stars 22 forks source link

Should io500.sh be updated to look for the pfind parameters ? #69

Open pvaldria opened 4 years ago

pvaldria commented 4 years ago

Current version is not looking for most of the parameters which can be set for the io500 C app version. https://github.com/VI4IO/io500-app/blob/e4c73effae9657a6b4ef79319a2840ee756af223/io500.sh#L224

The io500 C-app version config file allows:

[find]
# Set to an external script to perform the find phase
external-script = 
# Extra arguments for external scripts
external-extra-args = 
# Startup arguments for external scripts
external-mpi-args = 
# Set the number of processes for pfind
nproc = 
# Pfind queue length
pfind-queue-length = 10000
# Pfind Steal from next
pfind-steal-next = FALSE
# Parallelize the readdir by using hashing. Your system must support this!
pfind-parallelize-single-dir-access-using-hashing = FALSE

As a workaround, I manually added the below: In io500.sh script:

function setup_find {
  io500_find_mpi="True"
  io500_find_cmd_args="-N -q 2000 -s $io500_stonewall_timer -r $io500_result_dir/pfind_results"
Non-C version  - success
[Starting] find
[Exec] mpiexec --allow-run-as-root -mca btl self -x UCX_TLS=rc,self,sm -x HCOLL_ENABLE_MCAST_ALL=0 -mca coll_hcoll_enable 0 -x UCX_IB_TRAFFIC_CLASS=105 -x UCX_IB_GID_INDEX=3 -n 30 -npernode 10 --hostfile /mnt/beeond/hostsfile.cn /mnt/beeond/io500-app/bin/pfind ./out//2020.06.01-06.57.23-scr -newer ./out//2020.06.01-06.57.23-scr/timestampfile -size 3901c -name "*01*" -N -q 2000 -s 300 -r ./results//2020.06.01-06.57.23-scr/pfind_results
[Results] in ./results//2020.06.01-06.57.23-scr/find.txt.
[FIND] MATCHED 28170/15966876 in 44.6593 seconds
[RESULT] IOPS phase 3                      find              357.520 kiops : time  44.66 seconds

io500 – C version hangs at the below command and I don’t see queue length, steal-next, etc
[find]
t_start         = 2020-06-01 08:28:30
exe             =  /mnt/beeond/io500-app/bin/pfind  ./out//2020.06.01-06.57.23-app -newer ./out//2020.06.01-06.57.23-app/timestampfile -size 3901c -name "*01*"
nproc           = 1
pvaldria commented 4 years ago

Also how to pass the equivalent of io500_find_mpi="True" in io500.sh for the io500 C app version config.ini file?

external-mpi-args = "something here - can someone share an example please"

JulianKunkel commented 4 years ago

Great, it appears you tried the right thing. It turns out that MPI doesn't support to run MPI programs as children (except using MPI_Comm_spawn) in the general sense. Hence, to use the app with an arbitrary MPI parallel find isn't possible. It is possible to implement the pfind API though and use it as drop-in replacement for the current pfind implementation. It works for sequential finds (nproc = 1) though.

On Mon, Jun 1, 2020 at 3:54 PM Pinkesh Valdria notifications@github.com wrote:

Also how to pass the equivalent of io500_find_mpi="True" in io500.sh for the io500 C app version config.ini file?

external-mpi-args = "something here - can someone share an example please"

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.

-- Dr. Julian Kunkel Lecturer, Department of Computer Science +44 (0) 118 378 8218 http://www.cs.reading.ac.uk/ https://hps.vi4io.org/ PGP Fingerprint: 1468 1A86 A908 D77E B40F 45D6 2B15 73A5 9D39 A28E

pvaldria commented 4 years ago

Thanks Julian,  for the IO500 submission,  I assume there will be a default option which works for everyone to use, unless someone has written their own version (which is not the case for me ☹). 

From: Julian Kunkel notifications@github.com Reply-To: VI4IO/io-500-dev reply@reply.github.com Date: Monday, June 1, 2020 at 10:08 AM To: VI4IO/io-500-dev io-500-dev@noreply.github.com Cc: Pinkesh Valdria pinkesh.valdria@oracle.com, Author author@noreply.github.com Subject: Re: [VI4IO/io-500-dev] Should io500.sh be updated to look for the pfind parameters ? (#69)

Great, it appears you tried the right thing. It turns out that MPI doesn't support to run MPI programs as children (except using MPI_Comm_spawn) in the general sense. Hence, to use the app with an arbitrary MPI parallel find isn't possible. It is possible to implement the pfind API though and use it as drop-in replacement for the current pfind implementation. It works for sequential finds (nproc = 1) though.

On Mon, Jun 1, 2020 at 3:54 PM Pinkesh Valdria notifications@github.com wrote:

Also how to pass the equivalent of io500_find_mpi="True" in io500.sh for the io500 C app version config.ini file?

external-mpi-args = "something here - can someone share an example please"

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.

-- Dr. Julian Kunkel Lecturer, Department of Computer Science +44 (0) 118 378 8218 http://www.cs.reading.ac.uk/ https://hps.vi4io.org/ PGP Fingerprint: 1468 1A86 A908 D77E B40F 45D6 2B15 73A5 9D39 A28E

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

JulianKunkel commented 4 years ago

Indeed you can use the integrated version. Just don't set the external script to anything.

Pinkesh Valdria notifications@github.com schrieb am Mo., 1. Juni 2020, 18:32:

Thanks Julian, for the IO500 submission, I assume there will be a default option which works for everyone to use, unless someone has written their own version (which is not the case for me ☹).

From: Julian Kunkel notifications@github.com Reply-To: VI4IO/io-500-dev reply@reply.github.com Date: Monday, June 1, 2020 at 10:08 AM To: VI4IO/io-500-dev io-500-dev@noreply.github.com Cc: Pinkesh Valdria pinkesh.valdria@oracle.com, Author < author@noreply.github.com> Subject: Re: [VI4IO/io-500-dev] Should io500.sh be updated to look for the pfind parameters ? (#69)

Great, it appears you tried the right thing. It turns out that MPI doesn't support to run MPI programs as children (except using MPI_Comm_spawn) in the general sense. Hence, to use the app with an arbitrary MPI parallel find isn't possible. It is possible to implement the pfind API though and use it as drop-in replacement for the current pfind implementation. It works for sequential finds (nproc = 1) though.

On Mon, Jun 1, 2020 at 3:54 PM Pinkesh Valdria notifications@github.com wrote:

Also how to pass the equivalent of io500_find_mpi="True" in io500.sh for the io500 C app version config.ini file?

external-mpi-args = "something here - can someone share an example please"

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.

-- Dr. Julian Kunkel Lecturer, Department of Computer Science +44 (0) 118 378 8218 http://www.cs.reading.ac.uk/ https://hps.vi4io.org/ PGP Fingerprint: 1468 1A86 A908 D77E B40F 45D6 2B15 73A5 9D39 A28E

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/VI4IO/io-500-dev/issues/69#issuecomment-637003303, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABGW5SQLMWG5ZA4K5WUZICLRUPQZ5ANCNFSM4NP4HZ2Q .