Frequently Asked Questions
This page addresses common questions and issues that users encounter when working with Palace. If you don't find the answer to your question here, please check the issue tracker or consider opening a new issue.
Installation
Can I install Palace on Windows?
We do not officially support or routinely test Palace on Windows and do not provide precompiled binaries for this platform. Users have reported success running Palace on Windows Subsystem for Linux (WSL) using an Ubuntu image. This approach essentially gives you a Linux environment within Windows, which is compatible with Palace's build system and dependencies.
Support for Palace on WSL is provided on a best-effort basis. If you encounter problems, please open an issue on our GitHub repository and we will do our best to help you resolve them (but we do not guarantee support).
Before reporting issues, we recommend searching through the issue tracker for existing discussions, known issues, and user-contributed solutions.
Common WSL Pitfalls
When working with Palace on WSL, be aware of these two frequent issues:
Missing system packages: The Ubuntu base image in WSL is minimal and lacks several packages that Palace's build process expects. You may need to install additional system packages even when using Spack, which normally handles dependencies automatically. Common missing packages include build tools, development headers, and system libraries.
Resource limitations: Windows can constrain the memory, CPU, and disk resources allocated to WSL, which may limit the size and complexity of simulations you can run. If you encounter out-of-memory errors or unusually slow performance, you may need to adjust these limits through the WSL configuration settings.
I installed Palace and downloaded the example files, but I get errors
Palace is under active development with new features constantly being added and the interface being refined. At this stage, Palace versions are not fully cross-compatible, which means configuration files and examples from one version may not work correctly with another version. For this reason, it is crucial to consult the documentation that corresponds to the exact version of Palace you are using.
The official documentation includes a version selector at the bottom of the sidebar to help you choose the correct documentation version. We generally recommend using the most recent version of Palace unless you have specific reasons to use an older version.
The most common cause of errors when running examples is a mismatch between your Palace version and the example files you're using. Here's how to ensure compatibility:
- Check your Palace version by running
palace --versionin your terminal (if--versionis supported, if not, check the log of any Palace simulation) - Navigate to the documentation for your specific version using the version selector
- Download example files from the GitHub repository at the tag or commit corresponding to your version
Currently, the documentation links always point to the GitHub pages for the main branch. If you follow these links directly, you might get versions of the examples that are inconsistent with your Palace installation. To get the correct examples:
- Go to the Palace GitHub repository
- Use the branch/tag selector to switch to the tag corresponding to your version (e.g.,
v0.14.0) - Download the examples from that specific version
Spack does not have the most recent version of Palace
If you tried installing Palace with Spack and found that you got an outdated version, there are typically two reasons for this issue.
The most common cause is that you're using an old version of the Spack package recipes. Spack maintains a repository of package definitions that needs to be updated periodically to include new software versions.
To update your local Spack repository, run:
spack repo update -b develop builtinAfter updating, you can check what versions of Palace are now available with:
spack versions palaceThis command will show you all the Palace versions that Spack knows about, including any newly added ones.
A less common reason is that the newest version of Palace hasn't been added to Spack yet. This can happen when a new Palace release is very recent and the Spack maintainers haven't had time to update the package definition.
You can check if this is the case by:
- Looking at the open pull requests to the
spack-packagesrepository - Searching for a PR that updates Palace to the version you want
- If such a PR exists, you can track its progress and wait for it to be merged
Once the PR is merged, run the update command shown above to pull the changes to your local copy of Spack.
Installing Development Versions
If you need the absolute latest version of Palace (including features not yet in a released version), you can install the development version directly from the main branch:
spack install palace@developKeep in mind that development versions may be less stable and are not recommended for production use.
I installed Palace with Spack and a new version was released. How do I update Palace?
Spack does not have a built-in mechanism to update packages in place. In fact, Spack is designed to allow multiple versions of the same package to coexist simultaneously, which is useful for reproducibility and testing different versions.
When a new version of Palace is released, you'll need to follow these steps to get the updated version:
Step 1: Update Your Spack Repository
First, update your local copy of the Spack package definitions to include the new Palace version:
spack repo update -b develop builtinStep 2: Verify the New Version is Available
Check that the new version is now available in your Spack installation:
spack versions palaceThis should show the new version in the list. If it doesn't appear, the new version may not have been added to Spack yet (see the previous FAQ entry for more details).
Step 3: Remove the Old Version (Optional)
If you do not have a reason to keep the older version, you can remove it first:
spack uninstall palaceNote that if you have multiple versions installed, Spack will ask you to specify which one to remove. You can also use spack find palace to see all installed versions first.
Step 4: Install the New Version
Finally, install the new version of Palace:
spack install palaceBy default, this will install the newest available version. If you want to install a specific version, you can specify it explicitly:
spack install palace@0.14.0Keeping Multiple Versions
If you prefer to keep both the old and new versions (for example, to maintain compatibility with existing projects), you can skip step 3 and just install the new version alongside the old one. You can then use spack load palace@<version> to switch between versions as needed.