Как визуализировать файл clog2 из MPI/MPE с помощью jumpshot
Я следую примерам, приведенным в книге «Использование MPI», и работаю над примером, который включает ведение журнала MPE (pmatmatlog.c — перенес его из примера Fortran). Он запускается и создает файл журнала с именем «pmatmat.log.clog2». Я хотел бы визуализировать этот файл журнала.
Я начал с попытки использовать «jumpshot-4», потому что это то, что установлено, и я не могу найти способ загрузить jumpshot-2 (который, по-видимому, предпочитает файлы журнала в формате clog2?). Jumpshot-4, однако, хочет файлы в формате slog2 и выдает ошибку о том, что не находит «clog2TOslog2» в дереве каталогов TAU.
Глядя на заголовок файла clog2, насколько я могу судить, он кажется правильным:
$ head pmatmat.log.clog2
CLOG-02.44is_big_endian=TRUE is_finalzed=TRUE block_size=65536num_buffered_blocks=128max_comm_world_size=4max_thread_count=1known_eventID_start=0user_eventID_start=600known_solo_eventID_start=-10user_solo_eventID_start=5000known_stateID_count=300user_stateID_count=4known_solo_eventID_count=0user_solo_eventID_count=0commtable_fptr=0107374182466560>? … <and on into a lot of unreadable binary>
Когда я пытаюсь преобразовать файл clog2 с помощью командной строки, вызывающей «clog2TOslog2», я получаю следующее:
$ Clog2ToSlog2 ./pmatmat.log.clog2
GUI_LIBDIR is set. GUI_LIBDIR = /Users/markrbower/mpi/lib
**** Error! State!=State
**** Error! State!=State
**** Error! State!=State
**** Error! State!=State
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at logformat.clog2TOdrawable.InputLog$ContentIterator.hasNext(InputLog.java:481)
at logformat.clog2TOdrawable.InputLog.peekNextKind(InputLog.java:58)
at logformat.slog2.output.Clog2ToSlog2.main(Clog2ToSlog2.java:77)
Caused by: logformat.clog2TOdrawable.NoMatchingEventException: No matching State end-event for Record RecHeader[ time=1.9073486328125E-5, icomm=0, rank=1, thread=0, rectype=6 ], RecCargo[ etype=1, bytes=bstartbendcomputecomputedpma ]
at logformat.clog2TOdrawable.Topo_State.matchFinalEvent(Topo_State.java:95)
... 7 more
java.lang.reflect.InvocationTargetException
После множества ошибок, которые все выглядят как «InvocationTargetException», как указано выше, хвост говорит:
…
SLOG-2 Header:
version = SLOG 2.0.6
NumOfChildrenPerNode = 2
TreeLeafByteSize = 65536
MaxTreeDepth = 0
MaxBufferByteSize = 1346
Categories is FBinfo(157 @ 1454)
MethodDefs is FBinfo(0 @ 0)
LineIDMaps is FBinfo(232 @ 1611)
TreeRoot is FBinfo(1346 @ 108)
TreeDir is FBinfo(38 @ 1843)
Annotations is FBinfo(0 @ 0)
Postamble is FBinfo(0 @ 0)
Number of Drawables = 20
Number of Unmatched Events = 0
Total ByteSize of the logfile = 8320
timeElapsed between 1 & 2 = 13 msec
timeElapsed between 2 & 3 = 79 msec
$
Есть несколько путей, которые я вижу, чтобы наконец добраться до визуализации файла журнала:1. переустановить TAU и надеяться, что это позволит jumpshot-4 найти конвертер 2. установить MPI2 с MPE2 и попробовать более новую версию всего 3. найти способ загрузить и установить Jumpshot-2 и надеяться, что он читает файлы clog2 4. найти другой способ конвертировать clog2 в slog2
Почему конвертация не работает и какой вариант лучше выбрать?