Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Welcome! Here, you can find guides that are used by students and staff at TJHSST when interacting with services provided by or supported by the TJHSST Computer Systems Lab.
If you have questions about the contents of this website, please contact the Student Systems Administrators at .
A method for accessing library databases while off campus
CASA is a tool created by Google to allow students to access databases that TJ subscribes to while not on the TJ campus. Instead of using a proxy, CASA ties a token to your device when you access a database while on campus.
The next time that you use the same device to visit Google Scholar - on or off campus - it will automatically allow you to access any articles that are from databases that TJ subscribes to. In addition, if you are signed in to your gmail account on the device that originally generated the token, gmail can port that token to any other devices (laptop, tablet, mobile phone, desktop, etc.) that are signed into the same gmail account.
The off-campus access is valid for up to 120 days. To renew it, simply repeat the set up steps by visiting a database through Google Scholar while on campus again.
Step 1: To initiate CASA you must be on campus and connected to the FCPS WiFi. Step 2: Use keywords to search and find an article through . You can select any article that is from a database to which the TJ library subscribes. Step 3: Click the link to access that article. CASA will record an affiliation between your device (laptop, mobile phone, desktop, etc.) and your institution (TJ). The full text article should open in a new window.
Printing in the library (note: this is not Ion printing).
Printing is available in the library before school, at lunch if you are signed up for library lunch, in-between classes, and during 8th period if you are signed up for the library study hall.
There is no printing during instructional time.
Black & white printing is free; color printing is 50 cents per side.
Instructions for printing are posted by the library's Ricoh printer in the far corner of the library.
1. Download your document and save as a PDF.
2. Using FCPS Dell laptop or a library desktop: choose PRINT, use menu slider to choose FCPS CLOUDPRINT, then PRINT.
3. Using FCPS Chromebook: choose PRINT, then use menu slider to choose MOBILITY PRINTING, then PRINT.
1. Go to Ricoh printer in the corner of the library.
2. Log in using your FCPS student ID number.
3. Enter PIN. First time using the printer? Assign yourself a PIN using the NEED PIN button on the screen.
4. Log in with your FCPS student ID number and PIN.
5. Follow instructions on printer screen.
6. Log out.
2. Log in using your FCPS credentials.
3. Choose CHANGE DETAILS in the lower left corner of the screen.
4. Create a new PIN.
Information as of October 2024.
1. On a computer connected to FCPS Wi-Fi, go to
You need to clear your browser cache for the proxy to work. Follow these instructions to do so.
Enter chrome://settings/clearBrowserData
into your search bar
Go to the basic tab and select Cached images and files
Select the Clear Data
button.
Follow the directions below to configure your proxy in Chrome.
Enter chrome://settings/system
into your search bar
Select Open proxy settings
and follow the specific instructions for your operating system.
DEPRECATED: The tjCSL Library Proxy has been deprecated. The information on this site is preserved for documentation and historical purposes. Please check the Google CASA setup .
Follow the specific instructions for your operating system to set up Automatic Proxy Configuration via the URL
DEPRECATED: The tjCSL Library Proxy has been deprecated. The information on this site is preserved for documentation and historical purposes. Please check the Google CASA setup .
If you encounter any issues while setting up the proxy, please see .
Follow the directions for your correct operating system and/or browser in order to set up the proxy.
DEPRECATED: The tjCSL Library Proxy has been deprecated. The information on this site is preserved for documentation and historical purposes. Please check the Google CASA setup .
Make sure you've cleared your cache as per the instructions for your browser/operating system.
When you are prompted to enter your username and password, make sure to enter the password you use to login to Ion.
If you're using Chrome or Edge, try these steps:
Open the Settings app.
Navigate to Network & Internet > Proxy.
Enable "Use setup script."
Enter "https://pac.tjhsst.edu/" into the "Script address" box.
Click "Save."
Close Settings, reopen it, navigate back to the proxy settings, and make sure that the settings are still there.
Temporarily disabling Windows Defender (and any other antivirus software you have installed) while you access databases might work.
DEPRECATED: The tjCSL Library Proxy has been deprecated. The information on this site is preserved for documentation and historical purposes. Please check the Google CASA setup .
If the settings have been reset, then this is a known Windows issue. Unfortunately, the only confirmed solution is to , which allows you to use different proxy settings from the rest of the system.
If you require further assistance, please email . Please provide a detailed description of your issue, including your operating system/browsers, in order for us to better assist you.
Please consult these guidelines before requesting an Ion announcement.
The criteria for announcement posting may be periodically revised, but it includes the following:
The announcement must not violate any FCPS policy.
The announcement must have a direct relationship to sanctioned school activities.
It must not be inconsistent with the principal's directives.
The announcement should not have typos.
No announcement may be posted on behalf of a club not registered with the Eighth Period Office.
The announcement's content must also:
be of good taste
promote respectful behavior
use proper spelling/grammar
avoid excessive use of bolding, capitalization, or italicization
avoid use of copyrighted material without proper attribution
remain in compliance with CSL policies
not violate the law
Announcements should strive to avoid unnecessary repetition in the content being announced. For example, while it's okay for an eighth period club to advertise their existence once, announcements concerning a club should not be made every week.
When linking to external content, the linked content should be controlled by a trusted source, of good taste, and generally consistent with a school environment. Links should also not be broken, and these links should link to the intended destination.
Ultimately, the decision on whether to post an announcement rests solely in the approving Intranet administrators, subject to the principal's supervision.
Follow the instructions to clear your Edge cache.
Open Edge.
Click the menu button (three dots, horizontally).
Click "Settings".
Click "Choose what to clear".
Make sure "Cached date and files" is checked. You may wish to uncheck the other unboxes.
Click "Clear."
Follow the screenshots below to configure the database proxy on Windows.
Click the Start menu icon. The Start menu appears
In the search field, search "internet options" and click on the first result
A window will open. Choose the "Connections" tab
In the "Connections" tab, click on "LAN Settings.
In the "LAN Settings" popup, check the box "Use automatic configuration script
Click "OK" and then "OK" again.
Open Edge
Navigate to the Library Databases page and click "Access Science".
You may be presented with a password prompt. If so, type the username and password you use to login to Ion.
If you see the words "Thomas Jefferson High School", you have correctly set up the database proxy.
You can reset your CSL - and by extension your Ion password - at https://resetter.tjhsst.edu.
Whenever you are prompted to sign into a Google account throughout this process, you MUST use your <student-id>@fcpsschools.net address as a student or your @fcps.edu account if you are a staff member.
Log in with your FCPS Google account.
Follow the prompts to reset your password.
If you see a page that informs you that you have an invalid Google login, one of two situations are possible:
If you attempt to authenticate with a Google account that is not your FCPS account, you will get a message like the one above. Please log in with your FCPS Google account.
Pull down the menu area and then long press the wifi symbol to access your wifi settings.
After that, long press the network you are connected to (Fairfax in this case) and then press manage network settings.
Press Show advanced options
Scroll down and then do the following:
Change the Proxy to Auto-config
Put in https://pac.tjhsst.edu in the PAC web address text field
Press connect
If you haven't logged in already, you will then see a login prompt like this.
If you have logged in successfully, you should see Thomas Jefferson High School
after pressing the menu button.
For anyone wondering, yes, Firefox on Android is very different from desktop Firefox. This is especially true for setting up the proxy.
First, go to the menu by pressing the button with three vertical dots.
Then go to the settings.
On the settings page, select Clear private data
.
Make sure that the cache option is checked and then select clear data
.
Once you have cleared data, exit the settings screen and type in about:config
in the address bar.
In this area, search for network.proxy.type
and give it a value of 2. This lets Firefox know that you want to use a pac file for your proxy.
Then search for network.proxy.autoconfig_url
and set it to be https://pac.tjhsst.edu
.
To test this out, go to accessscience.com
. You should see a prompt for a username and password pop up. When prompted, put in the login information you would use to access Ion.
When you reach Access Science, press the menu button or the three horizontal lines and you should see Thomas Jefferson High School
This guide uses Firefox Quantum (Firefox version 57.0 and above). Menu designs changed and look very different from every version below that, so the guide will not accurately describe the steps you should take if your version is lower.
Steps to checking what version you have
For Windows
Press Alt
Mouse over Help
Click About Firefox
For Macs
Click Firefox
at the top left
Click About Firefox
If your About Firefox window shows Firefox Quantum, you have a late enough version. Otherwise, you will need to use this menu to restart and update Firefox until the About Firefox window shows Firefox Quantum.
Follow the instructions/screenshots below to setup your proxy:
Open the menu by clicking the three bars at the top-right and click on Options
Locate the search bar to the top right of the screen.
Search clear history
and select the Clear History
button.
Change the time range to Everything
.
Make sure that Cache
is selected under the History header
Select Clear Now
.
Now, search Network Settings
and select Settings
.
Under the Configure Proxy Access to the Internet header, select Automatic proxy configuration URL
.
Put https://pac.tjhsst.edu
in the text field below.
Select Reload
and then OK
.
Once you have successfully authenticated, you should see Access via Thomas Jefferson High School
at the top right of the site.
The ultimate guide to OAuth authentication through Ion.
Name
Some descriptive name for your application.
Client Type
Choose Confidential
if your app has a backend component and your server can store the client ID and secret securely.
Choose Public
if your app is purely client-side and a copy of the credentials will be distributed publicly.
Authorization Grant Type
Choose Authorization code
if your client type is Confidential
.
Choose Implicit
if your client type is Public
.
Redirect URIs
Enter one or more URLs that your application will redirect back to after the authorization is complete.
Algorithm
If this option exists, leave it at the default No OIDC support
. Ion doesn't support OpenID.
For a Python client, use requests
with requests-oauthlib
. If running locally (without HTTPS), override the SSL requirement for OAuth2.
Create an OAuth2Session, with the CLIENT_ID
and REDIRECT_URI
you entered in the application form. Redirect the user to authorization_url
.
The user authenticates, approves the request, and is redirected to the callback URL specified in redirect_uri
, with a "code" GET parameter.
At this point, a valid access token has been gained, and you can request API resources.
After 36,000 seconds (1 hour), the token will expire; you need to renew it. This can be handled by putting API commands inside a try-except for a oauthlib.oauth2.TokenExpiredError
, such as seen above. Alternatively, you can provide auto_refresh_url=refresh_url, auto_refresh_kwargs=args
as additional arguments to OAuth2Session when it is created.
Note: This code will not work out of the box. Read the comments carefully to determine how to integrate it into your application.
DEPRECATED: The tjCSL Library Proxy has been deprecated. The information on this site is preserved for documentation and historical purposes. Please check the Google CASA setup .
In the "Address" field, type
You MUST use the database link provided at
If you encounter any issues while setting up the proxy, please see .
Browse to .
It is possible that your account has not fully been created. You will see a page indicating Please email with your FCPS Student ID and TJ username. If you don't know either, just include your first and last name and your graduation year.
If you encounter any other issues, please email .
DEPRECATED: The tjCSL Library Proxy has been deprecated. The information on this site is preserved for documentation and historical purposes. Please check the Google CASA setup .
Go to to visit the library databases page. If you are logged into your fcpsschools account on the browser you are using, go to Visit the Access Science page.
DEPRECATED: The tjCSL Library Proxy has been deprecated. The information on this site is preserved for documentation and historical purposes. Please check the Google CASA setup .
DEPRECATED: The tjCSL Library Proxy has been deprecated. The information on this site is preserved for documentation and historical purposes. Please check the Google CASA setup .
Navigate to the Library Databases page a . Under the Science Databases, select Access Science
.
If the link provided showed up a s a 404, you are probably logged into your fcpsschools account. Try instead.
If you encounter any issues while setting up the proxy, please see .
You can create and manage OAuth applications at .
With the Django OAuth Toolkit, Ion supports accessing API and other resources via . This allows for applications to be written using the Ion API without the need to prompt for user credentials from within the application. Instead, access tokens are used to gain access to Ion API resources. This functionality enables you to have users authenticate to your website using their Ion account. This is especially useful for apps that are meant to serve the TJ community.
Go into on Ion and click Create Application
. Specify the following values in the form:
Inside your application, redirect to the OAuth authorization endpoint to receive an authorization code. The url is . To access the API, exchange this code for a (temporary) access token. The URL is .
If you want to use python-social-auth
, a plugin is available in the ion_oauth package. You can get an older version or download an updated version directly from GitHub .
For a Django project add AUTHENTICATION_BACKENDS = ['ion_oauth.oauth.IonOauth2']
and define SOCIAL_AUTH_ION_KEY
and SOCIAL_AUTH_ION_SECRET
in your settings.py
file. The redirect_uri
s for Django projects should be "http://<site-url>/complete/ion/" and "http://<site-url>/complete/ion".
You can use the library to perform authentication. Below is some sample code.
This page describes how to download and install Mathematica for TJHSST students.
To install Mathematica on a personally-owned machine, please use the following instructions
After you submit the form, your activation key will be displayed and will also be sent to your TJ email.
To download the installers for Mathematica, follow the link on either the activation key page or in the email with your activation key.
Download the appropriate installer for your platform (Windows, OS X, or Linux) and install it as you would any other application for your platform.
After you launch Mathematica, you will be prompted to enter the activation key you received and accept the Mathematica EULA.
Congratulations, you now have Mathematica!
This guide will help you setup server-side email forwarding for your TJHSST email account using Ion. This filter will automatically keep a copy of your emails in your TJHSST inbox as a backup.
is the world's most powerful global computing environment. Ideal for use in engineering, mathematics, finance, physics, chemistry, biology, and a wide range of other fields, it makes possible a new level of automation in algorithmic computation, interactive manipulation, and dynamic presentation--as well as a whole new way of interacting with the world of data.
These instructions require that you create a Wolfram Account using your TJ email address using .
Visit , sign in with your Wolfram Account, and fill out the form to request an activation key.
If you are experiencing difficulties with installing Mathematica, please email .
Watch the .
Explore the for topics relevant to your interests.
Launch Mathematica, open the Classroom Assistant, and perform your first few computations.
You're now ready for the projects that faculty will assign.
Sign up for the .
Explore the for topics relevant to your interests.
Find some prebuilt examples and courseware from the , , and the .
Assign the above steps in the student section to your classes as homework.
Sign up for the .
Sign up for the .
Take relevant to your work.
Explore the for topics relevant to your interests.
Go to the site to see what's possible.
Go to the for additional resources.
Director documentation has been moved to Director. Access them .
To setup forwarding with Ion, click on . If prompted, log in with Ion. Enter the email you want to forward to, NOT your TJ email. Please keep in mind that we cannot forward to @fcpsschools.net emails and the application will not allow you to specify one.
This page has the configuration details for using your TJ email account with a 3rd party client, such as Apple Mail, Microsoft Outlook, or Thunderbird.
You will need to use the following settings for IMAP (sometimes called incoming mail) and SMTP (sometimes called outgoing mail):
IMAP
Server: imap.tjhsst.edu
Port: 993
Encryption Type: SSL
Username / Password: TJ Username and Password
SMTP
Server: smtp.tjhsst.edu
Port: 465
Encryption Type: SSL
Requires Auth: YES
Username / Password: TJ Username and Password
Some clients do not support IMAP, but only support the older POP3 protocol. We do not support those clients, and we recommend you use an IMAP-capable client.
This page describes the process for taking attendance for large groups through Ion.
You should create a Google Form using your FCPS Google Drive. The form needs to follow the exact format pictured below and both questions should be required.
Click through the Google Form to open the spreadsheet of responses. Your students' responses will populate here. You must change the column headers to "Name" and "Email" as shown below. Capitalization is important and this process will not work if you do not change the column names.
Post the link to the form you created. Make sure students know that they have to sign in with their FCPS emails to complete it and that they have to enter their first and last name as they appear in Ion. Additionally, emphasize that the email that they have to enter should be their @fcpsschools.net email.
Go back to the spreadsheet of responses and click File -> Download -> Comma separated values. Save the file where you will be able to find it later.
Then, go into the page on Ion where you usually take attendance and click "Take Attendance with Google Meet CSV Report:" Upload the spreadsheet file that you downloaded.
Ion will do the rest of the work and will check off the students that it finds in the uploaded file. It will notify you of any students that were in the form, but couldn't be found as a signup. This is probably indicative of a formatting error in the students' submission. You will still be able to manually check off students to rectify these issues.
Using the Printing service on Ion
The Printing feature on Ion is a service that the CSL provides to students and staff member to be able to print to the 3 Syslab printers and to the 9 commons printers around the school. It's a service made available to students who don't use/have a school-provided laptop, use one of our 60+ workstations in the CSL, or needs to print something on-the-go.
We currently have 12 functioning printers around the school. Three of them are located in the Computer Systems Lab, with one in each room:
Room 202 Printer:
Model: HP LaserJet P3015
Room 200c Printer:
Model: HP LaserJet P3015
Room 200 Printer:
Model: HP LaserJet P3015
These printers were add to Ion in late 2023 as the demand for use of Ion printing has increased.
Carver Commons Printer:
Model: HP LaserJet 4100
Curie Commons Printer:
Model: HP LaserJet 4100
Einstein Commons Printer:
Model: HP LaserJet 4100
Faraday Commons Printer:
Model: HP LaserJet 4100
Gandhi Commons Printer:
Model: HP LaserJet 4100
Hopper Commons Printer:
Model: HP LaserJet 4100
Newton Commons Printer:
Model: HP LaserJet 4100
Tesla Commons Printer:
Model: HP LaserJet 4100
Turing Commons Printer:
Model: HP LaserJet 4100
To Print from Ion:
Select the file you want to print. Please make sure that the file type is supported as well. Here are the ones that currently are supported by Ion:
.pdf: Adobe PDF
.ps: Adobe PostScript
.odt: OpenDocument Text Document
.txt: Plain Text
.doc and .docx (not recommended; format may come as off. Would recommend converting it to a PDF): Word Document
Select the printer you want to print to. Choosing the one close by you is highly recommended.
Check to see how many pages you are printing. The maximum amount of pages you can print at once is 16.
Check if you want your documents double-sided and/or fit-to-page.
Print.
Workstation Printing can be done by going to Ion, or printing directly from the command line. To Print from the command line:
Access the terminal.
Change directory to the file you want to print (not required but recommended).
Recommended: Check which printers are online and not disabled. You can use the command lpstat -p
to see a list of printers and their status:
To print to a specific printer, you can use this command lp -d <PRINTER> <FILENAME>
, where you replace the <PRINTER>
with the printer of your choice, and the <FILENAME>
to file you want to print.
Jobs are currently limited to 16 pages. Abuse of printing privileges may result in appropriate punishment as determined by the Faculty Sponsor and lead Sysadmins.
Check to see if the printer contains ink or paper, if one of the two are low or missing, please contact a Sysadmin.
If you sent to the printer a print job (you have hit the 'Print' button on Ion) and the printer seems not to work, please check the following:
The tray: This is where paper is stored. For the printers in the Syslab, pull the tray located at the bottom of the printer. DO NOT OPEN THE TRAY ON THE SIDE OF THE PRINTER! For the printers located in commons, pull the bottom tray. If there is paper there, ask a Sysadmin about the printer. Do not send another print job.
Disablement/Maintenance: There are in some cases where a printer may be disabled or temporarily down for maintenance and with that case can only be changed by a Printing Lead or current Lead Sysadmins.
Jammed: If a printer is jammed, do not attempt to unjam the printer! This will most likely cause the printer to be damaged. Instead, ask a Sysadmin or a nearby teacher to assist.
Highly Recommend to be present at the printer when printing.
If in some circumstances where you printed from a different room/common than the printer is in, please pick up your documents. If this is not done, you may be subjected to a possible removal of printing privileges.
Please avoid printing multiple times unless you have picked up your first copies.
The contact person for the printing service and associated infrastructure is .
Access the web interface at . You need to be on school wifi (Fairfax
) to access the service.
This document describes how to use TJ's JupyterHub instance
Default (4 CPUs, 8GB RAM)
Compute (8 CPUs, 16GB RAM)
1 GPU (8 CPUs, 16 GB RAM, 1 GPU)
2 GPUs (8 CPUs, 16 GB RAM, 2 GPUs)
4 GPUs (8 CPUs, 16 GB RAM, 4 GPUs)
Please only choose what you need. Depending on usage, it may take longer to spawn instances for higher resource allocations, and others may be prevented from using resources allocated to you if you are not using them.
You will then be placed in a queue to wait for your own server to spawn. Our instance is configured such that your server may be spawned on one of 53 different machines. Even though your server is spawned on random machines, all your files are stored in a common location: /cluster/<username>
.
After logging in you may be greeted with a "Launcher" tab. This tab will have multiple options, including:
Python Notebook
Python Console
Terminal
The Python Notebook and Python Console are two separate interfaces, and you may experiment with either of them.
Both of these Python interfaces are based in the "default" Python environment, meaning they have the default packages. In most cases the default packages will suffice, but if you need to install custom packages read the instructions below:
To create a personal custom Conda environment run the following:
On infocube
or any cluster node run the following in your home dir (/cluster/<your_csl_username>
)
The --name
parameter can be anything you wish (in this case my_personal_environment
). Additionally,ipykernel
is REQUIRED at the end.
After creating the Conda environment, activate it:
Replace my_personal_environment
with the environment name you previously chose.
Finally add the environment to JupyterHub:
The --name
and --display-name
parameters can be anything you wish.
After running the previous commands your launcher should now look like this:
Now you have created a personal environment you have total control of. You may use conda
to install any custom packages you wish. Be sure to click on your new Python Notebook/Console option (not the default option) if you wish to access your custom environment.
Removing environments is a permanent action and cannot be reversed!
Removing the Conda environment is simple:
Removing the entry is a little more involved:
The <name>
parameter must match the --name
parameter passed to the python -m ipykernel ...
step, NOT --display-name! You may also ls
around in this directory to find your matching environment and then rm -r
the directory
After removing the directory, reload JupyterHub and the entry will now be removed.
The cluster was purchased by the Computer Systems Lab to serve the Parallel Computing and Computer Vision classes, but is available for usage by all TJ students and staff. Several senior research labs have expressed interest in using the cluster's resources for their own purposes. Academic jobs run on the cluster will receive priority allocation of resources, but non-academic jobs are accepted as well as long as they abide by the FCPS Acceptable Use Policy (Regulation 6410).
The full cluster consists of 12 HPC cluster nodes, 40 Borg nodes, and 1 dedicated GPU node (zoidberg). This setup occupies almost 3 full racks in the server room. The CSL obtained the 40-node Borg cluster from NASA through an educational grant. The Borg nodes are named borg[1-40] consecutively and the HPC nodes are named hpc[1-12]. The login node is infocube
All nodes on the cluster are directly accessible through ssh
as well as Slurm. However, due to unfinished maintenance caused by COVID-19, some nodes are inaccessible indefinitely.
Format: <prefix>[sequence]. (e.g borg[1-3] means borg1
, borg2
, and borg3
are available)
borg[1-3], borg[6-31], borg40
hpc[1-6], hpc[8-12], zoidberg
snowy
borg[4-5], borg[32-38]
hpc7
duke
An always up-to-date version of this list can be viewed by running sinfo
on infocube
or an available node.
You can directly access any available cluster node through ssh
. To ssh
into a cluster node:
ssh
into remote.tjhsst.edu
using your TJCSL username and password
ssh 2021abagali1@remote.tjhsst.edu
ssh
into a cluster node
ssh borg1
(or any available node)
The login node and all cluster nodes use a file system that is separate from the ras1
/ras2
/workstation AFS directories. Instead all user files are stored in CephFS under the directory /cluster
. For example the cluster files for 2021jdoe
would be in the directory /cluster/2021jdoe
.
When you log into infocube
or any cluster node your cluster directory will be /cluster/<username>
. In addition to the cluster nodes, you can access your cluster files on ras1
/ras2
, under the same directory.
Note: on ras
your /cluster
directory is not your default directory and is separate from your default directory files. You may use cp
,mv
, or another utility for moving files back and forth from anywhere on ras
to your /cluster
directory. This feature is currently unavailable on workstations. If you wish to copy files from a workstation over to your /cluster
directory you may use sftp
or scp
to copy your files from the workstation over to the target cluster node.
It is safe to assume use of the keywords: "default directory", "home directory", "homedir", "cluster directory", etc while in the context of the Cluster refer to the directory at /cluster/<username>
is a fully-online IDE that is very similar to Google's Colab interface. JupyterHub's uses vary from simple text file editing to large IPython notebooks. This document will mainly focus on the advanced features of JupyterHub since the more simple features are easily discoverable through the interface and are fairly self-explanatory.
TJ's JupyterHub instance is available at. You will be redirected to Ion to authenticate. Then, you will be presented with options for your Jupyterlab instance:
Both the Python Notebook and Console are backed by environments. Familiarize yourself with Conda environments before reading on.
The recommended method of running jobs on the Cluster is through
Speaking of SLURM (the Simple Linux Utility for Resource Management), Slurm is the utility used for job control and submission. Users log in to infocube
, run some simple commands, specifying what they want to run, how many resources it should have, priority, and other optional arguments, and SLURM takes care of allocating cluster resources for them, and provides job accounting so users know the status of their jobs. More information at our .
This document describes how to properly use the CSL's 53-node computer cluster
Slurm is a free, open-source job scheduler which provides tools and functionality for executing and monitoring parallel computing jobs. It ensures that any jobs which are run have exclusive usage of the requested amount of resources, and manages a queue if there are not enough resources available at the moment to run a job. Your processes won't be bothered by anybody else's processes; you'll have complete ownership of the resources that you request.
As of September 2020, the old login node, infosphere
, has been decommissioned and replaced with the new login node: infocube
. Running ssh infosphere
may result in a weird SSH error, but it is safe to ignore this error. Running ssh infocube
bypasses this SSH error altogether.
To get started with running jobs on the Cluster you should connect to the login node, which is infocube
in this case. Any of the following commands while on ras
or TJ CSL computer will allow you to connect to infocube
:
After connecting to infocube
you will be placed into your Cluster home directory (/cluster/<username>
). infocube
is a virtual machine and does not have nearly the amount of resources as the entire Cluster does, so do not run programs directly on infocube. Instead, you want to tell Slurm to launch a job
Jobs are how you can tell Slurm what processes you want run, and how many resources those processes should have. Slurm then goes out and launches your program on one or more of the actual HPC cluster nodes. This way, time consuming tasks can run in the background without requiring that you always be connected, and jobs can be queued to run at a later time.
Our Cluster is split into two partitions: compute
and gpu
. All nodes that are in the gpu
partition are in the compute
partition, but not vice versa. Nodes in the gpu
partition have GPUs installed which can be accessed through Slurm.
To see information about the nodes of the cluster, you can run sinfo
. You should get a table similar to this one:
idle
means that that block of nodes is not currently in use, and will be immediately allocated to any job that requests resources.
alloc
means that the node is busy and will not be available for any other jobs until the job is complete
mix
means that some of the cores within the node are allocated and others are free. Because this is annoying, it is good etiquette to allocate your jobs in multiples of full nodes (24 cores)
down
means that the node cannot currently be used.
If a state ends with *
that means those nodes cannot have jobs scheduled on them (useless nodes)
i.e if a node is in STATE idle*
, no jobs will be scheduled onto that node, even though it is marked as idle
.
To see which jobs are running and who started them, run squeue
. You should see a table like this:
ST
stands for state. The two common states are R
, which means the job is currently running, and PD
, which stands for pending. If the job is running, the rightmost column displays which nodes the job is running on. If the job is pending, the rightmost column displays why the job is not yet running. In this example, job 884 is waiting for six nodes worth of resources because job 882 is running on all 12 of the available nodes.
When compiling your program, it's best to connect to infocube
(the login node explained in the section above), so that your code is compiled in a similar environment to where it will be run. The login node should have all the necessary tools to do so, such as gcc, g++, and mpicc/mpixx.
WARNING: compiling your program on a workstation/any other computer that is not part of the cluster and then transferring the generated executable over to the cluster WILL NOT WORK. This is called CROSS COMPILATION and it WILL NOT WORK. This is not a challenge, it is a statement of fact
And now the good stuff: running a job! Slurm provides 3 main methods of doing so:
salloc
Salloc allocates resources for a generic job and, by default, creates a shell with access to those resources. You can specify what resources you want to allocate with command line options (run man salloc
to see them all), but the only one you need for most uses is -n [number]
which specifies how many cores you want to allocate. You can also specify a command simply by placing it after all command line options (ex: salloc -n 4 echo "hello world"
). This is currently the suggested way to run MPI jobs on the cluster. To run MPI jobs, first you must load the mpi module, as stated above (module load mpi
). After that, simply run salloc -n [number of cores] mpiexec [your program]
. Unfortunately, the displayed name of this job is, by default, just "mpiexec", which is not helpful for anyone. To give it a name, pass salloc (NOT mpirun) --job-name=[name]
srun
This is the simplest method, and is probably what you want to start out with. All you have to do is run srun -n (processes) (path_to_program)
, where (processes)
is the number of instances of your program that you want to run, and (path_to_program)
is, you guessed it, the path to the program you want to run. If your program is an MPI program, you should not use srun
, and instead use the salloc
method described above.
If your command is successful, you should see "srun: jobid (x) submitted". You can check on the status of your job by running sacct
. You will receive any output of your program to the console. For more resource options, run man srun
or use the official Slurm documentation.
sbatch
sbatch
allows you to create batch files which specify a job and the resources required for the job and submit that directly to Slurm, instead of passing all the options to srun
. Here's an example script, and assume you save it as test.sh
:
This page describes how to download and install Matlab for TJHSST students
To install Matlab on a personally-owned machine, use the following instructions:
Students must use their @tjhsst.edu email
Faculty must use their @fcps.edu email
Confirm your email and follow the link to the setup page
Select an appropriate Department
e.g Student
Associate with license number: 18332-25780-63027-21100-78245
Make sure to include the dashes
This will complete your account setup
Once your account is created, click on My Account, and go to My Downloads
Download one of the listed versions for your operating system and install!
In the installation process you will be required to log in and verify your account and installation
If you aren't familiar with the layout of the HPC Cluster, it's highly recommended that you read the parent page, before delving into Slurm and running jobs, to avoid any confusion over terminology used here. After you have done so, please thoroughly read this page before using the cluster.
Slurm is very user-friendly. You don't necessarily have to have an academic use for the cluster, but keep in mind that any use of the HPC cluster is bound by the FCPS Acceptable Use Policy, just like the rest of TJ's computing resources, and academic jobs will have priority use of Cluster resources. All TJ students are granted cluster accounts in the beginning of the year. If you believe your cluster account does not exist or is broken email
The HPC Cluster is comprised of 64-bit Ubuntu Linux systems. While you can run any old Linux program on the Cluster, to take advantage of the parallel processing capability that the Cluster has, it's highly recommended to make use of a parallel programming interface. If you're taking or have taken Parallel Computing, you will know how to write and compile a program which uses MPI. If you aren't, is a good introduction to MPI in C. See below for instructions on running an MPI program on the cluster.
You could then submit the program to slurm using sbatch test.sh
. This would tell Slurm to launch the program at (path_to_program)
, and to launch 4 tasks, limit the maximum execution time to 30 minutes, and require that no more than two tasks run on a specific system. Here are some other examples:
is a high-performance language used for technical computing. It combines a desktop environment tuned for iterative analysis and design processes with a programming language that expresses matrix and array mathematics directly. It includes a for creating scripts that combine code, output, and formatted text in an executable notebook.
Go to and create an account.
This document describes how to use qiime2 and other biology packages on JupyterHub and the Cluster
You will be placed into a queue until a computer is allocated to you (one of 40+ machines)
Once logged in select "File > New > Terminal" this will give you a terminal on the machine you are n
This is the same effect as Running ssh [Ion username]@remote.tjhsst.edu
and then ssh [computer]
from there.
Conda is a package manager that has been installed on these servers. It creates environments in which you can run and install software. You need to initialize conda once for your user account before you can access the qiime2 installation.
If you have never run conda
before run: /opt/conda/bin/conda init bash && source ~/.bashrc
qiime2
and related packages are installed in the qiime2
conda environment. This environment can also be accessed through JupyterHub with the "Console" and "Notebook" options (Python only). To access qiime2
from the terminal run the following:
The terminal prompt should now look something like this (noticed the (qiime2)
preceding):
Now you can run qiime
to access Qiime2
After logging into JupyterHub you should see the following on the JupyterHub "launcher":
The qiime2
options will spawn a Python Notebook or Console depending on what you choose. The R(qiime2)
will spawn an R Notebook or Console depending on what you choose.
Before working with JupyterHub and the Cluster it is highly recommended that you read all the previous articles on the , , , and , (official conda docs ). Running into the Cluster without knowing how the various features work will not be an enjoyable experience for you.
Log into through Ion
Connect to the FCPSonboard network. Go to http://www.neverssl.com
and you should see the FCPS Wi-Fi sign in page.
Accept the terms, and click Start.
Select Staff and Students, and enter your FCPS Student ID as the username and your FCPS password (i.e. your Blackboard password) as the password.
You should see something like this. Select "Show all operating systems" at the bottom.
Scroll down and select Other Operating Systems.
Download both the CA certificate and the user certificate (step 1 and 2, respectively).
Some desktop environments, GNOME below, allow you to configure this through built-in utilities. You can configure GNOME like this, with Identity being <FCPS ID>@byod.fcps.edu
, the User Certificate and Private Key being the User CA you downloaded, the CA certificate being the CA certificate you downloaded, and the Private key password your FCPS password:
Note: As of somewhere around NetworkManager
version 1.36.x (which ships by default in Ubuntu 22.04 LTS, Fedora 36, and probably some other major Linux distributions), NetworkManager
will fail to connect if Domain
is not properly set to xprsscnctvm.fcps.edu
and will give NO helpful information about why.
It can be used to run large machine learning projects that require a lot of power.
First, ssh into TJ's remote access server, using your TJ Username (e.g. 2021jdoe)
Afterwards, ssh into zoidberg.
To run machine learning projects with python, it is recommended to set up virtual environments for each project (so each project can use different versions of python packages if needed).
To achieve this, it is best to use Conda on the Zoidberg environment.
If you use wpa_supplicant
to connect to Wi-Fi, first use openssl pkcs12 -legacy -in certificate.p12 -out user.crt
to convert the user certificate into a different format compatible with wpa_supplicant
. Then add the below in /etc/wpa_supplicant
, using identity="guest@fcps.edu"
if you used the Guest option, or identity="<FCPS STUDENT ID>@byod.fcps.edu"
if you signed in with an FCPS ID, and substitute paths in for ca_cert
, client_cert
, and private_key
for the FCPS CA, the user certificate generated by openssl
above, and the user certificate you downloaded respectively. Reference for further information.
Zoidberg is a very powerful server with 4 NVIDIA Telsa K80 GPUs. It is part of the HPC Cluster in name and location only. It's treated as mostly separate, and can be used outside of . Zoidberg is by far the most powerful HPC node as well, potentially the most powerful machine in the entire CSL.
Conda is a package management tool that is pretty powerful. If you want to learn more about it, here are the docs for .
How and why you should use tmux to run your jobs.
In other words, tmux allows you to start a session to run your job and then exit the terminal window without killing your process.
This will create (and open) a new tmux session with the given name. In the session, you can then run your job the way you normally would over ssh.
Detaching the session allows you to close your ssh connection (and then close the terminal) without killing the process running in the tmux session.
The session can be detached by clicking control-b and then typing a d.
After sshing back into the remote server, to "re-open" or attach a tmux session, use the following command. This can be used to see if your process finished running and/or the output of the process.
After your process finishes running in the tmux session, you can then kill it off with the following work.
This will close off any process running in the session, so make sure that your job is done.
"tmux is a for . It allows multiple sessions to be accessed simultaneously in a single window. It is useful for running more than one program at the same time. It can also be used to detach from their controlling terminals, allowing sessions to remain active without being visible." - Wikipedia