Skip to main content

palace-solver

Build PYPI LICENSE

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, so palace checks 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 bin beside 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)

Table of built distributions (wheels) for palace-solver 0.18.1.post3
File
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 log

Release 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 log

Release 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 log

Release 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 log

Security 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.

Select from 4 files

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 log

A 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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page