Using Chapel on Windows¶
Chapel can be used on Windows systems in two ways: via the Windows Subsystem for Linux (WSL) or via Cygwin. The WSL approach is the preferred method for running Chapel on Windows, as it provides a more native Linux environment and better performance. The Cygwin approach is supported as a portability option and should not be expected to result in good performance.
Using Chapel on WSL¶
WSL is a compatibility layer for running Linux binary executables natively on Windows. It provides a Linux-compatible kernel interface, and it can run a variety of Linux distributions. For more information on WSL, see the WSL documentation.
To use Chapel on WSL, you will need to install a Linux distribution from the Microsoft Store. We recommend using Ubuntu, but others will likely work.
This example shows how to install WSL and Ubuntu on Windows 10/11:
# From PowerShell, run the following command to enable WSL
wsl --install -d Ubuntu
There are two main approaches for using Chapel on WSL:
Install via a prebuilt Chapel package. This is the quickest way to get up and running, but it results in a copy of Chapel without GPU support and that only supports shared-memory (single-locale) executions. See the list of available packages released on the Chapel GitHub page.
Build Chapel from source, as with any other UNIX system. This is slightly more involved, but supports Chapel’s full feature set. See the list of prerequisites for your distribution from Chapel Prerequisites
For option 1, see the following example of how to install Chapel on WSL:
# From the Ubuntu terminal, use wget to download the Chapel package,
# replacing <chapel_version> and <package_file_name> with the appropriate values
wget https://github.com/chapel-lang/chapel/releases/download/<chapel_version>/<package_file_name>
# Verify the package by checking the shasum 256 against the known good value:
# see https://github.com/chapel-lang/chapel/releases for a list of packages and known good sha256 values
# if you get the following error:
# `shasum: standard input: no properly formatted SHA checksum lines found`
# check that you have 2 spaces between the sha256 value and the filename
# Install Chapel, replacing <package_file_name> with the appropriate value
sudo apt-get update
sudo apt-get install <package_file_name>
# Test that chpl is available
chpl --version
There are no platform-specific settings for Chapel on WSL at this time.
Note
This configuration is not currently tested nightly. Please report any issues you encounter when using Chapel on WSL by filing a bug report
Using Chapel on Cygwin¶
Chapel can be used on both 32-bit and 64-bit installations of Cygwin. Chapel can be sensitive to directories with spaces, but otherwise it will work on Cygwin just like any other platform.
Note
Please note that running Chapel on Cygwin is supported only as a portability option and should not be expected to result in good performance. For users wanting to run Chapel on Windows systems, the preferred approach is to use the Windows Subsystem for Linux (WSL) / Linux Bash Shell.
Unpacking Chapel¶
For best results, avoid using WinZip to unpack the release, or make sure that it is running in a mode that will not convert textfiles to use Windows-style carriage-return/linefeed end-of-lines – doing so can change Makefiles such that they break the build process. We recommend using Cygwin’s gunzip and tar utilities to unpack the release:
gunzip chapel.tar.gz
tar xvf chapel.tar
It is best to unpack the release in a directory whose path contains no
spaces. For example, unpacking the release in the root directory of your
hard-drive (/cygdrive/c/
) to create /cygdrive/c/chapel
tends to
work well. Currently, our compiler-generated Makefiles break when the
compiler or runtime use an absolute path that contains spaces. If any
Cygwin experts have tips on addressing this issue in a portable way,
please let us know.
Required Packages¶
In order to get the required tools listed in Chapel Prerequisites, Cygwin users will need to ensure that the following packages are installed in addition to the standard set of Cygwin packages:
- Devel
gcc and gcc-g++
make
- Perl
perl
- Python
python
- Utils
diffutils
Additional Information¶
For more information on Cygwin, please refer to: