Ho recentemente assunto la gestione del server discourse e ci sono alcuni problemi.
- Ho problemi persistenti quando tento di creare o modificare un post con blocchi di codice. Quando tento di creare o modificare un post con il blocco di codice
(access node)$ spack list openfoam@2306
...
Varianti:
Nome [Default] Quando Valori consentiti Descrizione
====================== ==== ============== ==================================================
build_system [generic] -- generic Sistemi di compilazione supportati dal pacchetto
int64 [off] -- on, off Con etichette a 64 bit
kahip [off] -- on, off Con decomposizione kahip
knl [off] -- on, off Usa impostazioni del compilatore KNL
metis [off] -- on, off Con decomposizione metis
mgridgen [off] -- on, off Con supporto mgridgen
paraview [off] -- on, off Compila plugin paraview ed elaborazione post-runtime
precision [dp] -- sp, dp, spdp Opzione di precisione
scotch [on] -- on, off Con decomposizione scotch/ptscotch
source [on] -- on, off Installa sorgenti e tutorial della libreria/applicazione
vtk [off] -- on, off Con VTK runTimePostProcessing
zoltan [off] -- on, off Con rineumerazione zoltan
...
ottengo un errore 403 Forbidden.
-
Markdown non supporta l’evidenziazione del codice, l’aggiunta di qualsiasi specifica di sintassi genera un errore
403 Forbidden. -
Anche i segmenti di codice inline causano
403 Forbiddenin alcune ma non in tutte le posizioni, rispetto ad altri blocchi di codice.
La versione installata è 3.1.1 ( 0612f0d5b6 ).
Questi problemi sono correlati e cosa potrebbe causare questo comportamento?
Post di esempio: Compiling OpenFOAM with Spack - 📚 Knowledge nuggets - HPC discourse
Risultato previsto:
Ci sono alcuni problemi durante l’installazione di OpenFOAM di OpenCFD con Spack.
È stato configurato un ambiente per gestire i pacchetti con Spack seguendo le istruzioni nel tutorial UL HPC. In breve, le seguenti dipendenze sono state definite per i pacchetti SPACK,
(access node)$ cat << EOF > $SPACK_ROOT/etc/spack/packages.yaml
packages:
slurm:
externals:
- spec: slurm@22.05.5
prefix: /usr
buildable: False
libevent:
externals:
- spec: libevent@2.1.8
prefix: /usr
buildable: False
pmix:
externals:
- spec: pmix@4.2.3
prefix: /usr
buildable: False
hwloc:
externals:
- spec: hwloc@2.2.0
prefix: /usr
buildable: False
EOF
e le seguenti opzioni sono state definite per le directory della cache di compilazione,
(access)$ cat << EOF > $SPACK_ROOT/etc/spack/config.yaml
config:
build_stage:
- /dev/shm/$user/spack-stage
EOF
per accelerare la compilazione utilizzando il file system ramdisk. Prima di procedere all’installazione di OpenFOAM, la versione desiderata di Open MPI viene installata con il compilatore di sistema:
(compute node)$ spack install -j openmpi@4.0.5 +pmi schedulers=slurm ^pmix@4.2.3 ^hwloc@2.2.0
Anche la distribuzione di OpenFOAM viene installata utilizzando il compilatore di sistema. I componenti disponibili di OpenFOAM sono:
(access node)$ spack list openfoam@2306
...
Varianti:
Nome [Default] Quando Valori consentiti Descrizione
====================== ==== ============== ==================================================
build_system [generic] -- generic Sistemi di compilazione supportati dal pacchetto
int64 [off] -- on, off Con etichette a 64 bit
kahip [off] -- on, off Con decomposizione kahip
knl [off] -- on, off Usa impostazioni del compilatore KNL
metis [off] -- on, off Con decomposizione metis
mgridgen [off] -- on, off Con supporto mgridgen
paraview [off] -- on, off Compila plugin paraview ed elaborazione post-runtime
precision [dp] -- sp, dp, spdp Opzione di precisione
scotch [on] -- on, off Con decomposizione scotch/ptscotch
source [on] -- on, off Installa sorgenti e tutorial della libreria/applicazione
vtk [off] -- on, off Con VTK runTimePostProcessing
zoltan [off] -- on, off Con rineumerazione zoltan
...
OpenFOAM viene installato utilizzando tutti i partizionatori disponibili (metis, scotch, zoltan, kahip) e i componenti del generatore multi-griglia (mgridgen, sezione 6.3.1.4 della documentazione) con il comando:
(compute node)$ spack install -j openfoam@2306 +source precision=dp +metis +scotch +zoltan +kahip +mgridgen ~knl ~int64 ~paraview ^openmpi@4.0.5
Tuttavia, l’installazione risultante manca di più componenti. Ad esempio, eseguendo la verifica manuale post-installazione in doc/Build.md,
# Crea la directory utente "run":
mkdir -p "$FOAM_RUN"
# Passa alla directory utente "run":
run
# Copia il tutorial
cp -r "$FOAM_TUTORIALS"/incompressible/simpleFoam/pitzDaily ./
# Esegui il tutorial
( cd pitzDaily && blockMesh && simpleFoam )
mancano sia il generatore di mesh blockMesh che il solver simpleFoam.
Si scopre che il partizionatore METIS causa il fallimento dell’installazione di più componenti. Ricompilando solo con il partizionatore SCOTCH,
(compute node)$ spack install openfoam@2306 +source +scotch +mgridgen precision=dp ~int64 ~kahip ~knl ~metis ~paraview ~vtk ~zoltan ^openmpi@4.0.5
risolve il problema. Tutti i componenti del solver sono installati, ma alcune utility sono ancora mancanti.
Utilizziamo il seguente script per rilevare tutti i componenti mancanti:
(access node)$ cat list_spack_openfoam
#!/usr/bin/bash
set -euo pipefail
declare variant="${1}" # es. @2306%gcc@8.5.0 @2306+mgridgen
declare type="${2}" # solvers, utilities
find_makefile_directories() {
local directory="${1}"
find "${directory}" -type d | grep -E '\\/Make$' || true
}
extract_executable_name() {
local makefile_directory="${1}"
cat "${makefile_directory}/files" | ( grep -E '^EXE[[:space:]]*=' || true ) | sed 's/^EXE[[:space:]]*=[[:space:]]*\$(FOAM_APPBIN)\///g'
}
main() {
local variant="${1}"
local type="${2}"
local foam_location="$(spack location -i openfoam"${variant}")"
local pagkage_directory=""
local executable_name=""
local installed=""
local package_makefile_directory=""
while read -r package_makefile_directory; do
executable_name=$( extract_executable_name "${package_makefile_directory}" )
if [ -n "${executable_name}" ]; then
if [ -x "${foam_location}/platforms/linux64GccDPInt32-spack/bin/${executable_name}" ]; then
installed="Y"
else
installed="N"
fi
package_directory="$( echo "${package_makefile_directory}" | xargs -I % dirname % )"
echo "${installed} : ${executable_name} => ${package_directory#${foam_location}}"
fi
done < <( find_makefile_directories "${foam_location}/applications/${type}" )
}
main "${variant}" "${type}"
Una semplice esecuzione dello script indica che le seguenti utility sono mancanti:
(access node)$ ./list_spack_openfoam utilities @2306 | grep -E '^N'
N : addr2line => /applications/utilities/miscellaneous/OSspecific/addr2line
N : foamyHexMeshSurfaceSimplify => /applications/utilities/mesh/generation/foamyMesh/foamyHexMeshSurfaceSimplify
N : foamyHexMeshBackgroundMesh => /applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh
N : cellSizeAndAlignmentGrid => /applications/utilities/mesh/generation/foamyMesh/cellSizeAndAlignmentGrid
N : foamToCcm => /applications/utilities/mesh/conversion/ccm/foamToCcm
N : ccmToFoam => /applications/utilities/mesh/conversion/ccm/ccmToFoam