UCL-RITS / rcps-buildscripts

Scripts to automate package builds on RC Platforms
MIT License
39 stars 26 forks source link

MICRESS 7.201: MICpad GUI via X-forwarding #576

Closed cdkharris closed 2 months ago

cdkharris commented 5 months ago

MICRESS is a software enabling the calculation of microstructure formation in time and space during phase transformations. Access is controlled by the license group lgmicres and the license is served by Mechanical Engineering IT. The installation is owned by the ccspap2 service account.

MICRESS documentation MICRESS buildscript MICRESS modulefile

MICRESS is currently functional in interactive mode.

MICpad is a GUI interface to MICRESS. Currently it does not run because some libraries need to be installed.

cdkharris commented 5 months ago

As ccspap2, after loading the micress module,

$ ldd /shared/ucl/apps/micress/7.201/Bin/MICpad.exe 
    linux-vdso.so.1 =>  (0x00007ffe0bf54000)
    libqwt.so.6.2 => not found
    libQt5Widgets.so.5 => not found
    libQt5Gui.so.5 => not found
    libQt5Xml.so.5 => not found
    libQt5Core.so.5 => not found
    libGL.so.1 => /lib64/libGL.so.1 (0x00007f1350b8d000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f1350971000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f135066f000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f13502a1000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f1350e19000)
    libGLX.so.0 => /lib64/libGLX.so.0 (0x00007f135006f000)
    libX11.so.6 => /lib64/libX11.so.6 (0x00007f134fd31000)
    libXext.so.6 => /lib64/libXext.so.6 (0x00007f134fb1f000)
    libGLdispatch.so.0 => /lib64/libGLdispatch.so.0 (0x00007f134f869000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f134f665000)
    libxcb.so.1 => /lib64/libxcb.so.1 (0x00007f134f43d000)
    libXau.so.6 => /lib64/libXau.so.6 (0x00007f134f239000)

This indicates that xcb, QT5, and qwt are required. There are two possible issues.

cdkharris commented 4 months ago

I'm back-tracking a little to find the minimal/most compatible compiler configuration for installing MICRESS. gnu-4.9.2: Modules sequence:

module purge
module load default-modules
module unload -f compilers mpi

module load compilers/gnu/4.9.2
module load numactl/2.0.12
module load binutils/2.29.1/gnu-4.9.2
module load ucx/1.8.0/gnu-4.9.2

module load mpi/openmpi/4.0.3/gnu-4.9.2

Errors reported by build tools:

/shared/ucl/apps/micress-testing/7.201/Bin/libopenmpt.so.0: /shared/ucl/apps/gcc/4.9.2/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /shared/ucl/apps/micress-testing/7.201/Bin/libopenmpt.so.0)
/shared/ucl/apps/micress-testing/7.201/Bin/libopenmpt.so.0: /shared/ucl/apps/gcc/4.9.2/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /shared/ucl/apps/micress-testing/7.201/Bin/libopenmpt.so.0)
/shared/ucl/apps/micress-testing/7.201/Bin/libopencv_videoio.so.405: /shared/ucl/apps/gcc/4.9.2/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /shared/ucl/apps/micress-testing/7.201/Bin/libopencv_videoio.so.405)
/shared/ucl/apps/micress-testing/7.201/Bin/libssh.so.4: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by /shared/ucl/apps/micress-testing/7.201/Bin/libssh.so.4)
/shared/ucl/apps/micress-testing/7.201/Bin/libopencv_core.so.405: /shared/ucl/apps/gcc/4.9.2/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /shared/ucl/apps/micress-testing/7.201/Bin/libopencv_core.so.405)
/shared/ucl/apps/micress-testing/7.201/Bin/libopencv_imgproc.so.405: /shared/ucl/apps/gcc/4.9.2/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /shared/ucl/apps/micress-testing/7.201/Bin/libopencv_imgproc.so.405)
/shared/ucl/apps/micress-testing/7.201/Bin/DP_MICRESS.exe: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /shared/ucl/apps/micress-testing/7.201/Bin/DP_MICRESS.exe)
/shared/ucl/apps/micress-testing/7.201/Bin/libopencv_imgcodecs.so.405: /shared/ucl/apps/gcc/4.9.2/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /shared/ucl/apps/micress-testing/7.201/Bin/libopencv_imgcodecs.so.405)
/shared/ucl/apps/micress-testing/7.201/Bin/libopencv_imgcodecs.so.405: /shared/ucl/apps/gcc/4.9.2/lib64/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by /shared/ucl/apps/micress-testing/7.201/Bin/libopencv_imgcodecs.so.405)

However the MICRESS application seems functional; I was able to run both tests on the login node.

When I then try to run the MICpad GUI I get the following error (I have ssh'd with X-forwarding enabled)

$ module load xcb-util
$ module unload compilers
$ module load qwt    # this also loads Qt5
$ /shared/ucl/apps/micress-testing/7.201/Bin/MICpad.exe
/shared/ucl/apps/micress-testing/7.201/Bin/MICpad.exe: error while loading shared libraries: libqwt.so.6.2: cannot open shared object file: No such file or directory

So, at least a newer version of qwt is needed.

cdkharris commented 4 months ago

I have built qwt-6.2.0. After following the above, ldd reveals:

$ ldd /shared/ucl/apps/micress-testing/7.201/Bin/MICpad.exe
/shared/ucl/apps/micress-testing/7.201/Bin/MICpad.exe: /shared/ucl/apps/qt/5.12.1/gnu-4.9.2/lib/libQt5Core.so.5: version `Qt_5.15' not found (required by /shared/ucl/apps/micress-testing/7.201/Bin/MICpad.exe)

So I'll see if it's possible to install a newer version of Qt (5.15).

cdkharris commented 4 months ago

I have built qt-5.15.2, though I'm not convinced that the compiler I used or the requirements in the module file are appropriate. The following procedure reveals: (logged in with X forwarding as ccspap2)

$ module purge
$ module load default-modules
$ module load xcb-util
$ module unload compilers
$ module load qwt/6.2.0
$ module load -f qt/5.15.2
$ module load -f compilers/gnu/7.3.0
$ ldd /shared/ucl/apps/micress-testing/7.201/Bin/MICpad.exe
    linux-vdso.so.1 =>  (0x00007ffd86bf9000)
    libqwt.so.6.2 => /shared/ucl/apps/qwt/6.2.0/gnu-4.9.2/qwt-6.2.0/lib/libqwt.so.6.2 (0x00007fd903790000)
    libQt5Widgets.so.5 => /shared/ucl/apps/qt/5.15.2/gnu-7.3.0/lib/libQt5Widgets.so.5 (0x00007fd902f39000)
    libQt5Gui.so.5 => /shared/ucl/apps/qt/5.15.2/gnu-7.3.0/lib/libQt5Gui.so.5 (0x00007fd9026d9000)
    libQt5Xml.so.5 => /shared/ucl/apps/qt/5.15.2/gnu-7.3.0/lib/libQt5Xml.so.5 (0x00007fd902499000)
    libQt5Core.so.5 => /shared/ucl/apps/qt/5.15.2/gnu-7.3.0/lib/libQt5Core.so.5 (0x00007fd901c8e000)
    libGL.so.1 => /lib64/libGL.so.1 (0x00007fd901a02000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd9017e6000)
    libm.so.6 => /lib64/libm.so.6 (0x00007fd9014e4000)
    libc.so.6 => /lib64/libc.so.6 (0x00007fd901116000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fd903b39000)
    libQt5PrintSupport.so.5 => /shared/ucl/apps/qt/5.12.1/gnu-4.9.2/lib/libQt5PrintSupport.so.5 (0x00007fd903cd8000)
    libQt5Svg.so.5 => /shared/ucl/apps/qt/5.12.1/gnu-4.9.2/lib/libQt5Svg.so.5 (0x00007fd903c7d000)
    libQt5OpenGL.so.5 => /shared/ucl/apps/qt/5.12.1/gnu-4.9.2/lib/libQt5OpenGL.so.5 (0x00007fd903c21000)
    libQt5Concurrent.so.5 => /shared/ucl/apps/qt/5.12.1/gnu-4.9.2/lib/libQt5Concurrent.so.5 (0x00007fd903c19000)
    libstdc++.so.6 => /shared/ucl/apps/gcc/7.3.0/lib64/libstdc++.so.6 (0x00007fd900d94000)
    libgcc_s.so.1 => /shared/ucl/apps/gcc/7.3.0/lib64/libgcc_s.so.1 (0x00007fd900b7d000)
    libpng15.so.15 => /lib64/libpng15.so.15 (0x00007fd900952000)
    libz.so.1 => /lib64/libz.so.1 (0x00007fd90073c000)
    libharfbuzz.so.0 => /lib64/libharfbuzz.so.0 (0x00007fd90049f000)
    libicui18n.so.50 => /lib64/libicui18n.so.50 (0x00007fd9000a0000)
    libicuuc.so.50 => /lib64/libicuuc.so.50 (0x00007fd8ffd27000)
    libicudata.so.50 => /lib64/libicudata.so.50 (0x00007fd8fe754000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007fd8fe550000)
    libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x00007fd8fe34e000)
    libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007fd8fe038000)
    libGLX.so.0 => /lib64/libGLX.so.0 (0x00007fd8fde06000)
    libX11.so.6 => /lib64/libX11.so.6 (0x00007fd8fdac8000)
    libXext.so.6 => /lib64/libXext.so.6 (0x00007fd8fd8b6000)
    libGLdispatch.so.0 => /lib64/libGLdispatch.so.0 (0x00007fd8fd600000)
    libfreetype.so.6 => /shared/ucl/apps/qt/5.12.1/gnu-4.9.2/support/lib/libfreetype.so.6 (0x00007fd8fd358000)
    libgraphite2.so.3 => /lib64/libgraphite2.so.3 (0x00007fd8fd12a000)
    libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fd8fcec8000)
    libxcb.so.1 => /shared/ucl/apps/qt/5.12.1/gnu-4.9.2/support/lib/libxcb.so.1 (0x00007fd8fcca3000)
    libbz2.so.1 => /lib64/libbz2.so.1 (0x00007fd8fca93000)
    libXau.so.6 => /shared/ucl/apps/qt/5.12.1/gnu-4.9.2/support/lib/libXau.so.6 (0x00007fd8fc88f000)
$ /shared/ucl/apps/micress-testing/7.201/Bin/MICpad.sh
/shared/ucl/apps/micress-testing/7.201/Bin/MICpad.sh: line 7:  7039 Aborted                 $MICRESS_Bin/MICpad.exe $@ &>/dev/null
$ /shared/ucl/apps/micress-testing/7.201/Bin/MICpad.exe
/shared/ucl/apps/micress-testing/7.201/Bin/MICpad.exe: relocation error: /shared/ucl/apps/micress-testing/7.201/Bin/MICpad.exe: symbol _ZNSt20bad_array_new_lengthD1Ev, version Qt_5 not defined in file libQt5Gui.so.5 with link time reference

I think I have encountered a similar error before and it was due to conflicts in Qt minor versions (linked to a library with a later minor version than the application). If that is the problem here then I'm not surprised because I am not sure which minor version of qt-5.15.* was used for MICRESS (and because I built qwt/6.2.0 with qt-5.12.1, but this may be irrelevant). ldd indicates that libQt5Gui.so.5 is coming from qt-5.15.2, so I can try building qt-5.15.0 and this may satisfy Qt's conditions on the minor version.

cdkharris commented 3 months ago

TLDR

When I use the script that MICRESS provides to set up the environment for MICpad, all but one library is missing. The missing library is libxkbcommon-x11, which we have a module for. After loading that module, there are no more missing libraries. However there are still problems with connecting to the display via X forwarding.

After getting some advice:

MICRESS comes packaged with these libraries and a script which equips the environment for MICpad. It ought to work as follows, but there are problems:

$ /shared/ucl/apps/micress/7.201/Bin/MICpad.sh 
/shared/ucl/apps/micress/7.201/Bin/MICpad.sh: line 7: 178464 Aborted                 $MICRESS_Bin/MICpad.exe $@ &>/dev/null

I dug in a little further by setting up the environment manually (by setting the environment variables described in MICpad.sh), then running the executable:

$ $MICRESS_Bin/MICpad.exe
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: xcb.

Aborted

And with the environment set up, I ran ldd:

$ ldd $MICRESS_Bin/MICpad.exe
    linux-vdso.so.1 =>  (0x00007fff6d3fe000)
    libqwt.so.6.2 => /shared/ucl/apps/micress/7.201/Bin/libqwt.so.6.2 (0x00007f8b7e53b000)
    libQt5Widgets.so.5 => /shared/ucl/apps/micress/7.201/Bin/libQt5Widgets.so.5 (0x00007f8b7dcd7000)
    libQt5Gui.so.5 => /shared/ucl/apps/micress/7.201/Bin/libQt5Gui.so.5 (0x00007f8b7d3a2000)
    libQt5Xml.so.5 => /shared/ucl/apps/micress/7.201/Bin/libQt5Xml.so.5 (0x00007f8b7d164000)
    libQt5Core.so.5 => /shared/ucl/apps/micress/7.201/Bin/libQt5Core.so.5 (0x00007f8b7c969000)
    libGL.so.1 => /lib64/libGL.so.1 (0x00007f8b7c6dd000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8b7c4c1000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f8b7c1bf000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f8b7bdf1000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f8b7e8ee000)
    libQt5PrintSupport.so.5 => /shared/ucl/apps/micress/7.201/Bin/libQt5PrintSupport.so.5 (0x00007f8b7bb7f000)
    libQt5Svg.so.5 => /shared/ucl/apps/micress/7.201/Bin/libQt5Svg.so.5 (0x00007f8b7b928000)
    libQt5OpenGL.so.5 => /shared/ucl/apps/micress/7.201/Bin/libQt5OpenGL.so.5 (0x00007f8b7b6d1000)
    libQt5Concurrent.so.5 => /shared/ucl/apps/micress/7.201/Bin/libQt5Concurrent.so.5 (0x00007f8b7b4ca000)
    libstdc++.so.6 => /shared/ucl/apps/gcc/10.2.0-p95889/lib64/libstdc++.so.6 (0x00007f8b7b0fd000)
    libgcc_s.so.1 => /shared/ucl/apps/gcc/10.2.0-p95889/lib64/libgcc_s.so.1 (0x00007f8b7aee5000)
    libz.so.1 => /shared/ucl/apps/micress/7.201/Bin/libz.so.1 (0x00007f8b7acca000)
    libicui18n.so.56 => /shared/ucl/apps/micress/7.201/Bin/libicui18n.so.56 (0x00007f8b7a831000)
    libicuuc.so.56 => /shared/ucl/apps/micress/7.201/Bin/libicuuc.so.56 (0x00007f8b7a479000)
    libicudata.so.56 => /shared/ucl/apps/micress/7.201/Bin/libicudata.so.56 (0x00007f8b78a96000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f8b78892000)
    libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x00007f8b78690000)
    libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007f8b7837a000)
    libGLX.so.0 => /lib64/libGLX.so.0 (0x00007f8b78148000)
    libX11.so.6 => /lib64/libX11.so.6 (0x00007f8b77e0a000)
    libXext.so.6 => /lib64/libXext.so.6 (0x00007f8b77bf8000)
    libGLdispatch.so.0 => /lib64/libGLdispatch.so.0 (0x00007f8b77942000)
    libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f8b776e0000)
    libxcb.so.1 => /lib64/libxcb.so.1 (0x00007f8b774b8000)
    libXau.so.6 => /lib64/libXau.so.6 (0x00007f8b772b4000)

With QT debugging:

$ export QT_DEBUG_PLUGINS=1
$ $MICRESS_Bin/MICpad.exe
QFactoryLoader::QFactoryLoader() checking directory path "/lustre/shared/ucl/apps/micress/7.201/Bin/platforms" ...
QFactoryLoader::QFactoryLoader() looking at "/lustre/shared/ucl/apps/micress/7.201/Bin/platforms/libqxcb.so"
Found metadata in lib /lustre/shared/ucl/apps/micress/7.201/Bin/platforms/libqxcb.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "xcb"
        ]
    },
    "archreq": 0,
    "className": "QXcbIntegrationPlugin",
    "debug": false,
    "version": 331520
}

Got keys from plugin meta data ("xcb")
Cannot load library /lustre/shared/ucl/apps/micress/7.201/Bin/platforms/libqxcb.so: (libxkbcommon-x11.so.0: cannot open shared object file: No such file or directory)
QLibraryPrivate::loadPlugin failed on "/lustre/shared/ucl/apps/micress/7.201/Bin/platforms/libqxcb.so" : "Cannot load library /lustre/shared/ucl/apps/micress/7.201/Bin/platforms/libqxcb.so: (libxkbcommon-x11.so.0: cannot open shared object file: No such file or directory)"
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: xcb.

Aborted

Indeed, running ldd on libqxcb reveals the following:

$ ldd /lustre/shared/ucl/apps/micress/7.201/Bin/platforms/libqxcb.so
ldd: warning: you do not have execution permission for `/lustre/shared/ucl/apps/micress/7.201/Bin/platforms/libqxcb.so'
    linux-vdso.so.1 =>  (0x00007ffe7fdd1000)
    libQt5XcbQpa.so.5 => /shared/ucl/apps/micress/7.201/Bin/libQt5XcbQpa.so.5 (0x00007fdf994d0000)
    libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x00007fdf9928e000)
    libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007fdf98fcf000)
    libz.so.1 => /shared/ucl/apps/micress/7.201/Bin/libz.so.1 (0x00007fdf98db4000)
    libQt5Gui.so.5 => /shared/ucl/apps/micress/7.201/Bin/libQt5Gui.so.5 (0x00007fdf9847f000)
    libQt5DBus.so.5 => /shared/ucl/apps/micress/7.201/Bin/libQt5DBus.so.5 (0x00007fdf981f3000)
    libQt5Core.so.5 => /shared/ucl/apps/micress/7.201/Bin/libQt5Core.so.5 (0x00007fdf979f8000)
    libGL.so.1 => /lib64/libGL.so.1 (0x00007fdf9776c000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fdf97550000)
    libX11-xcb.so.1 => /lib64/libX11-xcb.so.1 (0x00007fdf9734e000)
    libxcb-icccm.so.4 => /shared/ucl/apps/xcb-util/0.4.0/lib/libxcb-icccm.so.4 (0x00007fdf97149000)
    libxcb-image.so.0 => /shared/ucl/apps/xcb-util/0.4.0/lib/libxcb-image.so.0 (0x00007fdf96f44000)
    libxcb-shm.so.0 => /lib64/libxcb-shm.so.0 (0x00007fdf96d40000)
    libxcb-keysyms.so.1 => /shared/ucl/apps/xcb-util/0.4.0/lib/libxcb-keysyms.so.1 (0x00007fdf96b3d000)
    libxcb-randr.so.0 => /lib64/libxcb-randr.so.0 (0x00007fdf9692d000)
    libxcb-render-util.so.0 => /shared/ucl/apps/xcb-util/0.4.0/lib/libxcb-render-util.so.0 (0x00007fdf96729000)
    libxcb-render.so.0 => /lib64/libxcb-render.so.0 (0x00007fdf9651b000)
    libxcb-shape.so.0 => /lib64/libxcb-shape.so.0 (0x00007fdf96317000)
    libxcb-sync.so.1 => /lib64/libxcb-sync.so.1 (0x00007fdf96110000)
    libxcb-xfixes.so.0 => /lib64/libxcb-xfixes.so.0 (0x00007fdf95f08000)
    libxcb-xinerama.so.0 => /lib64/libxcb-xinerama.so.0 (0x00007fdf95d05000)
    libxcb-xkb.so.1 => /lib64/libxcb-xkb.so.1 (0x00007fdf95ae9000)
    libxcb.so.1 => /lib64/libxcb.so.1 (0x00007fdf958c1000)
    libXext.so.6 => /lib64/libXext.so.6 (0x00007fdf956af000)
    libX11.so.6 => /lib64/libX11.so.6 (0x00007fdf95371000)
    libxkbcommon-x11.so.0 => not found
    libxkbcommon.so.0 => /lib64/libxkbcommon.so.0 (0x00007fdf95131000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007fdf94f2d000)
    libstdc++.so.6 => /shared/ucl/apps/gcc/10.2.0-p95889/lib64/libstdc++.so.6 (0x00007fdf94b60000)
    libm.so.6 => /lib64/libm.so.6 (0x00007fdf9485e000)
    libgcc_s.so.1 => /shared/ucl/apps/gcc/10.2.0-p95889/lib64/libgcc_s.so.1 (0x00007fdf94646000)
    libc.so.6 => /lib64/libc.so.6 (0x00007fdf94278000)
    libxkbcommon-x11.so.0 => not found
    libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x00007fdf94076000)
    libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007fdf93d60000)
    libexpat.so.1 => /lib64/libexpat.so.1 (0x00007fdf93b36000)
    libuuid.so.1 => /lib64/libuuid.so.1 (0x00007fdf93931000)
    libbz2.so.1 => /lib64/libbz2.so.1 (0x00007fdf93721000)
    libpng15.so.15 => /lib64/libpng15.so.15 (0x00007fdf934f6000)
    libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x00007fdf932a6000)
    libicui18n.so.56 => /shared/ucl/apps/micress/7.201/Bin/libicui18n.so.56 (0x00007fdf92e0d000)
    libicuuc.so.56 => /shared/ucl/apps/micress/7.201/Bin/libicuuc.so.56 (0x00007fdf92a55000)
    libicudata.so.56 => /shared/ucl/apps/micress/7.201/Bin/libicudata.so.56 (0x00007fdf91072000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fdf99a2d000)
    libGLX.so.0 => /lib64/libGLX.so.0 (0x00007fdf90e40000)
    libGLdispatch.so.0 => /lib64/libGLdispatch.so.0 (0x00007fdf90b8a000)
    libxcb-util.so.1 => /shared/ucl/apps/xcb-util/0.4.0/lib/libxcb-util.so.1 (0x00007fdf90984000)
    libXau.so.6 => /lib64/libXau.so.6 (0x00007fdf90780000)
    libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fdf9051e000)
    libsystemd.so.0 => /lib64/libsystemd.so.0 (0x00007fdf902ed000)
    libcap.so.2 => /lib64/libcap.so.2 (0x00007fdf900e8000)
    librt.so.1 => /lib64/librt.so.1 (0x00007fdf8fee0000)
    libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fdf8fcb9000)
    liblzma.so.5 => /lib64/liblzma.so.5 (0x00007fdf8fa93000)
    liblz4.so.1 => /lib64/liblz4.so.1 (0x00007fdf8f87e000)
    libgcrypt.so.11 => /lib64/libgcrypt.so.11 (0x00007fdf8f5fd000)
    libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x00007fdf8f3f8000)
    libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fdf8f1de000)
    libdw.so.1 => /lib64/libdw.so.1 (0x00007fdf8ef8d000)
    libattr.so.1 => /lib64/libattr.so.1 (0x00007fdf8ed88000)
    libelf.so.1 => /lib64/libelf.so.1 (0x00007fdf8eb70000)

The important part is libxkbcommon-x11.so.0 => not found.

We do have a module for libxkbcommon, so I loaded that. At this point ldd checks out (no missing libraries) but Qt still has some problems with the display over X forwarding:

$ $MICRESS_Bin/MICpad.exe
QFactoryLoader::QFactoryLoader() checking directory path "/lustre/shared/ucl/apps/micress/7.201/Bin/platforms" ...
QFactoryLoader::QFactoryLoader() looking at "/lustre/shared/ucl/apps/micress/7.201/Bin/platforms/libqxcb.so"
Found metadata in lib /lustre/shared/ucl/apps/micress/7.201/Bin/platforms/libqxcb.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "xcb"
        ]
    },
    "archreq": 0,
    "className": "QXcbIntegrationPlugin",
    "debug": false,
    "version": 331520
}

Got keys from plugin meta data ("xcb")
loaded library "/lustre/shared/ucl/apps/micress/7.201/Bin/platforms/libqxcb.so"
qt.qpa.xcb: could not connect to display 
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: xcb.

Aborted

I think there is a problem with X forwarding and setting up the display. There are many variables here outside the MICRESS installation, so I will try some different options for forwarding the display.

cdkharris commented 3 months ago

I was able to start MICpad and run a benchmark with the following steps: (as ccspap2 with X forwarding)

module unload gcc-libs
module load micress
module load libxkbcommon xcb-util
MICpad.sh

Two things need to be done:

cdkharris commented 3 months ago

I've updated the buildscript with a more minimal installation, removed unneeded dependancies from the modulefile, and re-done the installation. I was able to start MICpad with the following sequence:

module load micress
MICpad.sh

And I was able to run the Training > T00_02_Binary_E_Globulitic_2D_TQ.dri example for a few iterations on the login node.

The last thing I would like to try is running MICpad from the compute nodes.

cdkharris commented 2 months ago

I've verified that MICpad works well from the compute nodes. I logged in with X-forwarding (-Y) as the service account, started an interactive job, and ran the example to completion.