palace-solver
The Palace 3D finite-element electromagnetics solver, packaged as a binary wheel.
pip install palace-solver
palace config.json
palace-mpiexec -n 4 palace config.json
That is the whole installation: no conda, no docker, no compiler, and no MPI to install first. The wheel carries the solver and every shared library it needs.
Supported platforms
A release carries one wheel per platform and pip installs the one that
matches:
- Linux x86-64 —
manylinux_2_28_x86_64; glibc 2.28 or newer, which is RHEL 8, Debian 10, Ubuntu 20.04 and anything later. Any x86-64 CPU. - Linux 64-bit arm —
manylinux_2_28_aarch64; the same glibc floor, and any ARMv8-A core or later. That includes Graviton2 and every later arm server core, and needs neither SVE nor an ARMv8.1+ extension. - macOS 15.0 or later, Apple Silicon —
macosx_15_0_arm64. The floor is the oldest macOS the payload is compiled for, and it comes from the runtime libraries the wheel vendors rather than from a preference. There is no Intel macOS wheel: upstream Palace stopped building that target in November 2024. - Windows x86-64 —
win_amd64; Windows 10 or Windows Server 2016 or later, the floor of the toolchain it is built with. The tag names no Windows version, sopalacechecks it at start-up and refuses an older one. Any x86-64 CPU, and nothing to install first: no MSYS2, no MS-MPI.
WSL2 should also run the Linux x86-64 wheel; no CI tests that.
Anything outside that set gets No matching distribution found from pip, which
is the intended answer — the alternative is a wheel that installs and then
faults. Musl-based Linux and GPU builds are not planned, and a cluster is
better served by building Palace itself.
What the wheel contains
palace-real, the Palace binary, built with the full feature set: OpenMP, SuperLU_DIST, STRUMPACK (with ZFP), MUMPS, SLEPc, ARPACK, LIBXSMM and GSLIB. No GPU support, 32-bit integers.- Every shared library that build needs, OpenBLAS and an MPI included. On
Linux and macOS the MPI is MPICH (with Hydra) and the platform's repair tool
vendors the libraries; on Windows it is Microsoft's MS-MPI, and the
libraries sit in
binbeside the executables. THIRD-PARTY-NOTICES, harvested from the superbuild's own source checkouts.
The CPU requirement is the one stated above and no more: OpenBLAS is built with
DYNAMIC_ARCH and picks its kernels at run time, so a newer CPU is used
through that dispatch rather than by installing a different wheel.
The package version mirrors the Palace release it ships, with a .postN
segment for packaging-only fixes. Palace is Apache-2.0; see LICENSE and
THIRD-PARTY-NOTICES.
The Windows wheel also carries three of Microsoft's files — msmpi.dll,
mpiexec.exe and smpd.exe, unchanged from the MS-MPI 10.1.3 redistributable.
They are licensed by Microsoft under the Microsoft MPI Redistributable license
terms, not under this package's license, and whoever installs or redistributes
the Windows wheel uses them under those terms. Among other things, the terms
allow use on Windows only and forbid reverse engineering, decompiling or
disassembling the files. That wheel's THIRD-PARTY-NOTICES reproduces them in
full.
Command line
palace takes the same options as the wrapper script upstream Palace ships, so
anything written against upstream works unchanged:
palace --np 4 config.json # four ranks under the vendored launcher
palace --nt 2 --np 4 config.json # ... two OpenMP threads each
palace --serial config.json # no MPI launcher at all
palace --launcher mpirun --np 4 config.json
palace --help
Two differences from upstream's wrapper: the default launcher is the mpiexec
vendored here rather than a mpirun found on PATH, and the ranks are started
as the palace console script rather than as the raw binary, so each of them
runs the launcher check. --nt sets OMP_NUM_THREADS, and leaving it unset
means one thread rather than one per core, as upstream.
MPI
The wheel vendors its own MPICH, built with the Fortran bindings Palace needs,
and palace-mpiexec is its Hydra launcher. That launcher, on a single node, is
the supported shape. Another process manager works while it belongs to the same
MPICH major series; what the solver refuses is a rank started without an MPI
rendezvous, because that case does not fail — every rank would solve the
whole problem alone, overwrite the others' output and exit 0.
PALACE_SOLVER_ALLOW_FOREIGN_LAUNCHER=1 runs anyway.
On Windows, where MPICH has had no native port since 2011, the wheel vendors
Microsoft's MS-MPI 10.1 instead, and palace-mpiexec is MS-MPI's own mpiexec.
The mpiexec of a system-wide MS-MPI 10.1 install works as well. The same
refusal holds; the rendezvous MS-MPI's ranks read is PMI_KVS.
Python API
import palace_solver
palace_solver.executable_path() # -> what to launch: the guarded console script
palace_solver.binary_path() # -> .../site-packages/palace_solver/bin/palace-real
# Where the vendored libraries are, which differs by platform:
# palace_solver.libs beside the package on Linux, palace_solver/.dylibs inside
# it on macOS, palace_solver/bin beside the executables on Windows.
palace_solver.lib_dir()
palace_solver.launcher_conflict() # -> None, or why this launcher is refused
executable_path() is what a caller should launch: it returns the guarded
console script, and falls back to the raw binary only when the script cannot be
found. binary_path() returns that binary and is unguarded.
More
docs/mpi.md— the vendored MPI, the launchers it works with, and what the rendezvous check reads.docs/building.md— building the wheel on each platform, and the scripts that test one.docs/releasing.md— the release procedure, its dry run, and the PyPI limits a release spends.
Metadata
Release files for palace-solver 0.18.1.post3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| palace_solver-0.18.1.post3-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| palace_solver-0.18.1.post3-py3-none-manylinux_2_28_x86_64.whl | Python 3 | none | Linux glibc 2.28+ x86-64 | Details |
| palace_solver-0.18.1.post3-py3-none-manylinux_2_28_aarch64.whl | Python 3 | none | Linux glibc 2.28+ ARM64 | Details |
| palace_solver-0.18.1.post3-py3-none-macosx_15_0_arm64.whl | Python 3 | none | macOS 15.0+ ARM64 | Details |
Total release size: 240.0 MB
Release files / palace_solver-0.18.1.post3-py3-none-win_amd64.whl
| Download URL | palace_solver-0.18.1.post3-py3-none-win_amd64.whl |
|---|---|
| Size | 49.4 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
691f185a3855ba4ad1a1f971306b07c12fbf001415e4efed0d8d848be82ecda2
|
|
BLAKE2b-256 checksum How to use checksums |
8eed34fb0d58d8835d368c23578fde80b7f81035148d6c6284a3cd7e87b93029
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.
Transparency logRelease files / palace_solver-0.18.1.post3-py3-none-manylinux_2_28_x86_64.whl
| Download URL | palace_solver-0.18.1.post3-py3-none-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 72.1 MB |
| Tags | Linux glibc 2.28+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
ddd0f399c485e8fe694eb4691383228f9476a26ac50930cd64104b32e211bfce
|
|
BLAKE2b-256 checksum How to use checksums |
3ffd3780c8625f6181a4eb029bf7f92a05a219695dc4fa1f1151346e9bfff864
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.
Transparency logRelease files / palace_solver-0.18.1.post3-py3-none-manylinux_2_28_aarch64.whl
| Download URL | palace_solver-0.18.1.post3-py3-none-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 60.3 MB |
| Tags | Linux glibc 2.28+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
5e5b198b6b7df6bf0bc0e4b0935147c6dc45e7ef90368db7dc10247a91e476e8
|
|
BLAKE2b-256 checksum How to use checksums |
664ace81582c3c08e190692a5c71e21fbc361817ef60efdf97f3fb13d11fd03f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.
Transparency logRelease files / palace_solver-0.18.1.post3-py3-none-macosx_15_0_arm64.whl
| Download URL | palace_solver-0.18.1.post3-py3-none-macosx_15_0_arm64.whl |
|---|---|
| Size | 58.2 MB |
| Tags | Python 3 macOS 15.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
03dca65358e947f69532f8938d077a2d9ed47eeabc6db144e1370a449695adf4
|
|
BLAKE2b-256 checksum How to use checksums |
c94d1b38c88e2e4b96192805e6d62e2381733850f30bcc785fa41ba5ca8a872f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.
Transparency logSecurity for palace-solver 0.18.1.post3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 4 files in this release have been uploaded with provenance metadata.
Attestation for palace_solver-0.18.1.post3-py3-none-win_amd64.whl
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.