Installation

These pages document the installation process for Bumblebee. Note that Bumblebee consists of multiple modules:

  • The Bumblebee executable, responsible for performing the calculations

  • A web interface for creating, managing and analyzing your simulations

  • Script utilities for connecting the web interface to a workstation or compute cluster

The web interface can be obtained from the downloads page. Once installed, links to obtaining the executable and script utilities can be accessed from within the web interface.

Downloading Bumblebee

Installation files for Bumblebee are provided as a tar archive on the downloads page.

  • Select the correct version of the Bumblebee installer from the list and click the download button to access the files

  • You will be prompted to verify your SCM username and password. These credentials were provided to you as part of the Bumblebee license. If you are having trouble accessing the downloads, please contact our support team

  • You should obtain a bbweb.tar archive containing the web interface installation. You can use your system file explorer to access the files in the archive

    • bbweb.image contains the web interface itself

    • bbweb-kube.yaml is the configuration file for the web interface

    • Bumblebee.pdf contains the offline version of the documentation

Note

Bumblebee is provided as a separate installation from AMS. AMS provides multi-scale OLED workflows for the determination of material parameters used in Bumblebee simulations. Instructions for the installation of these workflows can be found in the AMS Manual.

Web Interface

The web interface is provided as a container application, allowing users to run their own Bumblebee instance on a local system. A container manager is necessary to launch the web interface. The following instructions use Podman.

  • Download the Podman Desktop installer and follow the OS-specific instructions on the website to install Podman Desktop

    • On Windows, Podman Setup may ask you to install WSL2. If WSL2 is not detected after installation, you may be required to restart your computer before resuming the setup

    • A Windows Firewall message may pop up, asking whether to allow Podman access to the network. You only need to enable this if you want access to the web interface from other computers

    • Optional: It is recommended to enable the Autostart setting for Podman. This skips having to launch the Podman engine every time you open Podman Desktop. If you want to change this setting later:

      • Go to the Extensions tab

      • Click on the Podman extension

      • Click on the file icon labeled Edit properties of Podman extension

      • Enable/disable autostart

    • On Windows, you will see the message: We could not find any Podman machine. Podman needs to setup a virtual machine in WSL before launching the container:

      • The name does not matter, you may use the default

      • The image path can be left empty

      • Bumblebee does not require a machine with root privileges. It is recommended to keep this setting disabled to improve security

      • User mode networking is disabled by default. This setting is only required when you are connecting through a third-party VPN

_images/Windows_Settings.png

Fig. 1 Podman machine settings for WSL

  • Open Podman Desktop. On the Dashboard page, there should be a Podman widget with the Running status. If this is not the case, follow the instructions in the previous step to set up Podman

_images/Podman_Running.png

Fig. 2 Configured Podman

  • Go to the Images tab in Podman Desktop

  • Click the Load button and select the bbweb.image file obtained from the bbweb.tar download

_images/Images_Loaded.png

Fig. 3 After loading the image

Note

Podman has both Load and Import options. The Load option has to be selected when adding the container.

  • Go to the Pods tab in Podman Desktop

  • Click the button labeled Play Kubernetes YAML and select the bbweb-kube.yaml file obtained from the bbweb.tar download

    • If you encounter an HTTP or server error when playing the YAML file, you may have a firewall enabled, blocking connections to the container registry. Contact your IT department or SCM support to resolve this issue

  • Wait until all indicator lights turn green

    • When restarting Podman Desktop, you may need to click on the Start Pod button (indicated by the play icon) before the web interface will load

_images/Pods.png

Fig. 4 Web interface is running

  • Click on the name of the pod (podbbweb)

  • Click on the Open button (maximize icon) to launch the web interface

  • If this is the first time opening the web interface, you will be prompted to create an admin account. This account is stored locally on your computer and is not shared with SCM

_images/Admin_Login.png

Fig. 5 Create an admin account on your first login to the web interface

Bumblebee

The Bumblebee executable can be obtained from the Downloads tab in the web interface. Clicking on your username will open a menu, from which you can access Downloads.

_images/Dropdown.png

Fig. 6 Access Downloads in the web interface

The Downloads page contains a button to download the binary.

_images/Downloads.png

Fig. 7 Downloads page containing the Bumblebee binary

Linux

The provided executable is compiled for Linux systems and should work out-of-the-box. It may be necessary to enable executable permissions:

chmod +x bumblebee

To confirm that the executable is compatible with your system, simply run the following command from the terminal:

./bumblebee --version

You may get a message indicating that the license file is missing. Bumblebee uses the AMS license by default. Please follow the instructions on the AMS page to configure the general license.

If your license only includes Bumblebee, you will receive an email with instructions for obtaining a dedicated license file. Bumblebee assumes that this file can be accessed from the SCMLICENSE location. You may configure the license location by adding the following line to the ~/.bashrc file (first, make sure that the path is correct):

export SCMLICENSE=$HOME/license.txt

You can add it directly to the ~/.bashrc file using this command:

echo 'export SCMLICENSE=$HOME/license.txt' >> ~/.bashrc

Note that you may need to adjust the path to the location where you installed the license file. Make sure to source the configuration file for these changes to go into effect.

source ~/.bashrc

Warning

Do not change the name of the license.txt file itself.

Connecting to a Server

In order to submit calculations automatically through the web interface, a connection must be established with the machine running Bumblebee. This process requires 2 steps:

  • Install Bumblebee Bootstrap on the server

  • Setup server connection in the web interface

Server Setup

The Bumblebee executable has been installed on the server. In order for the web interface to use your Bumblebee installation, the Bootstrap script utilities must now be installed.

Linux (cluster)

The Bootstrap scripts are currently designed to work with the Slurm workload manager (WLM). If you are using a different WLM, please adapt the scripts accordingly.

  • Download the Bootstrap scripts from the Downloads page in the web interface

  • Copy the bootstrap.zip file to the server

  • Unzip the bootstrap.zip contents into a new folder. This will act as the working directory for the web interface, and will also contain the output files from your simulations

Bootstrap requires Python3 to be installed on the cluster, along with the numpy, scipy, yaml and numexpr packages. If you have administrative permissions, you can install these through a package manager such as apt:

sudo apt install python3 python3-yaml python3-scipy python3-numpy python3-numexpr

If you are not allowed to install packages yourself, contact your server admin.

If the queueing system on your cluster requires additional Slurm settings (such as account information) to be included during job submission, you may create a qsub.conf file in the preprocess directory.

cp preprocess/qsub.conf.example preprocess/qsub.conf

Any SBATCH directives specified in this file will be included in the default job scripts generated from the web interface.

Finally, the Bumblebee executable must be accessible for your jobs. The executable should be part of the server PATH. If you are not allowed to modify the PATH yourself, a default install location is assumed at ~/.local/bin/. To check that Bumblebee is part of the PATH, you should be able to call the executable from any location on the cluster:

bumblebee --version

Linux (local)

It is possible to run Bumblebee on the same machine that is hosting the web interface. Follow the Slurm installation instructions to configure the WLM on your computer. Then proceed through the same steps as described above.

Slurm configuration

  • Install slurm

sudo apt install openssh-server slurm-wlm

sudo gzip -cd /usr/share/doc/slurmd/examples/slurm.conf.simple.gz > /etc/slurm/slurm.conf
  • Configure the Slurm settings

    • Make sure the SlurmctldHost matches the hostname

    • Make sure the Nodename matches the hostname

    • Correctly set the CPU and Memory configurations of the Node

HN=$(hostname -s) && sudo sed -i "s|=workstation|=${HN}|g" /etc/slurm/slurm.conf

HN=$(hostname -s) && sudo sed -i "s|=server|=${HN}|g" /etc/slurm/slurm.conf

SC=$(slurmd -C | head -1) && sudo sed -i "s|^NodeName=.*|${SC}|g" /etc/slurm/slurm.conf
  • Start slurm

sudo systemctl enable slurmd slurmctld

sudo systemctl start slurmd slurmctld

sudo systemctl status slurmd slurmctld
  • The status of both slurmd and slurmctld should be active. If this is not the case, check your configuration or consult the Slurm manual

Connection Setup

Login Authorization

In order to allow Bumblebee to connect to your account, a key-based login must be enabled. On the Server page, click the button Generate New Key Pair. The key that is generated must now be added to the ~/.ssh/.authorized_keys file on the server. For example (adjust this to include your own key):

echo 'ssh-rsa AAAAB3NzaC1yc2= 3d808818-477a-45de-9f66-1e8eb5abd061' >> $HOME/.ssh/.authorized_keys

If the .authorized_keys file did not previously exist, make sure that the file permissions are set to mode 600.

chmod 600 ~/.ssh/authorized_keys

Warning

Both the public and private keys generated by Bumblebee are stored in a user-accessible folder inside the container.

For WSL users: note that files stored under WSL are exposed to the Windows user account. While access protection still applies by default, administrative privileges on the Windows account-level can be used to override these restrictions.

If you believe your private key may have been compromised:

  • Remove the old key from the authorized_keys on the server

  • Generate a new key in the web interface

  • Authorize the new key on the server to re-establish the connection. You can confirm the connection status in the server settings of the web interface

Connection Settings

In the Bumblebee web interface, go to the Settings menu and select the Server tab.

_images/Server.png

Fig. 8 Server settings page

Click on the Add Server button to configure a new connection.

_images/New_Server.png

Fig. 9 Configuring server settings

  • Choose any server name. This is the name that will be shown in the web interface when selecting the server for job submission

  • Enter the hostname of the login node of your server

    • If you are running Bumblebee on the same computer as the web interface, you may use host.containers.internal instead

  • Select an open port for ssh connections to the server. (The default is port 22. If your server login requires a specific port, adjust as needed.)

  • The username must be set to your login name on the server

  • Folder should be the path to the folder containing the Bootstrap scripts (relative to the Home directory on the login node)

  • The backend should be set to remote

  • Set the name of the job submission queue on the cluster

  • Click the Check Connection button to test your connection. A check mark should appear to indicate a successful setup

If there is a problem with the connection, a warning symbol will appear. Hover over the symbol to view the error message.

  • If a connection could not be made:

    • Check that your computer is connected to the network

    • Check that the server is connected to the network

    • Check that the hostname is correct

ping hostname
  • If the connection was refused:

    • Check that your username is correct

    • Check that incoming ssh connections on the server are allowed on the selected port

ssh -p 22 username@hostname
  • If the Bootstrap version could not be verified:

    • Check that the Folder has been set correctly

      • Navigate to the Bootstrap folder

      • Run the pwd command to obtain the absolute path

      • Copy the absolute path to the Folder

    • Check that the public key has been added to the authorized_keys

    • The authorized_keys file must have its permissions set to 600

    • The ~/.ssh folder must have its permissions set to 700

    • Check that you have executable permissions on the login node

    • If Bootstrap is installed on NFS, make sure that the NSF is mounted with executable permissions

    • To confirm that you have the correct path and permissions, navigate to the Folder on the cluster. You should be able to run the following command:

./preprocess/bumblebee-bootstrap-version -l
  • If there are dependency issues:

    • Make sure that Python is installed on the cluster

    • Check that all of the required Python packages are installed

    • Your Python version may be incompatible with Bootstrap

      • Install a different Python version

      • Install the required packages for the new Python version

      • Make the new Python version the default when using Bumblebee

    • If Bootstrap files have been deleted, re-install Bootstrap by downloading the files from the web interface

Testing the Installation

See the Tutorials page in the web interface to setup your first simulation. The simulation status should change to submitted to indicate that your job is now running on the server.

_images/New_Simulation.png

Fig. 10 Successful job submission

You can go to the Jobs page in the web interface to see the status of your ongoing simulations.

_images/Jobs.png

Fig. 11 Overview of active simulations

FAQ

If job submissions fail to run, this indicates a server-side issue.

  • First verify that the server connection is still active by checking the server status on the Settings page of the web interface

  • The pod may not have network access. On some operating systems, Podman disables pod connections if your machine does not have network access when starting Podman. This error can occur even when running Bumblebee locally. Re-start the pod to resolve this issue

  • The partition selected in the web interface server settings may not exist, or is currently DOWN. Login to the server and run the sinfo command to check the partition status

  • Key-based login may be disabled on the server. Contact your server administrator if this is the case

  • Check the simulation output for error information. You can access these files by logging in to the server and navigating to the job folder, or through the web interface by selecting the Simulation and navigating to the Files tab. You may need to click the Refresh button to load the files

    • error.log files document error messages from the server

    • std.err files report on error messages from Bumblebee. These errors include issues with your input settings or SCM License

    • std.out reports the output of the Bumblebee simulation

_images/Files.png

Fig. 12 View simulation output files in the web interface

If your jobs are successfully submitted, then immediately exit:

  • Check the simulation output for error information, as detailed above

  • You may have incorrectly set the SCMLICENSE location in the preprocess/bumblebee.qsub file. Check the output.log file to see the license configuration

  • Your license may have expired. On the server, run the following command to check for license errors:

./bumblebee --version
  • Necessary SBATCH settings may be missing from the qsub.conf file. Check the std.err file for Slurm messages

  • Bumblebee may not be in the PATH on the server. Check the output.log file to see if the executable could be found

  • .bashrc settings may not be loaded automatically when submitting jobs through the web interface, as the session is non-interactive. Either adjust the .bashrc file to enable settings for non-interactive login, or add necessary calls to the preprocess/bumblebee.qsub file