I am looking for a similar option to "-timestamp-output" for mpiexec of openMPI for Intel MPI, which adds a timestamp at each line of output to stdout, stderr, and stddiag of the program (not only for Intel MPI Debug messages). I found the option "-prepend-pattern" but I was not able to get proper timestamps for the output of each rank.
Anyone knows how to do that?
Thanks in advance and best regards!
Thanks for reaching out to us. Currently, Intel MPI does not have any flags like -timestamp-output which is there in OpenMPI.
However, you can get output similar to that by using bash command. For example, to print timestamp for stdout and stderr you can use the following command:
mpirun -n 6 ./<executable_name> 2>&1 | xargs -L 1 echo `date +'[%Y-%m-%d %H:%M:%S]'` $1
Do let us know if this helps.
thank you for your reply. Yes, something similar I also found. There are just two possible drawbacks which I see with that solution. I think the output of mpiexec is buffered, so it could be that it does not the really print correct timestamp.
And the other thing: It might be a quite heavy additional load to call an external "date" for each process and output if one uses really large jobs with debugging output.
I guess an internal syscall might be a better option.
Anyway, thanks for your help
Yes, the provided solution does have some drawbacks in some cases and also I do agree that it will create some additional load. But if you want then you can embed some library calls into your program at a time of stdout/stderr that will also help you depending on your use-case.
Please let us know if there is a critical need for this feature in our use-case.
thank you. Yes, I know about things like LD_PRELOAD to "hack" something. But as we (at a supercomputing centre) have use for such a feature more often (also in our user support), we would appreciate a simple command line switch.