<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://fluid.colorado.edu/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jeffhadley</id>
		<title>PHASTA Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://fluid.colorado.edu/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jeffhadley"/>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php/Special:Contributions/Jeffhadley"/>
		<updated>2026-04-29T22:10:35Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Local_Python_and_PyTorch_Install_-_Summit_Nodes&amp;diff=2155</id>
		<title>Local Python and PyTorch Install - Summit Nodes</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Local_Python_and_PyTorch_Install_-_Summit_Nodes&amp;diff=2155"/>
				<updated>2026-02-19T22:55:29Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Local install of Python versions newer than 3.7 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Local install of Python versions newer than 3.7=&lt;br /&gt;
Below is the process of obtaining and installing newer versions of Python than what is currently available through anaconda on the summit/dell nodes. This explanation assumes you already know how to log on to jumgate and Summit nodes, and have a good proficiency with terminal commands, bash, etc. &lt;br /&gt;
&lt;br /&gt;
First, obtain a .tgz tarball of the python version you want from [https://www.python.org/downloads/source/ python.org], and put it in your home directory '''~/''' on any of the PHASTA group machines. You can do this in a multitude of ways; an easy way is to download the tarball to your personal machine and scp'd it to your home directory on jumpgate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;scp -r local/machine/path/to/python.tgz username@jumpgate-phasta.colorado.edu:'~/.'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, log on to jumpgate and then start an interactive session on any of the summit nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;qsub -I -l select=1:ncpus=16:mpiprocs=1 -q workq&amp;lt;/code&amp;gt; (for example, this gets you a 30 min session)&lt;br /&gt;
&lt;br /&gt;
Once your interactive session is started, go to the directory where you put the python tarball and unzip it with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tar -xzf Python-3.your.version.tgz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We're now going to build and install a 'user local' version of python 3.your.version. First, make a new user specific 'local' dir if it doesn’t already exist (analogous to '''/usr/local/''' for the entire system, but this one lives in your home directory):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir -p ~/local&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Next, cd into the python dir that appeared when you unziped the tarball. We now need to configure the python build from within that directory:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;./configure --prefix=$HOME/local --enable-optimizations&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: --prefix needs to match where you created the user specific 'local' directory.&lt;br /&gt;
Once that is complete, build python with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make -j&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Next, run the following to install the python executables and libraries in local. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We now need to add '''~/local''' to '''$PATH''' if it's not already there. If you only want to do this for your current session, run &amp;lt;code&amp;gt;export PATH=&amp;quot;$HOME/local/:$PATH&amp;quot;&amp;lt;/code&amp;gt;. Otherwise, if you always want it to appear at the front of PATH, add that same command somewhere that makes sense in your .bashrc file. Adding it to .bashrc will automatically put '''~/local''' to the start of PATH whenever you log on. Note that compilers and bash commands will now look for executables and libraries located in '''~/local/''' before looking in the remaining directories of '''PATH'''. If you have other software installed in '''~/local''', those versions will always be accessed first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should now have a working python-3.your.version installation. Verify by running &amp;lt;code&amp;gt;which python3&amp;lt;/code&amp;gt; in your terminal. This should show the path to the new python installed in '''~/local/bin/'''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Next, you should create a virtual python environment for the project you are currently working on. Any pip installs you do while in this virtual environment will be saved. A venv permits you to easily 'activate' that same environment setup whenever you return to working on that project with a new session on the summit nodes (interactive or batch). Return to your home directory, then run &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;python3 -m venv NameOfYourEnv&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will create a folder named '''NameOfYourEnv''' which will store all the requirements for the virtual environment. You only need to create the venv once. To use a venv you've created, you must activate it by sourcing it with:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;source ~/NameOfYourEnv/bin/activate&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
You should now see a '''(NameOfYourEnv)''' tag at the start of your command line. If you ever need to deactivate this venv, simply run &amp;lt;code&amp;gt;deactivate&amp;lt;/code&amp;gt; at any time. &lt;br /&gt;
&lt;br /&gt;
If you're submitting a batch job with qsub that will use this python environement, simply add the above source command to your job submission script (before any python executable calls) to ensure your venv is activated. &lt;br /&gt;
 &lt;br /&gt;
While your venv is active, you should now be able to use &amp;lt;code&amp;gt;python&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;python3&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pip3&amp;lt;/code&amp;gt; to run python or pip. Verify this with &amp;lt;code&amp;gt;which python&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;which pip&amp;lt;/code&amp;gt;. These commands should now point to the '''~/local/bin/''' dir instead of the system wide installs from anaconda which are in '''/projects/tools/anaconda3/bin/'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==pip installing python packages==&lt;br /&gt;
While your venv of choice is active, you can pip install any of the python libraries you require, and the venv will save those installs for the next time you need to activate the venv. Before pip installing any packages, update pip to the latest version available with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install --upgrade pip&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installing PyTorch or any other python package available through pip is now as simple as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install torch&amp;lt;/code&amp;gt; (This is specifically for PyTorch)&lt;br /&gt;
&lt;br /&gt;
=Replicating a python environment=&lt;br /&gt;
You have a working version of python and all your favorite packages on machine 'A', and you want to duplicate that in your new venv for the Summit nodes. You can easily do this with the following steps, ASSUMING YOU HAVE ALREADY INSTALLED NEWER VERSION OF PYTHON ON SUMMIT NODES AS WAS DONE ABOVE:&lt;br /&gt;
&lt;br /&gt;
On machine A, export your current python environment set-up to a requirements.txt file &amp;lt;code&amp;gt;pip freeze &amp;gt; requirements.txt&amp;lt;/code&amp;gt;. This file now lives in whatever directory you were in when you ran the command.&lt;br /&gt;
&lt;br /&gt;
copy that file into your home directory on the summit nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;scp -r /machine/A/path/to/requirements.txt username@jumpgate-phasta.colorado.edu:'~/.'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, from within a session on one of the summit node, create and activate a clean venv as shown above, and then run the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install -r ~/requirements.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pip should take care of the rest. If any errors occur, read the error messages and modify the requirements.txt accordingly. Sometimes it's easiest to open the requirements.txt file and remove all of the version numbers (==x.x.x) from the packages listed, this permits pip to figure out the best dependency maps for the current active venv.&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Local_Python_and_PyTorch_Install_-_Summit_Nodes&amp;diff=2153</id>
		<title>Local Python and PyTorch Install - Summit Nodes</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Local_Python_and_PyTorch_Install_-_Summit_Nodes&amp;diff=2153"/>
				<updated>2026-02-19T22:49:52Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: Jeffhadley moved page Python and PyTorch Install Summit Nodes to Local Python and PyTorch Install - Summit Nodes: Better name for the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Local install of Python versions newer than 3.7=&lt;br /&gt;
Below is the process of obtaining and installing newer versions of Python than what is currently available through anaconda on the summit/dell nodes. This explanation assumes you already know how to log on to jumgate and Summit nodes, and have a good proficiency with terminal commands, bash, etc. &lt;br /&gt;
&lt;br /&gt;
First, obtain a .tgz tarball of the python version you want from [https://www.python.org/downloads/source/ python.org], and put it in your home directory '''~/''' on any of the PHASTA group machines. You can do this in a multitude of ways; an easy way is to download the tarball to your personal machine and scp'd it to your home directory on jumpgate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;scp -r local/machine/path/to/python.tgz username@jumpgate-phasta.colorado.edu:'~/.'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, log on to jumpgate and then start an interactive session on any of the summit nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;qsub -I -l select=1:ncpus=16:mpiprocs=1 -q workq&amp;lt;/code&amp;gt; (for example, this gets you a 30 min session)&lt;br /&gt;
&lt;br /&gt;
Once your interactive session is started, go to the directory where you put the python tarball and unzip it with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tar -xzf Python-3.your.version.tgz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We're now going to build and install a 'user local' version of python 3.your.version. First, make a new user specific 'local' dir if it doesn’t already exist (analogous to '''/usr/local/''' for the entire system, but this one lives in your home directory):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir -p ~/local&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Next, cd into the python dir that appeared when you unziped the tarball. We now need to configure the python build from within that directory:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;./configure --prefix=$HOME/local --enable-optimizations&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: --prefix needs to match where you created the user specific 'local' directory.&lt;br /&gt;
Once that is complete, build python with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make -j&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Next, run the following to install the python executables and libraries in local. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We now need to add '''~/local''' to '''$PATH''' if it's not already there. If you only want to do this for your current session, run &amp;lt;code&amp;gt;export PATH=&amp;quot;$HOME/local/:$PATH&amp;quot;&amp;lt;/code&amp;gt;. Otherwise, if you always want it to appear at the front of PATH, add that same command somewhere that makes sense in your .bashrc file. Adding it to .bashrc will automatically put '''~/local''' to the start of PATH whenever you log on. Note that compilers and bash commands will now look for executables and libraries located in '''~/local/''' before looking in the remaining directories of '''PATH'''. If you have other software installed in '''~/local''', those versions will always be accessed first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should now have a working python-3.your.version installation. Verify by running &amp;lt;code&amp;gt;which python3&amp;lt;/code&amp;gt; in your terminal. This should show the path to the new python installed in '''~/local/bin/'''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Next, you should create a virtual python environment for the project you are currently working on. Any pip installs you do while in this virtual environment will be saved. A venv permits you to easily 'activate' that same environment setup whenever you return to working on that project with a new session on the summit nodes (interactive or batch). Return to your home directory, then run &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;python3 -m venv NameOfYourEnv&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will create a folder named '''NameOfYourEnv''' which will store all the requirements for the virtual environment. You only need to create the venv once. To use a venv you've created, you must activate it by sourcing it with:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;source ~/NameOfYourEnv/bin/activate&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
You should now see a '''(NameOfYourEnv)''' tag at the start of your command line. If you ever need to deactivate this venv, simply run &amp;lt;code&amp;gt;deactivate&amp;lt;/code&amp;gt; at any time. &lt;br /&gt;
&lt;br /&gt;
While your venv is active, you should now be able to use &amp;lt;code&amp;gt;python&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;python3&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pip3&amp;lt;/code&amp;gt; to run python or pip. Verify this with &amp;lt;code&amp;gt;which python&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;which pip&amp;lt;/code&amp;gt;. These commands should now point to the '''~/local/bin/''' dir instead of the system wide installs from anaconda which are in '''/projects/tools/anaconda3/bin/'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==pip installing python packages==&lt;br /&gt;
While your venv of choice is active, you can pip install any of the python libraries you require, and the venv will save those installs for the next time you need to activate the venv. Before pip installing any packages, update pip to the latest version available with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install --upgrade pip&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installing PyTorch or any other python package available through pip is now as simple as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install torch&amp;lt;/code&amp;gt; (This is specifically for PyTorch)&lt;br /&gt;
&lt;br /&gt;
=Replicating a python environment=&lt;br /&gt;
You have a working version of python and all your favorite packages on machine 'A', and you want to duplicate that in your new venv for the Summit nodes. You can easily do this with the following steps, ASSUMING YOU HAVE ALREADY INSTALLED NEWER VERSION OF PYTHON ON SUMMIT NODES AS WAS DONE ABOVE:&lt;br /&gt;
&lt;br /&gt;
On machine A, export your current python environment set-up to a requirements.txt file &amp;lt;code&amp;gt;pip freeze &amp;gt; requirements.txt&amp;lt;/code&amp;gt;. This file now lives in whatever directory you were in when you ran the command.&lt;br /&gt;
&lt;br /&gt;
copy that file into your home directory on the summit nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;scp -r /machine/A/path/to/requirements.txt username@jumpgate-phasta.colorado.edu:'~/.'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, from within a session on one of the summit node, create and activate a clean venv as shown above, and then run the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install -r ~/requirements.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pip should take care of the rest. If any errors occur, read the error messages and modify the requirements.txt accordingly. Sometimes it's easiest to open the requirements.txt file and remove all of the version numbers (==x.x.x) from the packages listed, this permits pip to figure out the best dependency maps for the current active venv.&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Python_and_PyTorch_Install_Summit_Nodes&amp;diff=2154</id>
		<title>Python and PyTorch Install Summit Nodes</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Python_and_PyTorch_Install_Summit_Nodes&amp;diff=2154"/>
				<updated>2026-02-19T22:49:52Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: Jeffhadley moved page Python and PyTorch Install Summit Nodes to Local Python and PyTorch Install - Summit Nodes: Better name for the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Local Python and PyTorch Install - Summit Nodes]]&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Local_Python_and_PyTorch_Install_-_Summit_Nodes&amp;diff=2152</id>
		<title>Local Python and PyTorch Install - Summit Nodes</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Local_Python_and_PyTorch_Install_-_Summit_Nodes&amp;diff=2152"/>
				<updated>2026-02-19T22:47:52Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Local install of Python versions newer than 3.7 available from base summit environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Local install of Python versions newer than 3.7=&lt;br /&gt;
Below is the process of obtaining and installing newer versions of Python than what is currently available through anaconda on the summit/dell nodes. This explanation assumes you already know how to log on to jumgate and Summit nodes, and have a good proficiency with terminal commands, bash, etc. &lt;br /&gt;
&lt;br /&gt;
First, obtain a .tgz tarball of the python version you want from [https://www.python.org/downloads/source/ python.org], and put it in your home directory '''~/''' on any of the PHASTA group machines. You can do this in a multitude of ways; an easy way is to download the tarball to your personal machine and scp'd it to your home directory on jumpgate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;scp -r local/machine/path/to/python.tgz username@jumpgate-phasta.colorado.edu:'~/.'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, log on to jumpgate and then start an interactive session on any of the summit nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;qsub -I -l select=1:ncpus=16:mpiprocs=1 -q workq&amp;lt;/code&amp;gt; (for example, this gets you a 30 min session)&lt;br /&gt;
&lt;br /&gt;
Once your interactive session is started, go to the directory where you put the python tarball and unzip it with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tar -xzf Python-3.your.version.tgz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We're now going to build and install a 'user local' version of python 3.your.version. First, make a new user specific 'local' dir if it doesn’t already exist (analogous to '''/usr/local/''' for the entire system, but this one lives in your home directory):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir -p ~/local&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Next, cd into the python dir that appeared when you unziped the tarball. We now need to configure the python build from within that directory:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;./configure --prefix=$HOME/local --enable-optimizations&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: --prefix needs to match where you created the user specific 'local' directory.&lt;br /&gt;
Once that is complete, build python with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make -j&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Next, run the following to install the python executables and libraries in local. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We now need to add '''~/local''' to '''$PATH''' if it's not already there. If you only want to do this for your current session, run &amp;lt;code&amp;gt;export PATH=&amp;quot;$HOME/local/:$PATH&amp;quot;&amp;lt;/code&amp;gt;. Otherwise, if you always want it to appear at the front of PATH, add that same command somewhere that makes sense in your .bashrc file. Adding it to .bashrc will automatically put '''~/local''' to the start of PATH whenever you log on. Note that compilers and bash commands will now look for executables and libraries located in '''~/local/''' before looking in the remaining directories of '''PATH'''. If you have other software installed in '''~/local''', those versions will always be accessed first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should now have a working python-3.your.version installation. Verify by running &amp;lt;code&amp;gt;which python3&amp;lt;/code&amp;gt; in your terminal. This should show the path to the new python installed in '''~/local/bin/'''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Next, you should create a virtual python environment for the project you are currently working on. Any pip installs you do while in this virtual environment will be saved. A venv permits you to easily 'activate' that same environment setup whenever you return to working on that project with a new session on the summit nodes (interactive or batch). Return to your home directory, then run &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;python3 -m venv NameOfYourEnv&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will create a folder named '''NameOfYourEnv''' which will store all the requirements for the virtual environment. You only need to create the venv once. To use a venv you've created, you must activate it by sourcing it with:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;source ~/NameOfYourEnv/bin/activate&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
You should now see a '''(NameOfYourEnv)''' tag at the start of your command line. If you ever need to deactivate this venv, simply run &amp;lt;code&amp;gt;deactivate&amp;lt;/code&amp;gt; at any time. &lt;br /&gt;
&lt;br /&gt;
While your venv is active, you should now be able to use &amp;lt;code&amp;gt;python&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;python3&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pip3&amp;lt;/code&amp;gt; to run python or pip. Verify this with &amp;lt;code&amp;gt;which python&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;which pip&amp;lt;/code&amp;gt;. These commands should now point to the '''~/local/bin/''' dir instead of the system wide installs from anaconda which are in '''/projects/tools/anaconda3/bin/'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==pip installing python packages==&lt;br /&gt;
While your venv of choice is active, you can pip install any of the python libraries you require, and the venv will save those installs for the next time you need to activate the venv. Before pip installing any packages, update pip to the latest version available with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install --upgrade pip&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installing PyTorch or any other python package available through pip is now as simple as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install torch&amp;lt;/code&amp;gt; (This is specifically for PyTorch)&lt;br /&gt;
&lt;br /&gt;
=Replicating a python environment=&lt;br /&gt;
You have a working version of python and all your favorite packages on machine 'A', and you want to duplicate that in your new venv for the Summit nodes. You can easily do this with the following steps, ASSUMING YOU HAVE ALREADY INSTALLED NEWER VERSION OF PYTHON ON SUMMIT NODES AS WAS DONE ABOVE:&lt;br /&gt;
&lt;br /&gt;
On machine A, export your current python environment set-up to a requirements.txt file &amp;lt;code&amp;gt;pip freeze &amp;gt; requirements.txt&amp;lt;/code&amp;gt;. This file now lives in whatever directory you were in when you ran the command.&lt;br /&gt;
&lt;br /&gt;
copy that file into your home directory on the summit nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;scp -r /machine/A/path/to/requirements.txt username@jumpgate-phasta.colorado.edu:'~/.'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, from within a session on one of the summit node, create and activate a clean venv as shown above, and then run the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install -r ~/requirements.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pip should take care of the rest. If any errors occur, read the error messages and modify the requirements.txt accordingly. Sometimes it's easiest to open the requirements.txt file and remove all of the version numbers (==x.x.x) from the packages listed, this permits pip to figure out the best dependency maps for the current active venv.&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Local_Python_and_PyTorch_Install_-_Summit_Nodes&amp;diff=2151</id>
		<title>Local Python and PyTorch Install - Summit Nodes</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Local_Python_and_PyTorch_Install_-_Summit_Nodes&amp;diff=2151"/>
				<updated>2026-02-19T22:43:25Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Local install of Python versions newer than 3.7 available from base summit environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Local install of Python versions newer than 3.7 available from base summit environment=&lt;br /&gt;
Below is the process of obtaining and installing newer versions of Python than what is currently available through anaconda on the summit/dell nodes. This explanation assumes you already know how to log on to jumgate and Summit nodes, and have a good proficiency with terminal commands, bash, etc. &lt;br /&gt;
&lt;br /&gt;
First, obtain a .tgz tarball of the python version you want from [https://www.python.org/downloads/source/ python.org], and put it in your home directory '''~/''' on any of the PHASTA group machines. You can do this in a multitude of ways; an easy way is to download the tarball to your personal machine and scp'd it to your home directory on jumpgate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;scp -r local/machine/path/to/python.tgz username@jumpgate-phasta.colorado.edu:'~/.'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, log on to jumpgate and then start an interactive session on any of the summit nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;qsub -I -l select=1:ncpus=16:mpiprocs=1 -q workq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once your interactive session is started, go to the directory where you scp'd the python tarball and unzip it with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tar -xzf Python-3.your.version.tgz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We're now going to build and install a 'user local' version of python 3.your.version. First, make a new user specific 'local' dir if it doesn’t already exist (analogous to '''/usr/local/''' for the entire system, but this one lives in your home directory):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir -p ~/local&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Next, cd into the python dir that appeared when you unziped the tarball. We now need to configure the python build from within that directory:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;./configure --prefix=$HOME/local --enable-optimizations&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: --prefix needs to match where you created the user specific 'local' directory.&lt;br /&gt;
Once that is complete, build python with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make -j&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Next, run the following to install the python executables and libraries in local. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We now need to add '''~/local''' to '''$PATH''' if it's not already there. If you only want to do this for your current session, run &amp;lt;code&amp;gt;export PATH=&amp;quot;$HOME/local/:$PATH&amp;quot;&amp;lt;/code&amp;gt;. Otherwise, if you always want it to appear at the front of PATH, add that same command somewhere that makes sense in your .bashrc file. Adding it to .bashrc will automatically put '''~/local''' to the start of PATH whenever you log on. Note that compilers and bash commands will now look for executables and libraries located in '''~/local/''' before looking in the remaining directories of '''PATH'''. If you have other software installed in '''~/local''', those versions will always be accessed first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should now have a working python-3.your.version installation. Verify by running &amp;lt;code&amp;gt;which python3&amp;lt;/code&amp;gt; in your terminal. This should show the path to the new python installed in '''~/local/bin/'''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Next, you should create a virtual python environment for the project you are currently working on. Any pip installs you do while in this virtual environment will be saved. A venv permits you to easily 'activate' that same environment setup whenever you return to working on that project with a new session on the summit nodes (interactive or batch). Return to your home directory, then run &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;python3 -m venv NameOfYourEnv&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will create a folder named '''NameOfYourEnv''' which will store all the requirements for the virtual environment. You only need to create the venv once. To use a venv you've created, you must activate it by sourcing it with:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;source ~/NameOfYourEnv/bin/activate&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
You should now see a '''(NameOfYourEnv)''' tag at the start of your command line. If you ever need to deactivate this venv, simply run &amp;lt;code&amp;gt;deactivate&amp;lt;/code&amp;gt; at any time. &lt;br /&gt;
&lt;br /&gt;
While your venv is active, you should now be able to use &amp;lt;code&amp;gt;python&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;python3&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pip3&amp;lt;/code&amp;gt; to run python or pip. Verify this with &amp;lt;code&amp;gt;which python&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;which pip&amp;lt;/code&amp;gt;. These commands should now point to the '''~/local/bin/''' dir instead of the system wide installs from anaconda which are in '''/projects/tools/anaconda3/bin/'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==pip installing python packages==&lt;br /&gt;
While your venv of choice is active, you can pip install any of the python libraries you require, and the venv will save those installs for the next time you need to activate the venv. Before pip installing any packages, update pip to the latest version available with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install --upgrade pip&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installing PyTorch or any other python package available through pip is now as simple as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install torch&amp;lt;/code&amp;gt; (This is specifically for PyTorch)&lt;br /&gt;
&lt;br /&gt;
=Replicating a python environment=&lt;br /&gt;
You have a working version of python and all your favorite packages on machine 'A', and you want to duplicate that in your new venv for the Summit nodes. You can easily do this with the following steps, ASSUMING YOU HAVE ALREADY INSTALLED NEWER VERSION OF PYTHON ON SUMMIT NODES AS WAS DONE ABOVE:&lt;br /&gt;
&lt;br /&gt;
On machine A, export your current python environment set-up to a requirements.txt file &amp;lt;code&amp;gt;pip freeze &amp;gt; requirements.txt&amp;lt;/code&amp;gt;. This file now lives in whatever directory you were in when you ran the command.&lt;br /&gt;
&lt;br /&gt;
copy that file into your home directory on the summit nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;scp -r /machine/A/path/to/requirements.txt username@jumpgate-phasta.colorado.edu:'~/.'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, from within a session on one of the summit node, create and activate a clean venv as shown above, and then run the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install -r ~/requirements.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pip should take care of the rest. If any errors occur, read the error messages and modify the requirements.txt accordingly. Sometimes it's easiest to open the requirements.txt file and remove all of the version numbers (==x.x.x) from the packages listed, this permits pip to figure out the best dependency maps for the current active venv.&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Local_Python_and_PyTorch_Install_-_Summit_Nodes&amp;diff=2150</id>
		<title>Local Python and PyTorch Install - Summit Nodes</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Local_Python_and_PyTorch_Install_-_Summit_Nodes&amp;diff=2150"/>
				<updated>2026-02-19T22:41:36Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Local install of Python versions newer than 3.7 available from base summit environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Local install of Python versions newer than 3.7 available from base summit environment=&lt;br /&gt;
Below is the process of obtaining and installing newer versions of Python than what is currently available through anaconda on the summit/dell nodes. This explanation assumes you already know how to log on to jumgate and Summit nodes, and have a good proficiency with terminal commands, bash, etc. &lt;br /&gt;
&lt;br /&gt;
First, obtain a .tgz tarball of the python version you want from [https://www.python.org/downloads/source/ python.org], and put it in your home directory &amp;lt;code&amp;gt;~/&amp;lt;/code&amp;gt; on any of the PHASTA group machines. You can do this in a multitude of ways; an easy way is to download the tarball to your personal machine and scp'd it to your home directory on jumpgate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;scp -r local/machine/path/to/python.tgz username@jumpgate-phasta.colorado.edu:'~/.'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, log on to jumpgate and then start an interactive session on any of the summit nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;qsub -I -l select=1:ncpus=16:mpiprocs=1 -q workq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once your interactive session is started, go to the directory where you scp'd the python tarball and unzip it with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tar -xzf Python-3.your.version.tgz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We're now going to build and install a 'user local' version of python 3.your.version. First, make a new user specific 'local' dir if it doesn’t already exist (analogous to /local/ for the entire system, but this one lives in your home directory):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir -p ~/local&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Next, cd into the python dir that appeared when you unziped the tarball. We now need to configure the python build from within that directory:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;./configure --prefix=$HOME/local --enable-optimizations&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: --prefix needs to match where you created the user specific 'local' directory.&lt;br /&gt;
Once that is complete, build python with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make -j&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Next, run the following to install the python executables and libraries in local. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We now need to add '''~/local''' to '''$PATH''' if it's not already there. If you only want to do this for your current session, run &amp;lt;code&amp;gt;export PATH=&amp;quot;$HOME/local/:$PATH&amp;quot;&amp;lt;/code&amp;gt;. Otherwise, if you always want it to appear at the front of PATH, add that same command somewhere that makes sense in your .bashrc file. Adding it to .bashrc will automatically put '''~/local''' to the start of PATH whenever you log on. Note that compilers and bash commands will now look for executables and libraries located in '''~/local/''' before looking in the remaining directories of '''PATH'''. If you have other software installed in '''~/local''', those versions will always be accessed first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should now have a working python-3.your.version installation. Verify by running &amp;lt;code&amp;gt;which python3&amp;lt;/code&amp;gt; in your terminal. This should show the path to the new python installed in '''~/local/bin/'''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Next, you should create a virtual python environment for the project you are currently working on. Any pip installs you do while in this virtual environment will be saved. A venv permits you to easily 'activate' that same environment setup whenever you return to working on that project with a new session on the summit nodes (interactive or batch). Return to your home directory, then run &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;python3 -m venv NameOfYourEnv&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will create a folder named '''NameOfYourEnv''' which will store all the requirements for the virtual environment. You only need to create the venv once. To use a venv you've created, you must activate it by sourcing it with:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;source ~/NameOfYourEnv/bin/activate&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
You should now see a '''(NameOfYourEnv)''' tag at the start of your command line. If you ever need to deactivate this venv, simply run &amp;lt;code&amp;gt;deactivate&amp;lt;/code&amp;gt; at any time. &lt;br /&gt;
&lt;br /&gt;
While your venv is active, you should now be able to use &amp;lt;code&amp;gt;python&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;python3&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pip3&amp;lt;/code&amp;gt; to run python or pip. Verify this with &amp;lt;code&amp;gt;which python&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;which pip&amp;lt;/code&amp;gt;. These commands should now point to the '''~/local/bin/''' dir instead of the system wide installs from anaconda which are in '''/projects/tools/anaconda3/bin/'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==pip installing python packages==&lt;br /&gt;
While your venv of choice is active, you can pip install any of the python libraries you require, and the venv will save those installs for the next time you need to activate the venv. Before pip installing any packages, update pip to the latest version available with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install --upgrade pip&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installing PyTorch or any other python package available through pip is now as simple as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install torch&amp;lt;/code&amp;gt; (This is specifically for PyTorch)&lt;br /&gt;
&lt;br /&gt;
=Replicating a python environment=&lt;br /&gt;
You have a working version of python and all your favorite packages on machine 'A', and you want to duplicate that in your new venv for the Summit nodes. You can easily do this with the following steps, ASSUMING YOU HAVE ALREADY INSTALLED NEWER VERSION OF PYTHON ON SUMMIT NODES AS WAS DONE ABOVE:&lt;br /&gt;
&lt;br /&gt;
On machine A, export your current python environment set-up to a requirements.txt file &amp;lt;code&amp;gt;pip freeze &amp;gt; requirements.txt&amp;lt;/code&amp;gt;. This file now lives in whatever directory you were in when you ran the command.&lt;br /&gt;
&lt;br /&gt;
copy that file into your home directory on the summit nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;scp -r /machine/A/path/to/requirements.txt username@jumpgate-phasta.colorado.edu:'~/.'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, from within a session on one of the summit node, create and activate a clean venv as shown above, and then run the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install -r ~/requirements.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pip should take care of the rest. If any errors occur, read the error messages and modify the requirements.txt accordingly. Sometimes it's easiest to open the requirements.txt file and remove all of the version numbers (==x.x.x) from the packages listed, this permits pip to figure out the best dependency maps for the current active venv.&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Local_Python_and_PyTorch_Install_-_Summit_Nodes&amp;diff=2149</id>
		<title>Local Python and PyTorch Install - Summit Nodes</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Local_Python_and_PyTorch_Install_-_Summit_Nodes&amp;diff=2149"/>
				<updated>2026-02-19T22:33:30Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Local install of Python versions newer than 3.7 available from base summit environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Local install of Python versions newer than 3.7 available from base summit environment=&lt;br /&gt;
Below is the process of obtaining and installing newer versions of Python than what is currently available through anaconda on the summit/dell nodes. This explanation assumes you already know how to log on to jumgate and Summit nodes, and have a good proficiency with terminal commands, bash, etc. &lt;br /&gt;
&lt;br /&gt;
First, obtain a .tgz tarball of the python version you want from [https://www.python.org/downloads/source/ python.org], and put it in your home directory &amp;lt;code&amp;gt;~/&amp;lt;/code&amp;gt; on any of the PHASTA group machines. You can do this in a multitude of ways; an easy way is to download the tarball to your personal machine and scp'd it to your home directory on jumpgate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;scp -r local/machine/path/to/python.tgz username@jumpgate-phasta.colorado.edu:'~/.'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, log on to jumpgate and then start an interactive session on any of the summit nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;qsub -I -l select=1:ncpus=16:mpiprocs=1 -q workq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once your interactive session is started, go to the directory where you scp'd the python tarball and unzip it with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tar -xzf Python-3.your.version.tgz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We're now going to build and install a 'user local' version of python 3.your.version. First, make a new user specific 'local' dir if it doesn’t already exist (analogous to /local/ for the entire system, but this one lives in your home directory):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir -p ~/local&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Next, cd into the python dir that appeared when you unziped the tarball. We now need to configure the python build from within that directory:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;./configure --prefix=$HOME/local --enable-optimizations&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: --prefix needs to match where you created the user specific 'local' directory.&lt;br /&gt;
Once that is complete, build python with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make -j&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Next, run the following to install the python executables and libraries in local. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We now need to add ~/local to $PATH if it's not already there. If you only want to do this for your current session, run &amp;lt;code&amp;gt;export PATH=~/local/:$PATH&amp;lt;/code&amp;gt;. Otherwise, if you always want it to appear at the front of PATH, add that same command somewhere that makes sense in your .bashrc file. Adding it to .bashrc will automatically put ~/local to the start of PATH whenever you log on. Note that compilers and bash commands will now look for executables and libraries located in ~/local/ before looking in the remaining directories of PATH. If you have other software installed in '~/local', those versions will always be accessed first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should now have a working python-3.your.version installation. Verify by running &amp;lt;code&amp;gt;which python3&amp;lt;/code&amp;gt; in your terminal. This should show the path to the new python installed in &amp;lt;code&amp;gt;~/local/bin/&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Next, you should create a virtual python environment for the project you are currently working on. Any pip installs you do while in this virtual environment will be saved. A venv permits you to easily 'activate' that same environment setup whenever you return to working on that project with a new session on the summit nodes (interactive or batch). Return to your home directory, then run &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;python3 -m venv NameOfYourEnv&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will create a folder named 'NameOfYourEnv' which will store all the requirements for the virtual environment. You only need to create the venv once. To use a venv you've created, you must activate it by sourcing it with:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;source ~/NameOfYourEnv/bin/activate&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
You should now see a (NameOfYourEnv) tag at the start of your command line. If you ever need to deactivate this venv, simply run &amp;lt;code&amp;gt;deactivate&amp;lt;/code&amp;gt; at any time. &lt;br /&gt;
&lt;br /&gt;
While your venv is active, you should now be able to use &amp;lt;code&amp;gt;python&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;python3&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pip3&amp;lt;/code&amp;gt; to run python or pip. Verify this with &amp;lt;code&amp;gt;which python&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;which pip&amp;lt;/code&amp;gt;. These commands should now point to the &amp;lt;code&amp;gt;~/local/bin/&amp;lt;/code&amp;gt; dir instead of the system wide installs from anaconda which are in &amp;lt;code&amp;gt;/projects/tools/anaconda3/bin/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==pip installing python packages==&lt;br /&gt;
While your venv of choice is active, you can pip install any of the python libraries you require, and the venv will save those installs for the next time you need to activate the venv. Before pip installing any packages, update pip to the latest version available with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install --upgrade pip&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installing PyTorch or any other python package available through pip is now as simple as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install torch&amp;lt;/code&amp;gt; (This is specifically for PyTorch)&lt;br /&gt;
&lt;br /&gt;
=Replicating a python environment=&lt;br /&gt;
You have a working version of python and all your favorite packages on machine 'A', and you want to duplicate that in your new venv for the Summit nodes. You can easily do this with the following steps, ASSUMING YOU HAVE ALREADY INSTALLED NEWER VERSION OF PYTHON ON SUMMIT NODES AS WAS DONE ABOVE:&lt;br /&gt;
&lt;br /&gt;
On machine A, export your current python environment set-up to a requirements.txt file &amp;lt;code&amp;gt;pip freeze &amp;gt; requirements.txt&amp;lt;/code&amp;gt;. This file now lives in whatever directory you were in when you ran the command.&lt;br /&gt;
&lt;br /&gt;
copy that file into your home directory on the summit nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;scp -r /machine/A/path/to/requirements.txt username@jumpgate-phasta.colorado.edu:'~/.'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, from within a session on one of the summit node, create and activate a clean venv as shown above, and then run the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install -r ~/requirements.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pip should take care of the rest. If any errors occur, read the error messages and modify the requirements.txt accordingly. Sometimes it's easiest to open the requirements.txt file and remove all of the version numbers (==x.x.x) from the packages listed, this permits pip to figure out the best dependency maps for the current active venv.&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Local_Python_and_PyTorch_Install_-_Summit_Nodes&amp;diff=2148</id>
		<title>Local Python and PyTorch Install - Summit Nodes</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Local_Python_and_PyTorch_Install_-_Summit_Nodes&amp;diff=2148"/>
				<updated>2026-02-19T22:31:42Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Local install of Python versions newer than 3.7 available from base summit environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Local install of Python versions newer than 3.7 available from base summit environment=&lt;br /&gt;
Below is the process of obtaining and installing newer versions of Python than what is currently available through anaconda on the summit/dell nodes. This explanation assumes you already know how to log on to jumgate and summit nodes, and have a good proficiency with terminal commands, bash, etc. &lt;br /&gt;
&lt;br /&gt;
First, obtain a .tgz tarball of the python version you want from python.org[https://www.python.org/downloads/source/ python.org], and put it in your home directory &amp;lt;code&amp;gt;~/&amp;lt;/code&amp;gt; on any of the PHASTA group machines. You can do this in a multitude of ways; an easy way is to download the tarball your personal machine and scp'd it to your home directory on jumpgate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;scp -r local/machine/path/to/python.tgz username@jumpgate-phasta.colorado.edu:'~/.'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, log on to jumpgate and then start an interactive session on any of the summit nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;qsub -I -l select=1:ncpus=16:mpiprocs=1 -q workq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once your interactive session is started, go to the directory where you scp'd the python tarball and unzip it with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tar -xzf Python-3.your.version.tgz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We're now going to build and install a 'user local' version of python 3.your.version. First, make a new user specific 'local' dir if it doesn’t already exist (analogous to /local/ for the entire system, but this one lives in your home directory):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir -p ~/local&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Next, cd into the python dir that appeared when you unziped the tarball. We now need to configure the python build from within that directory:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;./configure --prefix=$HOME/local --enable-optimizations&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: --prefix needs to match where you created the user specific 'local' directory.&lt;br /&gt;
Once that is complete, build python with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make -j&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Next, run the following to install the python executables and libraries in local. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We now need to add ~/local to $PATH if it's not already there. If you only want to do this for your current session, run &amp;lt;code&amp;gt;export PATH=~/local/:$PATH&amp;lt;/code&amp;gt;. Otherwise, if you always want it to appear at the front of PATH, add that same command somewhere that makes sense in your .bashrc file. Adding it to .bashrc will automatically put ~/local to the start of PATH whenever you log on. Note that compilers and bash commands will now look for executables and libraries located in ~/local/ before looking in the remaining directories of PATH. If you have other software installed in '~/local', those versions will always be accessed first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should now have a working python-3.your.version installation. Verify by running &amp;lt;code&amp;gt;which python3&amp;lt;/code&amp;gt; in your terminal. This should show the path to the new python installed in &amp;lt;code&amp;gt;~/local/bin/&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Next, you should create a virtual python environment for the project you are currently working on. Any pip installs you do while in this virtual environment will be saved. A venv permits you to easily 'activate' that same environment setup whenever you return to working on that project with a new session on the summit nodes (interactive or batch). Return to your home directory, then run &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;python3 -m venv NameOfYourEnv&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will create a folder named 'NameOfYourEnv' which will store all the requirements for the virtual environment. You only need to create the venv once. To use a venv you've created, you must activate it by sourcing it with:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;source ~/NameOfYourEnv/bin/activate&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
You should now see a (NameOfYourEnv) tag at the start of your command line. If you ever need to deactivate this venv, simply run &amp;lt;code&amp;gt;deactivate&amp;lt;/code&amp;gt; at any time. &lt;br /&gt;
&lt;br /&gt;
While your venv is active, you should now be able to use &amp;lt;code&amp;gt;python&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;python3&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pip3&amp;lt;/code&amp;gt; to run python or pip. Verify this with &amp;lt;code&amp;gt;which python&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;which pip&amp;lt;/code&amp;gt;. These commands should now point to the &amp;lt;code&amp;gt;~/local/bin/&amp;lt;/code&amp;gt; dir instead of the system wide installs from anaconda which are in &amp;lt;code&amp;gt;/projects/tools/anaconda3/bin/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==pip installing python packages==&lt;br /&gt;
While your venv of choice is active, you can pip install any of the python libraries you require, and the venv will save those installs for the next time you need to activate the venv. Before pip installing any packages, update pip to the latest version available with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install --upgrade pip&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installing PyTorch or any other python package available through pip is now as simple as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install torch&amp;lt;/code&amp;gt; (This is specifically for PyTorch)&lt;br /&gt;
&lt;br /&gt;
=Replicating a python environment=&lt;br /&gt;
You have a working version of python and all your favorite packages on machine 'A', and you want to duplicate that in your new venv for the Summit nodes. You can easily do this with the following steps, ASSUMING YOU HAVE ALREADY INSTALLED NEWER VERSION OF PYTHON ON SUMMIT NODES AS WAS DONE ABOVE:&lt;br /&gt;
&lt;br /&gt;
On machine A, export your current python environment set-up to a requirements.txt file &amp;lt;code&amp;gt;pip freeze &amp;gt; requirements.txt&amp;lt;/code&amp;gt;. This file now lives in whatever directory you were in when you ran the command.&lt;br /&gt;
&lt;br /&gt;
copy that file into your home directory on the summit nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;scp -r /machine/A/path/to/requirements.txt username@jumpgate-phasta.colorado.edu:'~/.'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, from within a session on one of the summit node, create and activate a clean venv as shown above, and then run the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install -r ~/requirements.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pip should take care of the rest. If any errors occur, read the error messages and modify the requirements.txt accordingly. Sometimes it's easiest to open the requirements.txt file and remove all of the version numbers (==x.x.x) from the packages listed, this permits pip to figure out the best dependency maps for the current active venv.&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Local_Python_and_PyTorch_Install_-_Summit_Nodes&amp;diff=2147</id>
		<title>Local Python and PyTorch Install - Summit Nodes</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Local_Python_and_PyTorch_Install_-_Summit_Nodes&amp;diff=2147"/>
				<updated>2026-02-19T22:28:50Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Local install of Python versions newer than 3.7 available from base summit environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Local install of Python versions newer than 3.7 available from base summit environment=&lt;br /&gt;
Below is the process of obtaining and installing newer versions of Python than what is currently available through anaconda on the summit/dell nodes. This explanation assumes you already know how to log on to jumgate and summit nodes, and have a good proficiency with terminal commands, bash, etc. &lt;br /&gt;
&lt;br /&gt;
First, obtain a .tgz tarball of the python version you want from python.org, and put it in your home directory &amp;lt;code&amp;gt;~/&amp;lt;/code&amp;gt; on any of the PHASTA group machines. You can do this in a multitude of ways; an easy way is to download the tarball your personal machine and scp'd it to your home directory on jumpgate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;scp -r local/machine/path/to/python.tgz username@jumpgate-phasta.colorado.edu:'~/.'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, log on to jumpgate and then start an interactive session on any of the summit nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;qsub -I -l select=1:ncpus=16:mpiprocs=1 -q workq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once your interactive session is started, go to the directory where you scp'd the python tarball and unzip it with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tar -xzf Python-3.your.version.tgz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We're now going to build and install a 'user local' version of python 3.your.version. First, make a new user specific 'local' dir if it doesn’t already exist (analogous to /local/ for the entire system, but this one lives in your home directory):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir -p ~/local&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Next, cd into the python dir that appeared when you unziped the tarball. We now need to configure the python build from within that directory:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;./configure --prefix=$HOME/local --enable-optimizations&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: --prefix needs to match where you created the user specific 'local' directory.&lt;br /&gt;
Once that is complete, build python with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make -j&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Next, run the following to install the python executables and libraries in local. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We now need to add ~/local to $PATH if it's not already there. If you only want to do this for your current session, run &amp;lt;code&amp;gt;export PATH=~/local/:$PATH&amp;lt;/code&amp;gt;. Otherwise, if you always want it to appear at the front of PATH, add that same command somewhere that makes sense in your .bashrc file. Adding it to .bashrc will automatically put ~/local to the start of PATH whenever you log on. Note that compilers and bash commands will now look for executables and libraries located in ~/local/ before looking in the remaining directories of PATH. If you have other software installed in '~/local', those versions will always be accessed first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should now have a working python-3.your.version installation. Verify by running &amp;lt;code&amp;gt;which python3&amp;lt;/code&amp;gt; in your terminal. This should show the path to the new python installed in &amp;lt;code&amp;gt;~/local/bin/&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Next, you should create a virtual python environment for the project you are currently working on. Any pip installs you do while in this virtual environment will be saved. A venv permits you to easily 'activate' that same environment setup whenever you return to working on that project with a new session on the summit nodes (interactive or batch). Return to your home directory, then run &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;python3 -m venv NameOfYourEnv&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will create a folder named 'NameOfYourEnv' which will store all the requirements for the virtual environment. You only need to create the venv once. To use a venv you've created, you must activate it by sourcing it with:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;source ~/NameOfYourEnv/bin/activate&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
You should now see a (NameOfYourEnv) tag at the start of your command line. If you ever need to deactivate this venv, simply run &amp;lt;code&amp;gt;deactivate&amp;lt;/code&amp;gt; at any time. &lt;br /&gt;
&lt;br /&gt;
While your venv is active, you should now be able to use &amp;lt;code&amp;gt;python&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;python3&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pip3&amp;lt;/code&amp;gt; to run python or pip. Verify this with &amp;lt;code&amp;gt;which python&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;which pip&amp;lt;/code&amp;gt;. These commands should now point to the &amp;lt;code&amp;gt;~/local/bin/&amp;lt;/code&amp;gt; dir instead of the system wide installs from anaconda which are in &amp;lt;code&amp;gt;/projects/tools/anaconda3/bin/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==pip installing python packages==&lt;br /&gt;
While your venv of choice is active, you can pip install any of the python libraries you require, and the venv will save those installs for the next time you need to activate the venv. Before pip installing any packages, update pip to the latest version available with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install --upgrade pip&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installing PyTorch or any other python package available through pip is now as simple as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install torch&amp;lt;/code&amp;gt; (This is specifically for PyTorch)&lt;br /&gt;
&lt;br /&gt;
=Replicating a python environment=&lt;br /&gt;
You have a working version of python and all your favorite packages on machine 'A', and you want to duplicate that in your new venv for the Summit nodes. You can easily do this with the following steps, ASSUMING YOU HAVE ALREADY INSTALLED NEWER VERSION OF PYTHON ON SUMMIT NODES AS WAS DONE ABOVE:&lt;br /&gt;
&lt;br /&gt;
On machine A, export your current python environment set-up to a requirements.txt file &amp;lt;code&amp;gt;pip freeze &amp;gt; requirements.txt&amp;lt;/code&amp;gt;. This file now lives in whatever directory you were in when you ran the command.&lt;br /&gt;
&lt;br /&gt;
copy that file into your home directory on the summit nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;scp -r /machine/A/path/to/requirements.txt username@jumpgate-phasta.colorado.edu:'~/.'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, from within a session on one of the summit node, create and activate a clean venv as shown above, and then run the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install -r ~/requirements.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pip should take care of the rest. If any errors occur, read the error messages and modify the requirements.txt accordingly. Sometimes it's easiest to open the requirements.txt file and remove all of the version numbers (==x.x.x) from the packages listed, this permits pip to figure out the best dependency maps for the current active venv.&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Local_Python_and_PyTorch_Install_-_Summit_Nodes&amp;diff=2146</id>
		<title>Local Python and PyTorch Install - Summit Nodes</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Local_Python_and_PyTorch_Install_-_Summit_Nodes&amp;diff=2146"/>
				<updated>2026-02-19T22:27:10Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* pip installing python packages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Local install of Python versions newer than 3.7 available from base summit environment=&lt;br /&gt;
Below is the process of obtaining and installing newer versions of Python than what is currently available through anaconda on the summit/dell nodes. This explanation assumes you already know how to log on to jumgate and summit nodes, and have a good proficiency with terminal commands, bash, etc. &lt;br /&gt;
&lt;br /&gt;
First, obtain a .tgz tarball of the python version you want from python.org, and put it in your home directory &amp;lt;code&amp;gt;~/&amp;lt;/code&amp;gt; on any of the PHASTA group machines. You can do this in a multitude of ways; an easy way is to download the tarball your personal machine and scp'd it to your home directory on jumpgate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;scp -r local/machine/path/to/python.tgz username@jumpgate-phasta.colorado.edu:'~/.'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, log on to jumpgate and then start an interactive session on any of the summit nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;qsub -I -l select=1:ncpus=16:mpiprocs=1 -q workq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once your interactive session is started, go to the directory where you scp'd the python tarball and unzip it with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tar -xzf Python-3.your.version.tgz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We're now going to build and install a 'user local' version of python 3.your.version. First, make a new user specific 'local' dir if it doesn’t already exist (analogous to /local/ for the entire system, but this one lives in your home directory):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir -p ~/local&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Next, cd into the python dir that appeared when you unziped the tarball. We now need to configure the python build from within that directory:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;./configure --prefix=$HOME/local --enable-optimizations&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: --prefix needs to match where you created the user specific 'local' directory.&lt;br /&gt;
Once that is complete, build python with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make -j&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Next, run the following to install the python executables and libraries in local. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We now need to add ~/local to $PATH if it's not already there. If you only want to do this for your current session, run &amp;lt;code&amp;gt;export PATH=~/local/:$PATH&amp;lt;/code&amp;gt;. Otherwise, if you always want it to appear at the front of PATH, add that same command somewhere that makes sense in your .bashrc file. Adding it to .bashrc will automatically put ~/local to the start of PATH whenever you log on. Note that compilers and bash commands will now look for executables and libraries located in ~/local/ before looking in the remaining directories of PATH. If you have other software installed in '~/local', those versions will always be accessed first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should now have a working python-3.your.version installation. Verify by running &amp;lt;code&amp;gt;which python3&amp;lt;/code&amp;gt; in your terminal. This should show the path to the new python installed in &amp;lt;code&amp;gt;~/local/bin/&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Next, you should create a virtual python environment for the project you are currently working on. Any pip installs you do while in this virtual environment will be saved. A venv permits you to easily 'activate' that same environment setup whenever you return to working on that project with a new session on the summit nodes (interactive or batch). Return to your home directory, then run &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;python3 -m venv NameOfYourEnv&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will create a folder named 'NameOfYourEnv' which will store all the requirements for the virtual environment. You only need to create the venv once. Tp use a venv you've created, you must activate it by sourcing it with:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;source ~/NameOfYourEnv/bin/activate&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
You should now see a (NameOfYourEnv) tag at the start of your command line. If you ever need to deactivate this venv, simply run &amp;lt;code&amp;gt;deactivate&amp;lt;/code&amp;gt; at any time. &lt;br /&gt;
&lt;br /&gt;
While your venv is active, you should now be able to use &amp;lt;code&amp;gt;python&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;python3&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pip3&amp;lt;/code&amp;gt; to run python or pip. Verify this with &amp;lt;code&amp;gt;which python&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;which pip&amp;lt;/code&amp;gt;. These commands should now point to the &amp;lt;code&amp;gt;~/local/bin/&amp;lt;/code&amp;gt; dir instead of the system wide installs from anaconda which are in &amp;lt;code&amp;gt;/projects/tools/anaconda3/bin/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==pip installing python packages==&lt;br /&gt;
While your venv of choice is active, you can pip install any of the python libraries you require, and the venv will save those installs for the next time you need to activate the venv. Before pip installing any packages, update pip to the latest version available with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install --upgrade pip&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installing PyTorch or any other python package available through pip is now as simple as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install torch&amp;lt;/code&amp;gt; (This is specifically for PyTorch)&lt;br /&gt;
&lt;br /&gt;
=Replicating a python environment=&lt;br /&gt;
You have a working version of python and all your favorite packages on machine 'A', and you want to duplicate that in your new venv for the Summit nodes. You can easily do this with the following steps, ASSUMING YOU HAVE ALREADY INSTALLED NEWER VERSION OF PYTHON ON SUMMIT NODES AS WAS DONE ABOVE:&lt;br /&gt;
&lt;br /&gt;
On machine A, export your current python environment set-up to a requirements.txt file &amp;lt;code&amp;gt;pip freeze &amp;gt; requirements.txt&amp;lt;/code&amp;gt;. This file now lives in whatever directory you were in when you ran the command.&lt;br /&gt;
&lt;br /&gt;
copy that file into your home directory on the summit nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;scp -r /machine/A/path/to/requirements.txt username@jumpgate-phasta.colorado.edu:'~/.'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, from within a session on one of the summit node, create and activate a clean venv as shown above, and then run the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install -r ~/requirements.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pip should take care of the rest. If any errors occur, read the error messages and modify the requirements.txt accordingly. Sometimes it's easiest to open the requirements.txt file and remove all of the version numbers (==x.x.x) from the packages listed, this permits pip to figure out the best dependency maps for the current active venv.&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Local_Python_and_PyTorch_Install_-_Summit_Nodes&amp;diff=2145</id>
		<title>Local Python and PyTorch Install - Summit Nodes</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Local_Python_and_PyTorch_Install_-_Summit_Nodes&amp;diff=2145"/>
				<updated>2026-02-19T22:26:40Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Local install of Python versions newer than 3.7 available from base summit environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Local install of Python versions newer than 3.7 available from base summit environment=&lt;br /&gt;
Below is the process of obtaining and installing newer versions of Python than what is currently available through anaconda on the summit/dell nodes. This explanation assumes you already know how to log on to jumgate and summit nodes, and have a good proficiency with terminal commands, bash, etc. &lt;br /&gt;
&lt;br /&gt;
First, obtain a .tgz tarball of the python version you want from python.org, and put it in your home directory &amp;lt;code&amp;gt;~/&amp;lt;/code&amp;gt; on any of the PHASTA group machines. You can do this in a multitude of ways; an easy way is to download the tarball your personal machine and scp'd it to your home directory on jumpgate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;scp -r local/machine/path/to/python.tgz username@jumpgate-phasta.colorado.edu:'~/.'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, log on to jumpgate and then start an interactive session on any of the summit nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;qsub -I -l select=1:ncpus=16:mpiprocs=1 -q workq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once your interactive session is started, go to the directory where you scp'd the python tarball and unzip it with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tar -xzf Python-3.your.version.tgz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We're now going to build and install a 'user local' version of python 3.your.version. First, make a new user specific 'local' dir if it doesn’t already exist (analogous to /local/ for the entire system, but this one lives in your home directory):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir -p ~/local&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Next, cd into the python dir that appeared when you unziped the tarball. We now need to configure the python build from within that directory:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;./configure --prefix=$HOME/local --enable-optimizations&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: --prefix needs to match where you created the user specific 'local' directory.&lt;br /&gt;
Once that is complete, build python with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make -j&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Next, run the following to install the python executables and libraries in local. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We now need to add ~/local to $PATH if it's not already there. If you only want to do this for your current session, run &amp;lt;code&amp;gt;export PATH=~/local/:$PATH&amp;lt;/code&amp;gt;. Otherwise, if you always want it to appear at the front of PATH, add that same command somewhere that makes sense in your .bashrc file. Adding it to .bashrc will automatically put ~/local to the start of PATH whenever you log on. Note that compilers and bash commands will now look for executables and libraries located in ~/local/ before looking in the remaining directories of PATH. If you have other software installed in '~/local', those versions will always be accessed first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should now have a working python-3.your.version installation. Verify by running &amp;lt;code&amp;gt;which python3&amp;lt;/code&amp;gt; in your terminal. This should show the path to the new python installed in &amp;lt;code&amp;gt;~/local/bin/&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Next, you should create a virtual python environment for the project you are currently working on. Any pip installs you do while in this virtual environment will be saved. A venv permits you to easily 'activate' that same environment setup whenever you return to working on that project with a new session on the summit nodes (interactive or batch). Return to your home directory, then run &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;python3 -m venv NameOfYourEnv&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will create a folder named 'NameOfYourEnv' which will store all the requirements for the virtual environment. You only need to create the venv once. Tp use a venv you've created, you must activate it by sourcing it with:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;source ~/NameOfYourEnv/bin/activate&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
You should now see a (NameOfYourEnv) tag at the start of your command line. If you ever need to deactivate this venv, simply run &amp;lt;code&amp;gt;deactivate&amp;lt;/code&amp;gt; at any time. &lt;br /&gt;
&lt;br /&gt;
While your venv is active, you should now be able to use &amp;lt;code&amp;gt;python&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;python3&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pip3&amp;lt;/code&amp;gt; to run python or pip. Verify this with &amp;lt;code&amp;gt;which python&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;which pip&amp;lt;/code&amp;gt;. These commands should now point to the &amp;lt;code&amp;gt;~/local/bin/&amp;lt;/code&amp;gt; dir instead of the system wide installs from anaconda which are in &amp;lt;code&amp;gt;/projects/tools/anaconda3/bin/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==pip installing python packages==&lt;br /&gt;
While your venv of choice is active, you can pip install any of the python libraries you require, and the venv will save those installs for the next time you need to activate the venv. Before pip installing any packages, update pip to the latest version available with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install --upgrade pip&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installing PyTorch or any other python package available through pip is now as simple as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install torch&amp;lt;/code&amp;gt; This is specifically for PyTorch&lt;br /&gt;
&lt;br /&gt;
=Replicating a python environment=&lt;br /&gt;
You have a working version of python and all your favorite packages on machine 'A', and you want to duplicate that in your new venv for the Summit nodes. You can easily do this with the following steps, ASSUMING YOU HAVE ALREADY INSTALLED NEWER VERSION OF PYTHON ON SUMMIT NODES AS WAS DONE ABOVE:&lt;br /&gt;
&lt;br /&gt;
On machine A, export your current python environment set-up to a requirements.txt file &amp;lt;code&amp;gt;pip freeze &amp;gt; requirements.txt&amp;lt;/code&amp;gt;. This file now lives in whatever directory you were in when you ran the command.&lt;br /&gt;
&lt;br /&gt;
copy that file into your home directory on the summit nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;scp -r /machine/A/path/to/requirements.txt username@jumpgate-phasta.colorado.edu:'~/.'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, from within a session on one of the summit node, create and activate a clean venv as shown above, and then run the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install -r ~/requirements.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pip should take care of the rest. If any errors occur, read the error messages and modify the requirements.txt accordingly. Sometimes it's easiest to open the requirements.txt file and remove all of the version numbers (==x.x.x) from the packages listed, this permits pip to figure out the best dependency maps for the current active venv.&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Local_Python_and_PyTorch_Install_-_Summit_Nodes&amp;diff=2144</id>
		<title>Local Python and PyTorch Install - Summit Nodes</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Local_Python_and_PyTorch_Install_-_Summit_Nodes&amp;diff=2144"/>
				<updated>2026-02-19T22:19:10Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Local install of Python versions newer than 3.7 available from base summit environment=&lt;br /&gt;
Below is the process of obtaining and installing newer versions of Python than what is currently available through anaconda on the summit/dell nodes. This explanation assumes you already know how to log on to jumgate and summit nodes, and have a good proficiency with terminal commands, bash, etc. &lt;br /&gt;
&lt;br /&gt;
First, obtain a .tgz tarball of the python version you want from python.org, and put it in your home directory &amp;lt;code&amp;gt;~/&amp;lt;/code&amp;gt; on any of the PHASTA group machines. You can do this in a multitude of ways; an easy way is to download the tarball your personal machine and scp'd it to your home directory on jumpgate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;scp -r local/machine/path/to/python.tgz username@jumpgate-phasta.colorado.edu:'~/.'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, log on to jumpgate and then start an interactive session on any of the summit nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;qsub -I -l select=1:ncpus=16:mpiprocs=1 -q workq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once your interactive session is started, go to the directory where you scp'd the python tarball and unzip it with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tar -xzf Python-3.your.version.tgz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We're now going to build and install a 'user local' version of python 3.your.version. First, make a new user specific 'local' dir if it doesn’t already exist (analogous to /local/ for the entire system, but this one lives in your home directory):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir -p ~/local&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Next, cd into the python dir that appeared when you unziped the tarball. We now need to configure the python build from within that directory:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;./configure --prefix=$HOME/local --enable-optimizations&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: --prefix needs to match where you created the user specific 'local' directory.&lt;br /&gt;
Once that is complete, build python with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make -j&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Next, run the following to install the python executables and libraries in local. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We now need to add ~/local to $PATH if it's not already there. If you only want to do this for your current session, run &amp;lt;code&amp;gt;export PATH=~/local/:$PATH&amp;lt;/code&amp;gt;. Otherwise, if you always want it to appear at the front of PATH, add that same command somewhere that makes sense in your .bashrc file. Adding it to .bashrc will automatically put ~/local to the start of PATH whenever you log on. Note that compilers and bash commands will now look for executables and libraries located in ~/local/ before looking in the remaining directories of PATH. If you have other software installed in '~/local', those versions will always be accessed first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should now have a working python-3.your.version installation. Verify by running &amp;lt;code&amp;gt;which python3&amp;lt;/code&amp;gt; in your terminal. This should show the path to the new python installed in &amp;lt;code&amp;gt;~/local/bin/&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Next, you should create a virtual python environment for the project you are currently working on. Any pip installs you do while in this virtual environment will be saved. A venv permits you to easily 'activate' that same environment setup whenever you return to working on that project with a new session on the summit nodes (interactive or batch). Return to your home directory, then run &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;python3 -m venv NameOfYourEnv&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will create a folder named 'NameOfYourEnv' which will store all the requirements for the virtual environment. You only need to create the venv once. Tp use a venv you've created, you must activate it by sourcing it with:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;source ~/NameOfYourEnv/bin/activate&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
You should now see a (NameOfYourEnv) tag at the start of your command line. If you ever need to deactivate this venv, simply run &amp;lt;code&amp;gt;deactivate&amp;lt;/code&amp;gt; at any time. While your venv of choice is active, you can pip install any of the python libraries you require, and the venv will save those installs for the next time you need to activate the venv.&lt;br /&gt;
&lt;br /&gt;
While your venv is active, you should now be able to use &amp;lt;code&amp;gt;python&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;python3&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pip3&amp;lt;/code&amp;gt;. Verify this with &amp;lt;code&amp;gt;which python&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;which pip&amp;lt;/code&amp;gt;, it should show the path to the &amp;lt;code&amp;gt;~/local/bin&amp;lt;/code&amp;gt; python install.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==pip installing python packages==&lt;br /&gt;
Before pip installing any packages, update pip to the latest version available with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install --upgrade pip&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installing PyTorch or any other python package available through pip is now as simple as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install torch&amp;lt;/code&amp;gt; This is specifically for PyTorch&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Replicating a python environment=&lt;br /&gt;
You have a working version of python and all your favorite packages on machine 'A', and you want to duplicate that in your new venv for the Summit nodes. You can easily do this with the following steps, ASSUMING YOU HAVE ALREADY INSTALLED NEWER VERSION OF PYTHON ON SUMMIT NODES AS WAS DONE ABOVE:&lt;br /&gt;
&lt;br /&gt;
On machine A, export your current python environment set-up to a requirements.txt file &amp;lt;code&amp;gt;pip freeze &amp;gt; requirements.txt&amp;lt;/code&amp;gt;. This file now lives in whatever directory you were in when you ran the command.&lt;br /&gt;
&lt;br /&gt;
copy that file into your home directory on the summit nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;scp -r /machine/A/path/to/requirements.txt username@jumpgate-phasta.colorado.edu:'~/.'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, from within a session on one of the summit node, create and activate a clean venv as shown above, and then run the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install -r ~/requirements.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pip should take care of the rest. If any errors occur, read the error messages and modify the requirements.txt accordingly. Sometimes it's easiest to open the requirements.txt file and remove all of the version numbers (==x.x.x) from the packages listed, this permits pip to figure out the best dependency maps for the current active venv.&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Local_Python_and_PyTorch_Install_-_Summit_Nodes&amp;diff=2143</id>
		<title>Local Python and PyTorch Install - Summit Nodes</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Local_Python_and_PyTorch_Install_-_Summit_Nodes&amp;diff=2143"/>
				<updated>2026-02-19T21:15:54Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PAGE UNDER CONSTRUCTION&lt;br /&gt;
&lt;br /&gt;
Below is the process of obtaining and installing newer versions of Python than what is currently available through anaconda on the summit/dell nodes. &lt;br /&gt;
&lt;br /&gt;
First, obtain a .tgz tarball of the python version you want from python.org, and put it in your home directory &amp;lt;code&amp;gt;~/&amp;lt;/code&amp;gt; on any of the PHASTA group machines. You can do this in a multitude of ways; an easy way is to download the tarball your personal machine and scp'd it to your home directory on jumpgate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;scp -r local/machine/path/to/python.tgz username@jumpgate-phasta.colorado.edu:'~/.'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, log on to jumpgate and then start an interactive session on any of the summit nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;qsub -I -l select=1:ncpus=16:mpiprocs=1 -q workq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once your interactive session is started, go to the directory where you scp'd the python tarball and unzip it with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tar -xzf Python-3.your.version.tgz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We're now going to build and install a local version of python 3.your.version. First, make a new user specific 'local' dir if it doesn’t already exist (analogous to /local/ for the entire system, but this one lives in your home directory):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir -p ~/local&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Next, cd into the python dir that appeared when you unziped the tarball. We now need to configure the python build from within that directory:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;./configure --prefix=$HOME/local --enable-optimizations&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: --prefix needs to match where you created the user specific 'local' directory.&lt;br /&gt;
Once that is complete, build python with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make -j&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Next, run the following to install the python executables and libraries in local. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We now need to add ~/local to $PATH if it's not already there. Do this by adding &amp;lt;code&amp;gt;export PATH=~/local/:$PATH&amp;lt;/code&amp;gt; somewhere that makes sense in your .bashrc file. This will put ~/local to the start of PATH whenever you log on. Note that if you have other software installed in '~/local', this will always access these '~/local' versions first when calling their executables.   &lt;br /&gt;
&lt;br /&gt;
You should now have a working python-3.your.version installation. Verify by running &amp;lt;code&amp;gt;which python3&amp;lt;/code&amp;gt; in your terminal. This should show the path to the new python installed in &amp;lt;code&amp;gt;~/local/bin/&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Next, you should create a virtual environment for the project you are currently working on. Any pip installs you do while in this virtual environment will be saved. A venv permits you to easily 'activate' that same environment setup whenever you return to working on that project with a new session on the summit nodes (interactive or batch). &lt;br /&gt;
Return to your home directory, then run &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;python3 -m venv NameOfYourEnv&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will create a folder named 'MyEnv' which will store the virtual environment. You only need to do this once. Once you've created a venv you must activate it with:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;source ~/NameOfYourEnv/bin/activate&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
You should now see a (MyENV) tag at the start of your command line. If you ever need to deactivate this venv, simply run &amp;lt;code&amp;gt;deactivate&amp;lt;/code&amp;gt; at any time.&lt;br /&gt;
&lt;br /&gt;
While your venv of choice is active, you can pip install any of the python libraries you require, and the venv will save those installs for the next time you need to activate the venv.&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Local_Python_and_PyTorch_Install_-_Summit_Nodes&amp;diff=2142</id>
		<title>Local Python and PyTorch Install - Summit Nodes</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Local_Python_and_PyTorch_Install_-_Summit_Nodes&amp;diff=2142"/>
				<updated>2026-02-19T20:46:04Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: Created page with &amp;quot;PAGE UNDER CONSTRUCTION  Below is the process of obtaining and installing newer versions of Python than what is currently available through anaconda on the summit/dell nodes....&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PAGE UNDER CONSTRUCTION&lt;br /&gt;
&lt;br /&gt;
Below is the process of obtaining and installing newer versions of Python than what is currently available through anaconda on the summit/dell nodes. &lt;br /&gt;
&lt;br /&gt;
First, obtain a .tgz tarball of the python version you want from python.org, and put it in your home directory &amp;lt;code&amp;gt;~/&amp;lt;/code&amp;gt; on any of the PHASTA group machines. You can do this in a multitude of ways, an easy way is to download the tarball your personal machine and scp'd it to your home directory on jumpgate: &lt;br /&gt;
&amp;lt;code&amp;gt;scp -r local/machine/path/to/python.tgz username@jumpgate-phasta.colorado.edu:'~/.'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, log on to jumpgate and then start an interactive session on any of the summit nodes:&lt;br /&gt;
&amp;lt;code&amp;gt;qsub -I -l select=1:ncpus=16:mpiprocs=1 -q workq&amp;lt;/code&amp;gt;&lt;br /&gt;
Once your interactive session is started, go to the directory where you scp'd the python tarball and unzip it with:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tar -xzf Python-3.your.version.tgz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
make a new local dir if it doesn’t exist already &amp;lt;code&amp;gt;mkdir -p ~/local&amp;lt;/code&amp;gt; &lt;br /&gt;
cd into the python dir that has since appeared when you unziped the tarball. Next, configure the python build: &lt;br /&gt;
&amp;lt;code&amp;gt;./configure --prefix=$HOME/local --enable-optimizations&amp;lt;/code&amp;gt;&lt;br /&gt;
Once that is complete, build python with&lt;br /&gt;
&amp;lt;code&amp;gt;make -j&amp;lt;/code&amp;gt;&lt;br /&gt;
Next, run the following to install the libraries in the local dir we just created. &lt;br /&gt;
&amp;lt;code&amp;gt;make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, add ~/local to your $PATH if it's not already there. Do this by adding &amp;lt;code&amp;gt;export PATH=~/local/:$PATH&amp;lt;/code&amp;gt; your .bashrc file. This will put ~/local to the start of PATH whenever you log on.  &lt;br /&gt;
&lt;br /&gt;
You should now have a working python installation. Verify by running &amp;lt;code&amp;gt;which python3&amp;lt;/code&amp;gt; in your terminal. This should show the path to the new python installed in the &amp;lt;code&amp;gt;~/local/bin/&amp;lt;/code&amp;gt;. To verify python itself can run, do &amp;lt;code&amp;gt;python3&amp;lt;/code&amp;gt; in your terminal. &lt;br /&gt;
&lt;br /&gt;
Next, you should create a virtual environment for the project you are currently working on. Any pip installs you do while in this virtual env will be saved and you can easily activate that environment whenever you return to working on that project. From your home directory, run &amp;lt;/code&amp;gt;python3 -m venv MyEnv&amp;lt;/code&amp;gt;&lt;br /&gt;
This will create a folder name MyEnv which will store the virtual environment. &lt;br /&gt;
&lt;br /&gt;
You must activate this virtual environment with &amp;lt;code&amp;gt;source ~/MyEnv/bin/activate&amp;lt;/code&amp;gt;. You should now see a (MyENV) tag at the start of your command line.&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=The_On_Ramp/Level_1/Solve_(Incompressible)&amp;diff=2107</id>
		<title>The On Ramp/Level 1/Solve (Incompressible)</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=The_On_Ramp/Level_1/Solve_(Incompressible)&amp;diff=2107"/>
				<updated>2025-04-30T19:44:56Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Create Solver.inp */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Exporting to PHASTA ===&lt;br /&gt;
After the partitioning performed via Chef in the last steps, we now have the problem domain in a form that the PHASTA executable can read. In your 8-1-Chef directory, create a sub-directory named &amp;quot;Run&amp;quot;. This will contain all of the simulation data from this case, which we will use in our PHASTA run. Remember that for this on-Ramp tutorial we have partitioned our case of interest to 8 parts. Therefore, we need to create a sub-directory named &amp;quot;8-procs_case&amp;quot; within the /8-1-Chef/Run/ directory. Once you have mkdir'd and cd'd into this new Run/8-procs_case/ subdirectory, make softlinks (&amp;quot;ln -s &amp;lt;path/file*&amp;gt;&amp;quot;) to the N=8 restart and geombc &amp;quot;checkpoint&amp;quot; files that where constructed by Chef located in the 8-1-Chef/8-procs_case/ directory. When in the Run/8-procs_case sub-directory, a good command to do this is the following:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../../8-procs_case/restart* .&lt;br /&gt;
 ln -s ../../8-procs_case/geombc* .&lt;br /&gt;
&lt;br /&gt;
Also create a numstart.dat file. This file will specify the time and timestep that the simulation has completed thus far. For our case, we have not yet run the simulation, thus our time and timesteps are 0 0. Use the following command in the &amp;quot;Run/8-procs_case&amp;quot; directory to create the numstart.dat file:&lt;br /&gt;
&lt;br /&gt;
 echo 0 0 &amp;gt; numstart.dat&lt;br /&gt;
&lt;br /&gt;
=== Build the executable/specify runtime parameters===&lt;br /&gt;
What remains is to determine the version of PHASTA to build and run. Since there are a bunch of researchers working on PHASTA at any given time, there are many branches/versions of the main code.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' You may not have access to the phasta-next repo yet. If that is the case, ask Dr. Jansen to have you added to the repo. In the meanwhile, you can just use the regular phasta repo (by replacing all &amp;quot;phasta-next&amp;quot; with &amp;quot;phasta&amp;quot; in these instructions).&lt;br /&gt;
&lt;br /&gt;
==== Retrieve/build a version of PHASTA code ====&lt;br /&gt;
To have your first run of PHASTA, you will need an executable of the PHASTA code. There are many ways to do this, and below is intended to get you a generic executable. The many nuances to this proccess can be found on the Level 2 page [[Compiling_PHASTA_With_CMake|here]]. Navigate to your home directory. Create and enter a directory here named &amp;quot;git-phasta&amp;quot;. In a web browser, navigate to the online git repository for phasta-next and select the &amp;quot;clone&amp;quot; or &amp;quot;code&amp;quot; icon. The result should be similar to the following picture, where a pop-up gives a web address:&lt;br /&gt;
&lt;br /&gt;
 [[File:GitClone.png]]&lt;br /&gt;
&lt;br /&gt;
Copy this address and within the &amp;quot;git-phasta&amp;quot; directory execute the following command and enter your github credentials:&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/PHASTA/phasta-next.git&lt;br /&gt;
&lt;br /&gt;
After this is finished there will be a subdirectory created named &amp;quot;phasta-next&amp;quot; that contains the code tree that you wish to build. &lt;br /&gt;
Back within the git-phasta directory create another subdirectory named &amp;quot;build_phasta-next&amp;quot;. Now we must set the environment so that the compiler has the necessary libraries. If you perform the following command, the listed environment libraries that ken often uses are listed, and are often sufficient:&lt;br /&gt;
&lt;br /&gt;
 more ~kjansen/soft-core.sh &lt;br /&gt;
&lt;br /&gt;
At the time that this page is created, the relevant commands to load the needed environment are the following:&lt;br /&gt;
&lt;br /&gt;
 soft add +gcc-6.3.0&lt;br /&gt;
 soft add +openmpi-gnu-1.10.6-gnu49-thread&lt;br /&gt;
 soft add +simmodeler-6.0-171202&lt;br /&gt;
&lt;br /&gt;
If the user needs additional libraries they can often be found with the following command:&lt;br /&gt;
&lt;br /&gt;
 softenv&lt;br /&gt;
&lt;br /&gt;
lets build this code! Navigate into this build_phasta-next subdirectory and create a file named &amp;quot;unpack_buildFiles.sh&amp;quot; with the following content:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 Target=Example_Build&lt;br /&gt;
 mkdir Example_Build&lt;br /&gt;
 rm -r $Target/*&lt;br /&gt;
 cd $Target&lt;br /&gt;
 &lt;br /&gt;
 export PKG_CONFIG_PATH=/users/skinnerr/tools/git-petsc/build_ompi210_gnu63/lib/pkgconfig/&lt;br /&gt;
 &lt;br /&gt;
 cmake \&lt;br /&gt;
 -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
 -DCMAKE_CXX_COMPILER=g++ \&lt;br /&gt;
 -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
 -DCMAKE_BUILD_TYPE=Debug \&lt;br /&gt;
 -DPHASTA_INCOMPRESSIBLE=ON \&lt;br /&gt;
 -DPHASTA_COMPRESSIBLE=OFF \&lt;br /&gt;
 -DPHASTA_USE_LESLIB=ON \&lt;br /&gt;
 -DLESLIB=/users/matthb2/libles1.5/libles-debianjessie-gcc-ompi.a \&lt;br /&gt;
 -DCASES=/home/mrasquin/develop-phasta/phastaChefTests \&lt;br /&gt;
 -DPHASTA_TESTING=OFF \&lt;br /&gt;
 ../../phasta-next/&lt;br /&gt;
 &lt;br /&gt;
 make -j8&lt;br /&gt;
 echo &amp;quot;Target: $Target&amp;quot;&lt;br /&gt;
 date&lt;br /&gt;
&lt;br /&gt;
'''Note:''' You can create this file by typing &amp;lt;code&amp;gt;vi unpack_buildFiles.sh&amp;lt;/code&amp;gt; into the command line. This will create an empty shell script file named unpack_buildFiles.sh and enter you into the Vim editor mode, where you can practice your recently adopted Vim commands to copy the above script into the file, making sure to save and quit after you're done. Enter the following command to make sure your shell script was saved successfully with all the required text:&lt;br /&gt;
&lt;br /&gt;
 more unpack_buildFiles.sh&lt;br /&gt;
&lt;br /&gt;
Now, we must turn the above .sh file into an executable by typing the following command:&lt;br /&gt;
&lt;br /&gt;
 chmod +x unpack_buildFiles.sh&lt;br /&gt;
&lt;br /&gt;
Finally, we are ready to run the executable and build the PHASTA code!&lt;br /&gt;
&lt;br /&gt;
 ./unpack_buildFiles.sh&lt;br /&gt;
&lt;br /&gt;
You can check that your executable has been built by locating:&lt;br /&gt;
&lt;br /&gt;
 Example_Build/bin/phastaIC.exe&lt;br /&gt;
&lt;br /&gt;
===== Additional notes =====&lt;br /&gt;
If there is a specific branch off of phasta-next that you'd like to build, navigate to phasta-next and use the following command:&lt;br /&gt;
 git checkout &amp;quot;branchname&amp;quot;. &lt;br /&gt;
If this is a branch that I will be working on for a while, I tend to alter the build and code directories according to the branch-name. Note that the respective pointer in the &amp;quot;unpack_buildFiles.sh&amp;quot; file (ie the last line) will have to be set accordingly.&lt;br /&gt;
&lt;br /&gt;
=== Create Solver.inp === &lt;br /&gt;
The &amp;lt;code&amp;gt;input.config&amp;lt;/code&amp;gt; file in the newly created &amp;lt;code&amp;gt;build_phasta/Example_Build/&amp;lt;/code&amp;gt; directory contains all possible options that could be set in the &amp;lt;code&amp;gt;solver.inp&amp;lt;/code&amp;gt; file (which we will use for our PHASTA run). Create the &amp;lt;code&amp;gt;solver.inp&amp;lt;/code&amp;gt; file in the &amp;lt;code&amp;gt;.../PrepAndRun/8-1-Chef/Run/&amp;lt;/code&amp;gt; directory, and then specify all of the parameters that you wish to change for your run case. '''NEVER EVER Modify the input.config file itself'''. The rest of the parameters need not be specified. For example my solver.inp looks as follows:&lt;br /&gt;
&lt;br /&gt;
 # ibksiz flmpl flmpr itwmod wmodts dmodts fwr taucfct&lt;br /&gt;
 # PHASTA Version 1.5 Input File&lt;br /&gt;
 #&lt;br /&gt;
 #  Basic format is&lt;br /&gt;
 #&lt;br /&gt;
 #    Key Phrase  :  Acceptable Value (integer, double, logical, or phrase&lt;br /&gt;
 #                                     list of integers, list of doubles )&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #SOLUTION CONTROL &lt;br /&gt;
 #{                &lt;br /&gt;
     Equation of State: Incompressible&lt;br /&gt;
     Number of Timesteps: 10&lt;br /&gt;
     Time Step Size: 1e-1  # Delt(1)&lt;br /&gt;
     Turbulence Model: RANS  # No-Model # DES97 # DDES  iturb=0, RANS =-1  LES=1 #}&lt;br /&gt;
 #}&lt;br /&gt;
 &lt;br /&gt;
 #MATERIAL PROPERTIES&lt;br /&gt;
 #{&lt;br /&gt;
     Viscosity: 1.50e-5      # fills datmat (2 values REQUIRED if iLset=1)&lt;br /&gt;
     Density: 1.0           # ditto&lt;br /&gt;
     Body Force Option: None # ibody=0 =&amp;gt; matflag(5,n)&lt;br /&gt;
     Body Force: 0 0.0 0.0    # (datmat(i,5,n),i=1,nsd)&lt;br /&gt;
     Thermal Conductivity: 27.6e-1  # ditto&lt;br /&gt;
     Scalar Diffusivity: 27.6e-1    # fills scdiff(1:nsclrS)&lt;br /&gt;
 #}&lt;br /&gt;
 &lt;br /&gt;
 OUTPUT CONTROL&lt;br /&gt;
 {&lt;br /&gt;
     Number of Timesteps between Restarts: 5 #replaces nout/ntout&lt;br /&gt;
     Number of SyncIO Files: 0&lt;br /&gt;
     Print Error Indicators: False&lt;br /&gt;
     Number of Error Smoothing Iterations: 0 # ierrsmooth&lt;br /&gt;
 #    Print ybar: True &lt;br /&gt;
 #    Print vorticity: True&lt;br /&gt;
 #    Print Wall Fluxes: False&lt;br /&gt;
 #    Print Statistics: False&lt;br /&gt;
     Number of Force Surfaces: 1&lt;br /&gt;
     Surface ID's for Force Calculation: 1&lt;br /&gt;
 #     Ranks per core: 4 # for varts only&lt;br /&gt;
 #     Cores per node: 16 # for varts only&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 #LINEAR SOLVER&lt;br /&gt;
 #    Solver Type: GMRES sparse&lt;br /&gt;
     Solver Type: ACUSIM with P Projection&lt;br /&gt;
     Number of GMRES Sweeps per Solve: 1      # replaces nGMRES&lt;br /&gt;
     Number of Krylov Vectors per GMRES Sweep: 200           # replaces Kspace&lt;br /&gt;
     Scalar 1 Solver Tolerance : 1.0e-4&lt;br /&gt;
     Tolerance on Momentum Equations: 0.05                   # epstol(1)&lt;br /&gt;
     Tolerance on ACUSIM Pressure Projection: 0.01           # prestol &lt;br /&gt;
     Number of Solves per Left-hand-side Formation: 1  #nupdat/LHSupd(1)&lt;br /&gt;
     ACUSIM Verbosity Level               : 0   #iverbose&lt;br /&gt;
     Minimum Number of ACUSIM Iterations per Nonlinear Iteration: 10  # minIters&lt;br /&gt;
     Maximum Number of ACUSIM Iterations per Nonlinear Iteration: 200 # maxIter&lt;br /&gt;
 #}&lt;br /&gt;
 &lt;br /&gt;
 #DISCRETIZATION CONTROL&lt;br /&gt;
 #{&lt;br /&gt;
     Time Integration Rule: First Order    # 1st Order sets rinf(1) -1&lt;br /&gt;
 #    Time Integration Rule: Second Order    # Second Order sets rinf next&lt;br /&gt;
 #    Time Integration Rho Infinity: 0.0     # rinf(1) Only used for 2nd order&lt;br /&gt;
     Tau Matrix: Diagonal-Shakib               #itau=1&lt;br /&gt;
     Tau Time Constant: 1.0                      #dtsfct&lt;br /&gt;
     Include Viscous Correction in Stabilization: True    # if p=1 idiff=1&lt;br /&gt;
                                                          # if p=2 idiff=2  &lt;br /&gt;
     Lumped Mass Fraction on Left-hand-side: 0.0           # flmpl&lt;br /&gt;
     Lumped Mass Fraction on Right-hand-side: 0.0          # flmpr&lt;br /&gt;
     Tau C Scale Factor: 1.0                    # taucfct  best value depends  &lt;br /&gt;
     Number of Elements Per Block: 64 # switch to &amp;gt;250 if sgi&lt;br /&gt;
 #} &lt;br /&gt;
 &lt;br /&gt;
 TURBULENCE MODELING PARAMETERS&lt;br /&gt;
 {&lt;br /&gt;
    Turbulence Wall Model Type: None  #itwmod=2 RANSorLES&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
 #STEP SEQUENCE &lt;br /&gt;
 #{&lt;br /&gt;
      Step Construction  : 0 1 10 11 0 1 10 11&lt;br /&gt;
 #}&lt;br /&gt;
&lt;br /&gt;
=== Running the Solver ===&lt;br /&gt;
Create the runPHASTA.sh bash script in your &amp;lt;code&amp;gt;8-1-Chef/Run&amp;lt;/code&amp;gt; directory. Where you see &amp;lt;pathtoBuildDir&amp;gt; include your path to your build directory where you retrieved the &amp;lt;code&amp;gt;input.config&amp;lt;/code&amp;gt; file. The #export line is an example that I have used myself, yours should look similar:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 rm $1-procs_case/doubleRun-check&lt;br /&gt;
 &lt;br /&gt;
 #export PHASTA_CONFIG=/users/jopa6460/git-phasta/build_phasta/Example_Build&lt;br /&gt;
 export PHASTA_CONFIG=&amp;lt;pathtoBuildDir&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 mpirun -np $1 $PHASTA_CONFIG/bin/phastaIC.exe 2&amp;gt;&amp;amp;1 | tee $1.out&lt;br /&gt;
&lt;br /&gt;
Remember to turn the file into an executable as was done for the build script above. Hint: &amp;lt;code&amp;gt;chmod +x&amp;lt;/code&amp;gt; command. &lt;br /&gt;
&lt;br /&gt;
NOTE: Before running PHASTA, it is important to check that nobody else is running important jobs on the computer you're connected to. Run &amp;lt;code&amp;gt;top&amp;lt;/code&amp;gt; in the command line to check what other processes are running, and if you see other people running large jobs you should ask them if you can run your job as well, or else switch to a different computer.&lt;br /&gt;
&lt;br /&gt;
Now you have everything you need to run your first PHASTA simulation! In the Run directory execute the following line:&lt;br /&gt;
&lt;br /&gt;
 ./runPHASTA.sh 8&lt;br /&gt;
&lt;br /&gt;
Output of a proper run of PHASTA contains information about 1) the step number of the simulation; 2) the relative residual (convergence relative to this run's initial residual); and 3) various other outputs based on runtime parameters like BC's and IC's. As the simulation continues it will produce successive checkpoint restart files that contain the solution data at that timestep. For our example, these restart files will be located in the &amp;lt;code&amp;gt;.../Run/8-procs_case&amp;lt;/code&amp;gt; directory. These restart files and the geombc files are what Paraview post-processes to give us a visualization of flow field solutions.&lt;br /&gt;
&lt;br /&gt;
Now it's time to plot the results in the [[Level 1 Post-Process]] step.&lt;br /&gt;
&lt;br /&gt;
=== A few helpful video tutorials===&lt;br /&gt;
&lt;br /&gt;
[https://fluid.colorado.edu/tutorials/tutorialVideos/CloneFromGithubAndBranch.mov		CloneFromGithubAndBranch.mov		]&lt;br /&gt;
&lt;br /&gt;
[[Tutorial_Video_Overviews#CloneFromGithubAndBranch.mov|Video Notes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://fluid.colorado.edu/tutorials/tutorialVideos/BlancoBuidingPHASTA.mov	BlancoBuidingPHASTA.mov	]&lt;br /&gt;
&lt;br /&gt;
[[Tutorial_Video_Overviews#BlancoBuidingPHASTA.mov|Video Notes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://fluid.colorado.edu/tutorials/tutorialVideos/PHASTA_workflow_RB.mkv	PHASTA_workflow_RB.mkv	]&lt;br /&gt;
&lt;br /&gt;
[[Tutorial_Video_Overviews#PHASTA_workflow_RB.mkv|Video Notes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://fluid.colorado.edu/tutorials/tutorialVideos/RajDemoPrepSolvePost.mov	RajDemoPrepSolvePost.mov	]&lt;br /&gt;
&lt;br /&gt;
[[Tutorial_Video_Overviews#RajDemoPrepSolvePost.mov|Video Notes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://fluid.colorado.edu/tutorials/tutorialVideos/PrepSolvePostBLandC.mp4	PrepSolvePostBLandC.mp4	]&lt;br /&gt;
&lt;br /&gt;
[[Tutorial_Video_Overviews#PrepSolvePostBLandC.mp4|Video Notes]]&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=PHASTA_Group_Machines&amp;diff=2058</id>
		<title>PHASTA Group Machines</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=PHASTA_Group_Machines&amp;diff=2058"/>
				<updated>2024-05-28T16:08:15Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Setting Up Two-Factor Authentication */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the local machines owned by the group, logging in, and two factor authentication.&lt;br /&gt;
&lt;br /&gt;
== Logging In ==&lt;br /&gt;
&lt;br /&gt;
The entry point for the group machines is &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, which is accessed publicly via &amp;lt;code&amp;gt;jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;. We access this entry point by creating an SSH connection between it and our personal machines. To access the system via command line (terminal, command prompt, etc), simply run &amp;lt;code&amp;gt;ssh USERNAME@jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;. Note: if you are using Windows 8 or older, you will need to download and install an SSH client such as [https://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTY], and follow the directions specified as '''Windows 8'''. &lt;br /&gt;
&lt;br /&gt;
This [https://fluid.colorado.edu/tutorials/tutorialVideos/VNC_tutorial.mov video] walks you through the multiple next steps you will take in order to access and interact with the PHASTA machines. wThe steps in the video are more thoroughly documented in the remainder of this page and the [[VNC]] page of the wiki.&lt;br /&gt;
&lt;br /&gt;
To get started, open a command line terminal, enter &amp;lt;code&amp;gt;ssh USERNAME@jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;, and the login process will look like the following:&lt;br /&gt;
&lt;br /&gt;
 ➜ ssh USERNAME@jumpgate-phasta.colorado.edu &lt;br /&gt;
 Password: &lt;br /&gt;
 Verification code:&lt;br /&gt;
&lt;br /&gt;
 '''**Windows 8**''' &lt;br /&gt;
 Open your PuTTY application and enter the following in the field that says &amp;quot;Host name:&amp;quot;&lt;br /&gt;
  &amp;lt;code&amp;gt;USERNAME@jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
 Next make sure that Connection type is set to &amp;quot;SSH&amp;quot;. Click on &amp;quot;Open&amp;quot;. This will start a terminal window session connected to jumpgate that will have the &lt;br /&gt;
 same output as the non-windows 8 instructions above.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
where the &amp;lt;code&amp;gt;Password:&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Verification code:&amp;lt;/code&amp;gt; are prompts for you to enter in your password and 2FA pass code. Note the 2FA request for a verification code will not start occurring until after you setup 2fa as noted below.&lt;br /&gt;
&lt;br /&gt;
Very little can/should be done on &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;.  The most common use is to establish a tunnel for a VNC session. The second usage that must be done to set that up is connecting to &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. This is done via &amp;lt;code&amp;gt;ssh portal1&amp;lt;/code&amp;gt; while on &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Setting Up Two-Factor Authentication ===&lt;br /&gt;
Due to recent brute force ssh attacks we are moving to using two factor authentication (2FA). Existing users will have one week to switch over to this process.  New users are expected to do this within 24 hours.  This is pretty easy to setup as follows (from a terminal in your mac or linux laptop (and Windows if new enough)) or using PuTTY. All commands to be run are will be in &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt; block. If you have not already established a connection with jumpgate (from the previous steps above), open a new terminal on your personal computer and enter the following:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ssh USERNAME@jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will prompt for your ''password'' (the private password you set or, if this is your first login, the one in the account creation email). Enter your password to log in. We will refer to this terminal as &amp;quot;Primary terminal&amp;quot; for the remainder of these instructions. &lt;br /&gt;
&lt;br /&gt;
Next you need to download and install an authenticator application either for your computer or phone. There are several from Google, Microsoft, Twilio, etc (Google Authenticator works great). Launch that application on your phone or computer. In whatever mode it uses to create a new token generator, do that (often it opens with a QR code scanner enabled as it knows that is the easiest way to link the phone application to the QR scan created on the machine you are trying to access).&lt;br /&gt;
&lt;br /&gt;
Before moving forward, start a second terminal connection to &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt; by repeating the process above for establishing an ssh connection (PuTTY steps for Windows 8 users). We will refer to this second terminal connection as our &amp;quot;backup terminal&amp;quot;. If at any point you want/need to reset, simply run &amp;lt;code&amp;gt;''rm -rf ~/.google_authenticator''&amp;lt;/code&amp;gt; in the backup terminal.&lt;br /&gt;
&lt;br /&gt;
Now, in your primary &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt; terminal on your laptop type and enter:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;google-authenticator&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your terminal window is big enough, it should display a QR code that you can scan with your authenticator app on your phone. At this point it will ask you some questions about options (I answered yes to all). **You '''MUST''' answer yes to the time-based question, otherwise you will not be able to copy files onto ALCF (learned from experience)**&lt;br /&gt;
&lt;br /&gt;
Now open a 3rd terminal and log on to &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt; with ssh just as we did before. Because we have created a 2FA token, in addition to prompting for your ''password'', it will also prompt for a &amp;quot;Verification code:&amp;quot;. In your authenticator app, find the auto-generated 6 digit code associated to the jumpgate machine and enter it in the &amp;quot;Verification code:&amp;quot; field. If you've logged on successfully, then you are done and can move on to setting up your VNC. Otherwise, attempt to troubleshoot or reset the process with the &amp;lt;code&amp;gt;rm -rf ~/.google_authenticator&amp;lt;/code&amp;gt; command in the &amp;quot;backup&amp;quot; terminal you opened previously. If you have reset the process, close your primary and 3rd terminals, keep the backup terminal open, and open a new primary terminal and start the process over.&lt;br /&gt;
&lt;br /&gt;
=== VNC - Viewing your PHASTA Machine Sessions ===&lt;br /&gt;
Most members of the group interact with the PHASTA machines via a VNC tool (Virtual Network Computing), which provides a graphical user interface (GUI) link between the PHASTA machines (server side) and your personal machine (client side). This connection permits you to interact with the PHASTA machines by using your personal machine as from any location with a secure internet connection. Setting up the VNC server is documented on the [[VNC]] page, and for the purpose of the On Ramp, follow the sections identified with steps 1 through 3. The remainder of the sections on the VNC page are options you can explore at a later time. Click [[VNC|here]] to set up your VNC and continue with the On Ramp.&lt;br /&gt;
&lt;br /&gt;
== Machines ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt; ===&lt;br /&gt;
This is the machine that allows you to &amp;quot;jump&amp;quot; to the other machines in the local network via &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;. It is simply the public-facing machine and should only be used as such.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; ===&lt;br /&gt;
This is where most of the non-computationally intensive tasks are done, such as text editing, moving files, etc. Effectively, if it takes longer than 5 seconds to run, you should probably think about running it on one of the &amp;lt;code&amp;gt;viz*&amp;lt;/code&amp;gt; nodes.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;viz003&amp;lt;/code&amp;gt; ===&lt;br /&gt;
This is where most computationally intensive tasks are done. However, they should only be run for debugging or post-processing. Production runs should be run on servers outside of the group's local machines ([[CU Boulder RC|Summit]], [[NAS]], [[ALCF]], etc.)&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;viz002&amp;lt;/code&amp;gt; ===&lt;br /&gt;
This is where most computationally intensive tasks are done. However, they should only be run for debugging or post-processing. Production runs should be run on servers outside of the group's local machines ([[CU Boulder RC|Summit]], [[NAS]], [[ALCF]], etc.)&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;lab3&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Windows machine for using Windows programs, such as [[SolidWorks]]. Accessing &amp;lt;code&amp;gt;lab3&amp;lt;/code&amp;gt; is different than with the other machines, see [[Access Lab3]]&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;ciscoX&amp;lt;/code&amp;gt; ===&lt;br /&gt;
These machines (&amp;lt;code&amp;gt;cisco1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cisco2&amp;lt;/code&amp;gt;, etc.) are meant for computing and are accessed by submitting a job via PBS.&lt;br /&gt;
&lt;br /&gt;
== Using PBS for the cisco machines ==&lt;br /&gt;
&lt;br /&gt;
Jobs submitted to PBS can either be scripted or interactive.&lt;br /&gt;
&lt;br /&gt;
=== Interactive Job Example ===&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
matthb2@portal1:~$ soft add +pbs&lt;br /&gt;
matthb2@portal1:~$ qsub -I -l select=2:ncpus=24:mpiprocs=4 -q workq&lt;br /&gt;
qsub: waiting for job 1008.pbs to start&lt;br /&gt;
qsub: job 1008.pbs ready&lt;br /&gt;
&lt;br /&gt;
matthb2@cisco1:~$ module load openmpi&lt;br /&gt;
matthb2@cisco1:~$ mpicc mpihello/mpihello.c&lt;br /&gt;
matthb2@cisco1:~$ mpirun ./a.out&lt;br /&gt;
Hello Parallel World&lt;br /&gt;
Rank: 1 Number is: 1&lt;br /&gt;
Rank: 2 Number is: 1&lt;br /&gt;
Rank: 3 Number is: 1&lt;br /&gt;
Rank: 0 Number is: 1&lt;br /&gt;
Rank: 5 Number is: 1&lt;br /&gt;
Rank: 4 Number is: 1&lt;br /&gt;
Rank: 6 Number is: 1&lt;br /&gt;
Rank: 7 Number is: 1&lt;br /&gt;
matthb2@cisco1:~$&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Compute Facilities]]&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2057</id>
		<title>Building PETSc and libCEED to run HONEE Fluid solver on Viznode</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2057"/>
				<updated>2024-05-28T15:41:21Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you're looking how to build a PETSc version to use with libCEED Fluids Example (HONEE) you've come to the right place! The following steps will summarize and include the commands needed to perform the install process and example run we followed in this [https://fluid.colorado.edu/tutorials/tutorialVideos/PETSc_libCEED_BuildRunTotalview.mp4 video].&lt;br /&gt;
&lt;br /&gt;
== Getting PETSc and LibCEED ==&lt;br /&gt;
&lt;br /&gt;
First things first, let's get the source code for PETSc and libCEED. You can clone the sources from the following:&lt;br /&gt;
 PETSc SSH: git@gitlab.com:petsc/petsc.git&lt;br /&gt;
 PETSc HTTPS: https://gitlab.com/petsc/petsc.git&lt;br /&gt;
 &lt;br /&gt;
 libCEED SSH: git@github.com:CEED/libCEED.git&lt;br /&gt;
 libCEED HTTPS: https://github.com/CEED/libCEED.git&lt;br /&gt;
&lt;br /&gt;
Clone the repositories somewhere that makes sense for you. For example I have mine in &amp;lt;code&amp;gt;jeffhadley/Builds/src/&amp;lt;/code&amp;gt;: &lt;br /&gt;
&lt;br /&gt;
PETSc&lt;br /&gt;
 git clone -b release https://gitlab.com/petsc/petsc.git petsc &lt;br /&gt;
 git pull # obtain new release fixes (since a prior clone or pull) &lt;br /&gt;
libCEED&lt;br /&gt;
 git clone https://github.com/CEED/libCEED.git libCEED&lt;br /&gt;
&lt;br /&gt;
You can replace the https url's with the SSH ones from above if you have SSH setup.&lt;br /&gt;
&lt;br /&gt;
== Setting up Environment ==&lt;br /&gt;
Next we need to make sure we have the correct versions of gcc, openmpi, totalview, and Python. We will soft add gcc, openmpi and totalview with the following commands: &lt;br /&gt;
 soft add +gcc-10.2.0&lt;br /&gt;
 soft add +openmpi-gnu-4.0.2-gnu49-thread&lt;br /&gt;
 soft add +totalview-2023.2.15&lt;br /&gt;
&lt;br /&gt;
The version of Python available as a soft add is not sufficient to run PETSc and libCEED, so we need to enable a newer version through Anaconda. Paste the following block of code at the end of your &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;~/.zshrc&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
 # &amp;gt;&amp;gt;&amp;gt; conda initialize &amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
 # !! Contents within this block are managed by 'conda init' !!&lt;br /&gt;
 __conda_setup=&amp;quot;$('/projects/tools/anaconda3/bin/conda' 'shell.bash' 'hook' 2&amp;gt; /dev/null)&amp;quot;&lt;br /&gt;
 if [ $? -eq 0 ]; then&lt;br /&gt;
     eval &amp;quot;$__conda_setup&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
     if [ -f &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot; ]; then&lt;br /&gt;
         . &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot;&lt;br /&gt;
     else&lt;br /&gt;
         export PATH=&amp;quot;/projects/tools/anaconda3/bin:$PATH&amp;quot;                                                          &lt;br /&gt;
     fi&lt;br /&gt;
 fi&lt;br /&gt;
 unset __conda_setup&lt;br /&gt;
 # &amp;lt;&amp;lt;&amp;lt; conda initialize &amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
&lt;br /&gt;
This block of text will automatically activate Conda when you open a new terminal window, which we do not actually want to happen. To fix this, run the following command:&lt;br /&gt;
 conda config --set auto_activate_base False&lt;br /&gt;
&lt;br /&gt;
You now need to manually activate Conda whenever you want a more up to date version of Python. To do so run the following command:&lt;br /&gt;
 conda activate&lt;br /&gt;
&lt;br /&gt;
Check the freshly enabled version of Python with &amp;lt;code&amp;gt;python --version&amp;lt;/code&amp;gt;.  The most up to date version as of 02/28/2024 is 3.7.9. For more information on using Anaconda and its sub-packages, see the wiki page [https://fluid.colorado.edu/wiki/index.php/Anaconda here].&lt;br /&gt;
&lt;br /&gt;
== Building PETSc ==&lt;br /&gt;
Next we will build PETSc. Navigate into the top level of the cloned PETSc directory. We need to run a set-up script that's different than what comes natively with the clone of the repository, so run the following copy command to grab the set-up script which we will use for the VizNodes: &lt;br /&gt;
 cp /projects/tools/petsc/petsc/testDebugSetup.py .&lt;br /&gt;
&lt;br /&gt;
Next we will run this script to configure the Makefiles we will need to build the PETSc package:&lt;br /&gt;
 python testDebugSetup.py&lt;br /&gt;
&lt;br /&gt;
Once the configure step is complete you will get a message in your terminal stating it's complete, and that you can now compile PETSc with a command similar to the following (Note: copy and paste the one generated in your terminal, the following is just an example of what it will look like):&lt;br /&gt;
 make PETSC_DIR=/users/username/location/of/petsc/ PETSC_ARCH=64DebTest all&lt;br /&gt;
&lt;br /&gt;
This will run the Makefiles and build the PETSc libraries for the VizNodes. Once PETSc succesfully builds, you will have a message stating &amp;quot;Now to check if the libraries are working do:&amp;quot;. We will skip this step and instead export the PETSc directory and architecture names to consol with the following:&lt;br /&gt;
 export PETSC_DIR=/users/username/location/of/petsc&lt;br /&gt;
 export PETSC_ARCH=64DebTest&lt;br /&gt;
&lt;br /&gt;
Note: the PETSC_DIR and PETSC_ARCH will be printed in the &amp;quot;...check if libraries...&amp;quot; message, so best to just copy and paste those into the export command.&lt;br /&gt;
&lt;br /&gt;
We need to export these variables as the fluids example executable we will later create with libCEED is going to require them.&lt;br /&gt;
&lt;br /&gt;
To make sure the libraries built successfully run the following command and confirm there are &amp;lt;code&amp;gt;.so&amp;lt;/code&amp;gt; files there:&lt;br /&gt;
 cd $PETSC_ARCH/lib/&lt;br /&gt;
&lt;br /&gt;
== Building libCEED and the Fluids Solver ==&lt;br /&gt;
Next we will build libCEED, so navigate to the top level of the cloned repository. Nothing special to do here, simply run:&lt;br /&gt;
 make -j&lt;br /&gt;
&lt;br /&gt;
This should take all of 1 second to build. Next we will navigate to the Fluids example folder to build the fluids solver. To do so run the following commands:&lt;br /&gt;
 cd examples/fluids/&lt;br /&gt;
 make -j&lt;br /&gt;
&lt;br /&gt;
The fluids solver executable is called &amp;lt;code&amp;gt;navierstokes&amp;lt;/code&amp;gt;, verify that you can locate it in the &amp;lt;code&amp;gt;.../libCEED/examples/fluids/&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
== Running a Fluids Example case == &lt;br /&gt;
&lt;br /&gt;
We will now set up to run an example case. There's a few files that we need to grab in order to run the example, so within the &amp;lt;code&amp;gt;.../libCEED/examples/fluids/&amp;lt;/code&amp;gt; directory create a new directory and cd into it:&lt;br /&gt;
 mkdir FluidsDemo&lt;br /&gt;
 cd FluidsDemo&lt;br /&gt;
&lt;br /&gt;
Next we need to copy over the initial condition, mesh, and inflow files:&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/blasiusGenIC.yaml .&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/STGInflow_12-30_SPD.dat .&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/STGRand_12-30.dat .&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/everyThird_yspacing.dat .&lt;br /&gt;
&lt;br /&gt;
Timestamp 9:30 in the video linked above dives into the Initial Condition file &amp;lt;code&amp;gt;blasiusGenIC.yaml&amp;lt;/code&amp;gt;. Note that the changes made to the &amp;lt;code&amp;gt;.yaml&amp;lt;/code&amp;gt; file in the video are already applied to the one you just copied.&lt;br /&gt;
&lt;br /&gt;
We will now run the example case. To do so run the following command:&lt;br /&gt;
 mpirun -np 2 ../navierstokes -options_file blasiusGenIC.yaml -ts_max_time 10&lt;br /&gt;
&lt;br /&gt;
Explanation of above command:&lt;br /&gt;
 '-np 2' is running the job on 2 processors&lt;br /&gt;
 '../navierstokes' is the executable we want to run, which is currently 1 directory above the one you should be in.&lt;br /&gt;
 '-options_file blasisuGenIC.yaml' is passing the initial conditions file to the solver&lt;br /&gt;
 '-ts_max_time 10' is changing the ts_max_time initial condition in the IC file from 0 (set in file) to 10. This is an example of &lt;br /&gt;
 modifying an options_file from the command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To run the job in Totalview, simply add &amp;lt;code&amp;gt;-tv&amp;lt;/code&amp;gt; after &amp;lt;code&amp;gt;-np 2&amp;lt;/code&amp;gt; in the previous command. To see how to debug in Totalview I suggest to watch the video linked at the top of this page starting at timestamp 16:20. &lt;br /&gt;
&lt;br /&gt;
Tada, you've built and run the HONEE fluids solver using libCEED and PETSc!&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Spack&amp;diff=2044</id>
		<title>Spack</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Spack&amp;diff=2044"/>
				<updated>2024-03-06T21:41:56Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: Initial set up of this page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Viznodes now has Spack! Wooo! &lt;br /&gt;
&lt;br /&gt;
To install Spack in your environment, run the following command:&lt;br /&gt;
 source /usr/local/spack/v0.16/load.sh&lt;br /&gt;
&lt;br /&gt;
To see how to use Spack to install packages, refer to their [https://spack.readthedocs.io/en/latest/basic_usage.html Basic Usage] website&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=The_On_Ramp&amp;diff=2043</id>
		<title>The On Ramp</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=The_On_Ramp&amp;diff=2043"/>
				<updated>2024-02-28T22:57:45Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Level 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the '''PHASTA On Ramp'''! This page is meant to organize information for getting up to speed with the overall PHASTA workflow, as well as help you up your game as a PHASTA developer.&lt;br /&gt;
&lt;br /&gt;
== Level 0 ==&lt;br /&gt;
Ready to get your feet wet? Maybe you need to brush up on some fundamental skills. Level 0 provides tutorials and information on basic developer skills you will need to work with PHASTA.&lt;br /&gt;
* [[PHASTA_Group_Machines|Logging in]]&lt;br /&gt;
* [[VNC|Setting up your VNC]]&lt;br /&gt;
* [[UNIX|Getting started with Linux]]&lt;br /&gt;
* [[Git | Getting Git]]&lt;br /&gt;
* [[Vim|Getting comfortable with Vim]]&lt;br /&gt;
* [[Fortran|New to Fortran?]]&lt;br /&gt;
* [[Making A New Wiki | Editing this Wiki]]&lt;br /&gt;
&lt;br /&gt;
== Level 1 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Picture5.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So you think you know how to &amp;lt;code&amp;gt;grep&amp;lt;/code&amp;gt; for keywords and &amp;lt;code&amp;gt;mkdir&amp;lt;/code&amp;gt; some folders? Now you're probably ready to jump into PHASTA. &lt;br /&gt;
&lt;br /&gt;
* [[Level 1 Model/Mesh| Model/Mesh Workflow]]&lt;br /&gt;
* [[Level 1 Partition| Partition Workflow]]&lt;br /&gt;
* [[Level 1 Solve| Solve Workflow]]&lt;br /&gt;
* [[Level 1 Post-Process| Post-Process Workflow]]&lt;br /&gt;
&lt;br /&gt;
See the [[The_On_Ramp/Level_1|Level 1 base page]] as well.&lt;br /&gt;
&lt;br /&gt;
== Level 2 ==&lt;br /&gt;
Now that you've plotted some &amp;quot;Colorful Fluid Dynamics&amp;quot; (CFD) you're probably interested in digging into the guts of PHASTA, and getting it running on some more interesting hardware.&lt;br /&gt;
* [https://github.com/PHASTA/phasta Building PHASTA from scratch] (Follow the README at the bottom of the page)&lt;br /&gt;
* [https://github.com/SCOREC/core/wiki/General-Build-instructions#Manual_Install Building Chef and other SCOREC core tools]&lt;br /&gt;
* [[ Building ParaView 5.8.1 and Shoreline Plug-ins on viz003 | Building ParaView with Shoreline Plug-ins ]]&lt;br /&gt;
* [https://fluid.colorado.edu/wiki/index.php/Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode Building PETSc and libCEED to run HONEE Fluid solver on Viznode]&lt;br /&gt;
&lt;br /&gt;
== Level 3 ==&lt;br /&gt;
ParaView isn't cutting it for your research? Now its time to start writing your own analysis code. How to do custom pre and post processing is described here, along with more complex ways of using PHASTA for interesting CFD simulations&lt;br /&gt;
* [[Synthetic Turbulence Inflow Generator | Synthetic Turbulence Generator]]&lt;br /&gt;
* [[VTKpytools| Python + VTK using vtkpytools]]&lt;br /&gt;
&lt;br /&gt;
== Level 4 ==&lt;br /&gt;
You're probably close to defending at this point, so before you go get that sweet industry job, you should drop some of your lofty knowledge here!&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2041</id>
		<title>Building PETSc and libCEED to run HONEE Fluid solver on Viznode</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2041"/>
				<updated>2024-02-28T22:48:16Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: Jeffhadley moved page Building PETSc and libCEED to Building PETSc and libCEED to run HONEE Fluid solver on Viznode: Page title was not descriptive enough&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you're looking how to build a PETSc version to use with libCEED (HONEE) you've come to the right place! The following steps will summarize and include the commands needed to perform the install process and example run we followed in this [https://fluid.colorado.edu/tutorials/tutorialVideos/PETSc_libCEED_BuildRunTotalview.mp4 video].&lt;br /&gt;
&lt;br /&gt;
== Getting PETSc and LibCEED ==&lt;br /&gt;
&lt;br /&gt;
First things first, let's get the source code for PETSc and libCEED. You can clone the sources from the following:&lt;br /&gt;
 PETSc SSH: git@gitlab.com:petsc/petsc.git&lt;br /&gt;
 PETSc HTTPS: https://gitlab.com/petsc/petsc.git&lt;br /&gt;
 &lt;br /&gt;
 libCEED SSH: git@github.com:CEED/libCEED.git&lt;br /&gt;
 libCEED HTTPS: https://github.com/CEED/libCEED.git&lt;br /&gt;
&lt;br /&gt;
Clone the repositories somewhere that makes sense for you. For example I have mine in &amp;lt;code&amp;gt;jeffhadley/Builds/src/&amp;lt;/code&amp;gt;: &lt;br /&gt;
&lt;br /&gt;
PETSc&lt;br /&gt;
 git clone -b release https://gitlab.com/petsc/petsc.git petsc &lt;br /&gt;
 git pull # obtain new release fixes (since a prior clone or pull) &lt;br /&gt;
libCEED&lt;br /&gt;
 git clone https://github.com/CEED/libCEED.git libCEED&lt;br /&gt;
&lt;br /&gt;
You can replace the https url's with the SSH ones from above if you have SSH setup.&lt;br /&gt;
&lt;br /&gt;
== Setting up Environment ==&lt;br /&gt;
Next we need to make sure we have the correct versions of gcc, openmpi, totalview, and Python. We will soft add gcc, openmpi and totalview with the following commands: &lt;br /&gt;
 soft add +gcc-10.2.0&lt;br /&gt;
 soft add +openmpi-gnu-4.0.2-gnu49-thread&lt;br /&gt;
 soft add +totalview-2023.2.15&lt;br /&gt;
&lt;br /&gt;
The version of Python available as a soft add is not sufficient to run PETSc and libCEED, so we need to enable a newer version through Anaconda. Paste the following block of code at the end of your &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;~/.zshrc&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
 # &amp;gt;&amp;gt;&amp;gt; conda initialize &amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
 # !! Contents within this block are managed by 'conda init' !!&lt;br /&gt;
 __conda_setup=&amp;quot;$('/projects/tools/anaconda3/bin/conda' 'shell.bash' 'hook' 2&amp;gt; /dev/null)&amp;quot;&lt;br /&gt;
 if [ $? -eq 0 ]; then&lt;br /&gt;
     eval &amp;quot;$__conda_setup&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
     if [ -f &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot; ]; then&lt;br /&gt;
         . &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot;&lt;br /&gt;
     else&lt;br /&gt;
         export PATH=&amp;quot;/projects/tools/anaconda3/bin:$PATH&amp;quot;                                                          &lt;br /&gt;
     fi&lt;br /&gt;
 fi&lt;br /&gt;
 unset __conda_setup&lt;br /&gt;
 # &amp;lt;&amp;lt;&amp;lt; conda initialize &amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
&lt;br /&gt;
This block of text will automatically activate Conda when you open a new terminal window, which we do not actually want to happen. To fix this, run the following command:&lt;br /&gt;
 conda config --set auto_activate_base False&lt;br /&gt;
&lt;br /&gt;
You now need to manually activate Conda whenever you want a more up to date version of Python. To do so run the following command:&lt;br /&gt;
 conda activate&lt;br /&gt;
&lt;br /&gt;
Check the freshly enabled version of Python with &amp;lt;code&amp;gt;python --version&amp;lt;/code&amp;gt;.  The most up to date version as of 02/28/2024 is 3.7.9. For more information on using Anaconda and its sub-packages, see the wiki page [https://fluid.colorado.edu/wiki/index.php/Anaconda here].&lt;br /&gt;
&lt;br /&gt;
== Building PETSc ==&lt;br /&gt;
Next we will build PETSc. Navigate into the top level of the cloned PETSc directory. We need to run a set-up script that's different than what comes natively with the clone of the repository, so run the following copy command to grab the set-up script which we will use for the VizNodes: &lt;br /&gt;
 cp /projects/tools/petsc/petsc/testDebugSetup.py .&lt;br /&gt;
&lt;br /&gt;
Next we will run this script to configure the Makefiles we will need to build the PETSc package:&lt;br /&gt;
 python testDebugSetup.py&lt;br /&gt;
&lt;br /&gt;
Once the configure step is complete you will get a message in your terminal stating it's complete, and that you can now compile PETSc with a command similar to the following (Note: copy and paste the one generated in your terminal, the following is just an example of what it will look like):&lt;br /&gt;
 make PETSC_DIR=/users/username/location/of/petsc/ PETSC_ARCH=64DebTest all&lt;br /&gt;
&lt;br /&gt;
This will run the Makefiles and build the PETSc libraries for the VizNodes. Once PETSc succesfully builds, you will have a message stating &amp;quot;Now to check if the libraries are working do:&amp;quot;. We will skip this step and instead export the PETSc directory and architecture names to consol with the following:&lt;br /&gt;
 export PETSC_DIR=/users/username/location/of/petsc&lt;br /&gt;
 export PETSC_ARCH=64DebTest&lt;br /&gt;
&lt;br /&gt;
Note: the PETSC_DIR and PETSC_ARCH will be printed in the &amp;quot;...check if libraries...&amp;quot; message, so best to just copy and paste those into the export command.&lt;br /&gt;
&lt;br /&gt;
We need to export these variables as the fluids example executable we will later create with libCEED is going to require them.&lt;br /&gt;
&lt;br /&gt;
To make sure the libraries built successfully run the following command and confirm there are &amp;lt;code&amp;gt;.so&amp;lt;/code&amp;gt; files there:&lt;br /&gt;
 cd $PETSC_ARCH/lib/&lt;br /&gt;
&lt;br /&gt;
== Building libCEED and the Fluids Solver ==&lt;br /&gt;
Next we will build libCEED, so navigate to the top level of the cloned repository. Nothing special to do here, simply run:&lt;br /&gt;
 make -j&lt;br /&gt;
&lt;br /&gt;
This should take all of 1 second to build. Next we will navigate to the Fluids example folder to build the fluids solver. To do so run the following commands:&lt;br /&gt;
 cd examples/fluids/&lt;br /&gt;
 make -j&lt;br /&gt;
&lt;br /&gt;
The fluids solver executable is called &amp;lt;code&amp;gt;navierstokes&amp;lt;/code&amp;gt;, verify that you can locate it in the &amp;lt;code&amp;gt;.../libCEED/examples/fluids/&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
== Running a Fluids Example case == &lt;br /&gt;
&lt;br /&gt;
We will now set up to run an example case. There's a few files that we need to grab in order to run the example, so within the &amp;lt;code&amp;gt;.../libCEED/examples/fluids/&amp;lt;/code&amp;gt; directory create a new directory and cd into it:&lt;br /&gt;
 mkdir FluidsDemo&lt;br /&gt;
 cd FluidsDemo&lt;br /&gt;
&lt;br /&gt;
Next we need to copy over the initial condition, mesh, and inflow files:&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/blasiusGenIC.yaml .&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/STGInflow_12-30_SPD.dat .&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/STGRand_12-30.dat .&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/everyThird_yspacing.dat .&lt;br /&gt;
&lt;br /&gt;
Timestamp 9:30 in the video linked above dives into the Initial Condition file &amp;lt;code&amp;gt;blasiusGenIC.yaml&amp;lt;/code&amp;gt;. Note that the changes made to the &amp;lt;code&amp;gt;.yaml&amp;lt;/code&amp;gt; file in the video are already applied to the one you just copied.&lt;br /&gt;
&lt;br /&gt;
We will now run the example case. To do so run the following command:&lt;br /&gt;
 mpirun -np 2 ../navierstokes -options_file blasiusGenIC.yaml -ts_max_time 10&lt;br /&gt;
&lt;br /&gt;
Explanation of above command:&lt;br /&gt;
 '-np 2' is running the job on 2 processors&lt;br /&gt;
 '../navierstokes' is the executable we want to run, which is currently 1 directory above the one you should be in.&lt;br /&gt;
 '-options_file blasisuGenIC.yaml' is passing the initial conditions file to the solver&lt;br /&gt;
 '-ts_max_time 10' is changing the ts_max_time initial condition in the IC file from 0 (set in file) to 10. This is an example of &lt;br /&gt;
 modifying an options_file from the command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To run the job in Totalview, simply add &amp;lt;code&amp;gt;-tv&amp;lt;/code&amp;gt; after &amp;lt;code&amp;gt;-np 2&amp;lt;/code&amp;gt; in the previous command. To see how to debug in Totalview I suggest to watch the video linked at the top of this page starting at timestamp 16:20. &lt;br /&gt;
&lt;br /&gt;
Tada, you've built and run the HONEE fluids solver using libCEED and PETSc!&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED&amp;diff=2042</id>
		<title>Building PETSc and libCEED</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED&amp;diff=2042"/>
				<updated>2024-02-28T22:48:16Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: Jeffhadley moved page Building PETSc and libCEED to Building PETSc and libCEED to run HONEE Fluid solver on Viznode: Page title was not descriptive enough&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Building PETSc and libCEED to run HONEE Fluid solver on Viznode]]&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2040</id>
		<title>Building PETSc and libCEED to run HONEE Fluid solver on Viznode</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2040"/>
				<updated>2024-02-28T22:45:00Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Running a Fluids Example case */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you're looking how to build a PETSc version to use with libCEED (HONEE) you've come to the right place! The following steps will summarize and include the commands needed to perform the install process and example run we followed in this [https://fluid.colorado.edu/tutorials/tutorialVideos/PETSc_libCEED_BuildRunTotalview.mp4 video].&lt;br /&gt;
&lt;br /&gt;
== Getting PETSc and LibCEED ==&lt;br /&gt;
&lt;br /&gt;
First things first, let's get the source code for PETSc and libCEED. You can clone the sources from the following:&lt;br /&gt;
 PETSc SSH: git@gitlab.com:petsc/petsc.git&lt;br /&gt;
 PETSc HTTPS: https://gitlab.com/petsc/petsc.git&lt;br /&gt;
 &lt;br /&gt;
 libCEED SSH: git@github.com:CEED/libCEED.git&lt;br /&gt;
 libCEED HTTPS: https://github.com/CEED/libCEED.git&lt;br /&gt;
&lt;br /&gt;
Clone the repositories somewhere that makes sense for you. For example I have mine in &amp;lt;code&amp;gt;jeffhadley/Builds/src/&amp;lt;/code&amp;gt;: &lt;br /&gt;
&lt;br /&gt;
PETSc&lt;br /&gt;
 git clone -b release https://gitlab.com/petsc/petsc.git petsc &lt;br /&gt;
 git pull # obtain new release fixes (since a prior clone or pull) &lt;br /&gt;
libCEED&lt;br /&gt;
 git clone https://github.com/CEED/libCEED.git libCEED&lt;br /&gt;
&lt;br /&gt;
You can replace the https url's with the SSH ones from above if you have SSH setup.&lt;br /&gt;
&lt;br /&gt;
== Setting up Environment ==&lt;br /&gt;
Next we need to make sure we have the correct versions of gcc, openmpi, totalview, and Python. We will soft add gcc, openmpi and totalview with the following commands: &lt;br /&gt;
 soft add +gcc-10.2.0&lt;br /&gt;
 soft add +openmpi-gnu-4.0.2-gnu49-thread&lt;br /&gt;
 soft add +totalview-2023.2.15&lt;br /&gt;
&lt;br /&gt;
The version of Python available as a soft add is not sufficient to run PETSc and libCEED, so we need to enable a newer version through Anaconda. Paste the following block of code at the end of your &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;~/.zshrc&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
 # &amp;gt;&amp;gt;&amp;gt; conda initialize &amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
 # !! Contents within this block are managed by 'conda init' !!&lt;br /&gt;
 __conda_setup=&amp;quot;$('/projects/tools/anaconda3/bin/conda' 'shell.bash' 'hook' 2&amp;gt; /dev/null)&amp;quot;&lt;br /&gt;
 if [ $? -eq 0 ]; then&lt;br /&gt;
     eval &amp;quot;$__conda_setup&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
     if [ -f &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot; ]; then&lt;br /&gt;
         . &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot;&lt;br /&gt;
     else&lt;br /&gt;
         export PATH=&amp;quot;/projects/tools/anaconda3/bin:$PATH&amp;quot;                                                          &lt;br /&gt;
     fi&lt;br /&gt;
 fi&lt;br /&gt;
 unset __conda_setup&lt;br /&gt;
 # &amp;lt;&amp;lt;&amp;lt; conda initialize &amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
&lt;br /&gt;
This block of text will automatically activate Conda when you open a new terminal window, which we do not actually want to happen. To fix this, run the following command:&lt;br /&gt;
 conda config --set auto_activate_base False&lt;br /&gt;
&lt;br /&gt;
You now need to manually activate Conda whenever you want a more up to date version of Python. To do so run the following command:&lt;br /&gt;
 conda activate&lt;br /&gt;
&lt;br /&gt;
Check the freshly enabled version of Python with &amp;lt;code&amp;gt;python --version&amp;lt;/code&amp;gt;.  The most up to date version as of 02/28/2024 is 3.7.9. For more information on using Anaconda and its sub-packages, see the wiki page [https://fluid.colorado.edu/wiki/index.php/Anaconda here].&lt;br /&gt;
&lt;br /&gt;
== Building PETSc ==&lt;br /&gt;
Next we will build PETSc. Navigate into the top level of the cloned PETSc directory. We need to run a set-up script that's different than what comes natively with the clone of the repository, so run the following copy command to grab the set-up script which we will use for the VizNodes: &lt;br /&gt;
 cp /projects/tools/petsc/petsc/testDebugSetup.py .&lt;br /&gt;
&lt;br /&gt;
Next we will run this script to configure the Makefiles we will need to build the PETSc package:&lt;br /&gt;
 python testDebugSetup.py&lt;br /&gt;
&lt;br /&gt;
Once the configure step is complete you will get a message in your terminal stating it's complete, and that you can now compile PETSc with a command similar to the following (Note: copy and paste the one generated in your terminal, the following is just an example of what it will look like):&lt;br /&gt;
 make PETSC_DIR=/users/username/location/of/petsc/ PETSC_ARCH=64DebTest all&lt;br /&gt;
&lt;br /&gt;
This will run the Makefiles and build the PETSc libraries for the VizNodes. Once PETSc succesfully builds, you will have a message stating &amp;quot;Now to check if the libraries are working do:&amp;quot;. We will skip this step and instead export the PETSc directory and architecture names to consol with the following:&lt;br /&gt;
 export PETSC_DIR=/users/username/location/of/petsc&lt;br /&gt;
 export PETSC_ARCH=64DebTest&lt;br /&gt;
&lt;br /&gt;
Note: the PETSC_DIR and PETSC_ARCH will be printed in the &amp;quot;...check if libraries...&amp;quot; message, so best to just copy and paste those into the export command.&lt;br /&gt;
&lt;br /&gt;
We need to export these variables as the fluids example executable we will later create with libCEED is going to require them.&lt;br /&gt;
&lt;br /&gt;
To make sure the libraries built successfully run the following command and confirm there are &amp;lt;code&amp;gt;.so&amp;lt;/code&amp;gt; files there:&lt;br /&gt;
 cd $PETSC_ARCH/lib/&lt;br /&gt;
&lt;br /&gt;
== Building libCEED and the Fluids Solver ==&lt;br /&gt;
Next we will build libCEED, so navigate to the top level of the cloned repository. Nothing special to do here, simply run:&lt;br /&gt;
 make -j&lt;br /&gt;
&lt;br /&gt;
This should take all of 1 second to build. Next we will navigate to the Fluids example folder to build the fluids solver. To do so run the following commands:&lt;br /&gt;
 cd examples/fluids/&lt;br /&gt;
 make -j&lt;br /&gt;
&lt;br /&gt;
The fluids solver executable is called &amp;lt;code&amp;gt;navierstokes&amp;lt;/code&amp;gt;, verify that you can locate it in the &amp;lt;code&amp;gt;.../libCEED/examples/fluids/&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
== Running a Fluids Example case == &lt;br /&gt;
&lt;br /&gt;
We will now set up to run an example case. There's a few files that we need to grab in order to run the example, so within the &amp;lt;code&amp;gt;.../libCEED/examples/fluids/&amp;lt;/code&amp;gt; directory create a new directory and cd into it:&lt;br /&gt;
 mkdir FluidsDemo&lt;br /&gt;
 cd FluidsDemo&lt;br /&gt;
&lt;br /&gt;
Next we need to copy over the initial condition, mesh, and inflow files:&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/blasiusGenIC.yaml .&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/STGInflow_12-30_SPD.dat .&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/STGRand_12-30.dat .&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/everyThird_yspacing.dat .&lt;br /&gt;
&lt;br /&gt;
Timestamp 9:30 in the video linked above dives into the Initial Condition file &amp;lt;code&amp;gt;blasiusGenIC.yaml&amp;lt;/code&amp;gt;. Note that the changes made to the &amp;lt;code&amp;gt;.yaml&amp;lt;/code&amp;gt; file in the video are already applied to the one you just copied.&lt;br /&gt;
&lt;br /&gt;
We will now run the example case. To do so run the following command:&lt;br /&gt;
 mpirun -np 2 ../navierstokes -options_file blasiusGenIC.yaml -ts_max_time 10&lt;br /&gt;
&lt;br /&gt;
Explanation of above command:&lt;br /&gt;
 '-np 2' is running the job on 2 processors&lt;br /&gt;
 '../navierstokes' is the executable we want to run, which is currently 1 directory above the one you should be in.&lt;br /&gt;
 '-options_file blasisuGenIC.yaml' is passing the initial conditions file to the solver&lt;br /&gt;
 '-ts_max_time 10' is changing the ts_max_time initial condition in the IC file from 0 (set in file) to 10. This is an example of &lt;br /&gt;
 modifying an options_file from the command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To run the job in Totalview, simply add &amp;lt;code&amp;gt;-tv&amp;lt;/code&amp;gt; after &amp;lt;code&amp;gt;-np 2&amp;lt;/code&amp;gt; in the previous command. To see how to debug in Totalview I suggest to watch the video linked at the top of this page starting at timestamp 16:20. &lt;br /&gt;
&lt;br /&gt;
Tada, you've built and run the HONEE fluids solver using libCEED and PETSc!&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2039</id>
		<title>Building PETSc and libCEED to run HONEE Fluid solver on Viznode</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2039"/>
				<updated>2024-02-28T22:44:10Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Getting PETSc and LibCEED */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you're looking how to build a PETSc version to use with libCEED (HONEE) you've come to the right place! The following steps will summarize and include the commands needed to perform the install process and example run we followed in this [https://fluid.colorado.edu/tutorials/tutorialVideos/PETSc_libCEED_BuildRunTotalview.mp4 video].&lt;br /&gt;
&lt;br /&gt;
== Getting PETSc and LibCEED ==&lt;br /&gt;
&lt;br /&gt;
First things first, let's get the source code for PETSc and libCEED. You can clone the sources from the following:&lt;br /&gt;
 PETSc SSH: git@gitlab.com:petsc/petsc.git&lt;br /&gt;
 PETSc HTTPS: https://gitlab.com/petsc/petsc.git&lt;br /&gt;
 &lt;br /&gt;
 libCEED SSH: git@github.com:CEED/libCEED.git&lt;br /&gt;
 libCEED HTTPS: https://github.com/CEED/libCEED.git&lt;br /&gt;
&lt;br /&gt;
Clone the repositories somewhere that makes sense for you. For example I have mine in &amp;lt;code&amp;gt;jeffhadley/Builds/src/&amp;lt;/code&amp;gt;: &lt;br /&gt;
&lt;br /&gt;
PETSc&lt;br /&gt;
 git clone -b release https://gitlab.com/petsc/petsc.git petsc &lt;br /&gt;
 git pull # obtain new release fixes (since a prior clone or pull) &lt;br /&gt;
libCEED&lt;br /&gt;
 git clone https://github.com/CEED/libCEED.git libCEED&lt;br /&gt;
&lt;br /&gt;
You can replace the https url's with the SSH ones from above if you have SSH setup.&lt;br /&gt;
&lt;br /&gt;
== Setting up Environment ==&lt;br /&gt;
Next we need to make sure we have the correct versions of gcc, openmpi, totalview, and Python. We will soft add gcc, openmpi and totalview with the following commands: &lt;br /&gt;
 soft add +gcc-10.2.0&lt;br /&gt;
 soft add +openmpi-gnu-4.0.2-gnu49-thread&lt;br /&gt;
 soft add +totalview-2023.2.15&lt;br /&gt;
&lt;br /&gt;
The version of Python available as a soft add is not sufficient to run PETSc and libCEED, so we need to enable a newer version through Anaconda. Paste the following block of code at the end of your &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;~/.zshrc&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
 # &amp;gt;&amp;gt;&amp;gt; conda initialize &amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
 # !! Contents within this block are managed by 'conda init' !!&lt;br /&gt;
 __conda_setup=&amp;quot;$('/projects/tools/anaconda3/bin/conda' 'shell.bash' 'hook' 2&amp;gt; /dev/null)&amp;quot;&lt;br /&gt;
 if [ $? -eq 0 ]; then&lt;br /&gt;
     eval &amp;quot;$__conda_setup&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
     if [ -f &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot; ]; then&lt;br /&gt;
         . &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot;&lt;br /&gt;
     else&lt;br /&gt;
         export PATH=&amp;quot;/projects/tools/anaconda3/bin:$PATH&amp;quot;                                                          &lt;br /&gt;
     fi&lt;br /&gt;
 fi&lt;br /&gt;
 unset __conda_setup&lt;br /&gt;
 # &amp;lt;&amp;lt;&amp;lt; conda initialize &amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
&lt;br /&gt;
This block of text will automatically activate Conda when you open a new terminal window, which we do not actually want to happen. To fix this, run the following command:&lt;br /&gt;
 conda config --set auto_activate_base False&lt;br /&gt;
&lt;br /&gt;
You now need to manually activate Conda whenever you want a more up to date version of Python. To do so run the following command:&lt;br /&gt;
 conda activate&lt;br /&gt;
&lt;br /&gt;
Check the freshly enabled version of Python with &amp;lt;code&amp;gt;python --version&amp;lt;/code&amp;gt;.  The most up to date version as of 02/28/2024 is 3.7.9. For more information on using Anaconda and its sub-packages, see the wiki page [https://fluid.colorado.edu/wiki/index.php/Anaconda here].&lt;br /&gt;
&lt;br /&gt;
== Building PETSc ==&lt;br /&gt;
Next we will build PETSc. Navigate into the top level of the cloned PETSc directory. We need to run a set-up script that's different than what comes natively with the clone of the repository, so run the following copy command to grab the set-up script which we will use for the VizNodes: &lt;br /&gt;
 cp /projects/tools/petsc/petsc/testDebugSetup.py .&lt;br /&gt;
&lt;br /&gt;
Next we will run this script to configure the Makefiles we will need to build the PETSc package:&lt;br /&gt;
 python testDebugSetup.py&lt;br /&gt;
&lt;br /&gt;
Once the configure step is complete you will get a message in your terminal stating it's complete, and that you can now compile PETSc with a command similar to the following (Note: copy and paste the one generated in your terminal, the following is just an example of what it will look like):&lt;br /&gt;
 make PETSC_DIR=/users/username/location/of/petsc/ PETSC_ARCH=64DebTest all&lt;br /&gt;
&lt;br /&gt;
This will run the Makefiles and build the PETSc libraries for the VizNodes. Once PETSc succesfully builds, you will have a message stating &amp;quot;Now to check if the libraries are working do:&amp;quot;. We will skip this step and instead export the PETSc directory and architecture names to consol with the following:&lt;br /&gt;
 export PETSC_DIR=/users/username/location/of/petsc&lt;br /&gt;
 export PETSC_ARCH=64DebTest&lt;br /&gt;
&lt;br /&gt;
Note: the PETSC_DIR and PETSC_ARCH will be printed in the &amp;quot;...check if libraries...&amp;quot; message, so best to just copy and paste those into the export command.&lt;br /&gt;
&lt;br /&gt;
We need to export these variables as the fluids example executable we will later create with libCEED is going to require them.&lt;br /&gt;
&lt;br /&gt;
To make sure the libraries built successfully run the following command and confirm there are &amp;lt;code&amp;gt;.so&amp;lt;/code&amp;gt; files there:&lt;br /&gt;
 cd $PETSC_ARCH/lib/&lt;br /&gt;
&lt;br /&gt;
== Building libCEED and the Fluids Solver ==&lt;br /&gt;
Next we will build libCEED, so navigate to the top level of the cloned repository. Nothing special to do here, simply run:&lt;br /&gt;
 make -j&lt;br /&gt;
&lt;br /&gt;
This should take all of 1 second to build. Next we will navigate to the Fluids example folder to build the fluids solver. To do so run the following commands:&lt;br /&gt;
 cd examples/fluids/&lt;br /&gt;
 make -j&lt;br /&gt;
&lt;br /&gt;
The fluids solver executable is called &amp;lt;code&amp;gt;navierstokes&amp;lt;/code&amp;gt;, verify that you can locate it in the &amp;lt;code&amp;gt;.../libCEED/examples/fluids/&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
== Running a Fluids Example case == &lt;br /&gt;
&lt;br /&gt;
We will now set up to run an example case. There's a few files that we need to grab in order to run the example, so within the &amp;lt;code&amp;gt;.../libCEED/examples/fluids/&amp;lt;/code&amp;gt; directory create a new directory and cd into it:&lt;br /&gt;
 mkdir FluidsDemo&lt;br /&gt;
 cd FluidsDemo&lt;br /&gt;
&lt;br /&gt;
Next we need to copy over the initial condition, mesh, and inflow files:&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/blasiusGenIC.yaml .&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/STGInflow_12-30_SPD.dat .&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/STGRand_12-30.dat .&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/everyThird_yspacing.dat .&lt;br /&gt;
&lt;br /&gt;
Timestamp 9:30 in the video linked above dives into the Initial Condition file &amp;lt;code&amp;gt;blasiusGenIC.yaml&amp;lt;/code&amp;gt;. Note that the changes made to the &amp;lt;code&amp;gt;.yaml&amp;lt;/code&amp;gt; file in the video are already applied to the one you just copied.&lt;br /&gt;
&lt;br /&gt;
We will now run the example case. To do so run the following command:&lt;br /&gt;
 mpirun -np 2 ../navierstokes -options_file blasiusGenIC.yaml -ts_max_time 10&lt;br /&gt;
&lt;br /&gt;
Explanation of above command:&lt;br /&gt;
 '-np 2' is running the job on 2 processors&lt;br /&gt;
 '../navierstokes' is the executable we want to run&lt;br /&gt;
 '-options_file blasisuGenIC.yaml' is passing the initial conditions file to the solver&lt;br /&gt;
 '-ts_max_time 10' is changing the ts_max_time initial condition in the IC file from 0 (set in file) to 10. This is an example of &lt;br /&gt;
 modifying an options_file from the command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To run the job in Totalview, simply add &amp;lt;code&amp;gt;-tv&amp;lt;/code&amp;gt; after &amp;lt;code&amp;gt;-np 2&amp;lt;/code&amp;gt; in the previous command. To see how to debug in Totalview I suggest to watch the video linked at the top of this page starting at timestamp 16:20. &lt;br /&gt;
&lt;br /&gt;
Tada, you've built and run the HONEE fluids solver using libCEED and PETSc!&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2038</id>
		<title>Building PETSc and libCEED to run HONEE Fluid solver on Viznode</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2038"/>
				<updated>2024-02-28T22:42:42Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Running a Fluids Example case */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you're looking how to build a PETSc version to use with libCEED (HONEE) you've come to the right place! The following steps will summarize and include the commands needed to perform the install process and example run we followed in this [https://fluid.colorado.edu/tutorials/tutorialVideos/PETSc_libCEED_BuildRunTotalview.mp4 video].&lt;br /&gt;
&lt;br /&gt;
== Getting PETSc and LibCEED ==&lt;br /&gt;
&lt;br /&gt;
First things first, let's get the source code for PETSc and libCEED. You can get clone the sources from the following:&lt;br /&gt;
 PETSc SSH: git@gitlab.com:petsc/petsc.git&lt;br /&gt;
 PETSc HTTPS: https://gitlab.com/petsc/petsc.git&lt;br /&gt;
 &lt;br /&gt;
 libCEED SSH: git@github.com:CEED/libCEED.git&lt;br /&gt;
 libCEED HTTPS: https://github.com/CEED/libCEED.git&lt;br /&gt;
&lt;br /&gt;
Clone the repositories somewhere that makes sense for you. For example I have mine in &amp;lt;code&amp;gt;jeffhadley/Builds/src/&amp;lt;/code&amp;gt;: &lt;br /&gt;
&lt;br /&gt;
PETSc&lt;br /&gt;
 git clone -b release https://gitlab.com/petsc/petsc.git petsc &lt;br /&gt;
 git pull # obtain new release fixes (since a prior clone or pull) &lt;br /&gt;
libCEED&lt;br /&gt;
 git clone https://github.com/CEED/libCEED.git libCEED&lt;br /&gt;
&lt;br /&gt;
You can replace the https url's with the SSH ones from above if you have SSH setup.&lt;br /&gt;
&lt;br /&gt;
== Setting up Environment ==&lt;br /&gt;
Next we need to make sure we have the correct versions of gcc, openmpi, totalview, and Python. We will soft add gcc, openmpi and totalview with the following commands: &lt;br /&gt;
 soft add +gcc-10.2.0&lt;br /&gt;
 soft add +openmpi-gnu-4.0.2-gnu49-thread&lt;br /&gt;
 soft add +totalview-2023.2.15&lt;br /&gt;
&lt;br /&gt;
The version of Python available as a soft add is not sufficient to run PETSc and libCEED, so we need to enable a newer version through Anaconda. Paste the following block of code at the end of your &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;~/.zshrc&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
 # &amp;gt;&amp;gt;&amp;gt; conda initialize &amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
 # !! Contents within this block are managed by 'conda init' !!&lt;br /&gt;
 __conda_setup=&amp;quot;$('/projects/tools/anaconda3/bin/conda' 'shell.bash' 'hook' 2&amp;gt; /dev/null)&amp;quot;&lt;br /&gt;
 if [ $? -eq 0 ]; then&lt;br /&gt;
     eval &amp;quot;$__conda_setup&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
     if [ -f &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot; ]; then&lt;br /&gt;
         . &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot;&lt;br /&gt;
     else&lt;br /&gt;
         export PATH=&amp;quot;/projects/tools/anaconda3/bin:$PATH&amp;quot;                                                          &lt;br /&gt;
     fi&lt;br /&gt;
 fi&lt;br /&gt;
 unset __conda_setup&lt;br /&gt;
 # &amp;lt;&amp;lt;&amp;lt; conda initialize &amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
&lt;br /&gt;
This block of text will automatically activate Conda when you open a new terminal window, which we do not actually want to happen. To fix this, run the following command:&lt;br /&gt;
 conda config --set auto_activate_base False&lt;br /&gt;
&lt;br /&gt;
You now need to manually activate Conda whenever you want a more up to date version of Python. To do so run the following command:&lt;br /&gt;
 conda activate&lt;br /&gt;
&lt;br /&gt;
Check the freshly enabled version of Python with &amp;lt;code&amp;gt;python --version&amp;lt;/code&amp;gt;.  The most up to date version as of 02/28/2024 is 3.7.9. For more information on using Anaconda and its sub-packages, see the wiki page [https://fluid.colorado.edu/wiki/index.php/Anaconda here].&lt;br /&gt;
&lt;br /&gt;
== Building PETSc ==&lt;br /&gt;
Next we will build PETSc. Navigate into the top level of the cloned PETSc directory. We need to run a set-up script that's different than what comes natively with the clone of the repository, so run the following copy command to grab the set-up script which we will use for the VizNodes: &lt;br /&gt;
 cp /projects/tools/petsc/petsc/testDebugSetup.py .&lt;br /&gt;
&lt;br /&gt;
Next we will run this script to configure the Makefiles we will need to build the PETSc package:&lt;br /&gt;
 python testDebugSetup.py&lt;br /&gt;
&lt;br /&gt;
Once the configure step is complete you will get a message in your terminal stating it's complete, and that you can now compile PETSc with a command similar to the following (Note: copy and paste the one generated in your terminal, the following is just an example of what it will look like):&lt;br /&gt;
 make PETSC_DIR=/users/username/location/of/petsc/ PETSC_ARCH=64DebTest all&lt;br /&gt;
&lt;br /&gt;
This will run the Makefiles and build the PETSc libraries for the VizNodes. Once PETSc succesfully builds, you will have a message stating &amp;quot;Now to check if the libraries are working do:&amp;quot;. We will skip this step and instead export the PETSc directory and architecture names to consol with the following:&lt;br /&gt;
 export PETSC_DIR=/users/username/location/of/petsc&lt;br /&gt;
 export PETSC_ARCH=64DebTest&lt;br /&gt;
&lt;br /&gt;
Note: the PETSC_DIR and PETSC_ARCH will be printed in the &amp;quot;...check if libraries...&amp;quot; message, so best to just copy and paste those into the export command.&lt;br /&gt;
&lt;br /&gt;
We need to export these variables as the fluids example executable we will later create with libCEED is going to require them.&lt;br /&gt;
&lt;br /&gt;
To make sure the libraries built successfully run the following command and confirm there are &amp;lt;code&amp;gt;.so&amp;lt;/code&amp;gt; files there:&lt;br /&gt;
 cd $PETSC_ARCH/lib/&lt;br /&gt;
&lt;br /&gt;
== Building libCEED and the Fluids Solver ==&lt;br /&gt;
Next we will build libCEED, so navigate to the top level of the cloned repository. Nothing special to do here, simply run:&lt;br /&gt;
 make -j&lt;br /&gt;
&lt;br /&gt;
This should take all of 1 second to build. Next we will navigate to the Fluids example folder to build the fluids solver. To do so run the following commands:&lt;br /&gt;
 cd examples/fluids/&lt;br /&gt;
 make -j&lt;br /&gt;
&lt;br /&gt;
The fluids solver executable is called &amp;lt;code&amp;gt;navierstokes&amp;lt;/code&amp;gt;, verify that you can locate it in the &amp;lt;code&amp;gt;.../libCEED/examples/fluids/&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
== Running a Fluids Example case == &lt;br /&gt;
&lt;br /&gt;
We will now set up to run an example case. There's a few files that we need to grab in order to run the example, so within the &amp;lt;code&amp;gt;.../libCEED/examples/fluids/&amp;lt;/code&amp;gt; directory create a new directory and cd into it:&lt;br /&gt;
 mkdir FluidsDemo&lt;br /&gt;
 cd FluidsDemo&lt;br /&gt;
&lt;br /&gt;
Next we need to copy over the initial condition, mesh, and inflow files:&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/blasiusGenIC.yaml .&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/STGInflow_12-30_SPD.dat .&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/STGRand_12-30.dat .&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/everyThird_yspacing.dat .&lt;br /&gt;
&lt;br /&gt;
Timestamp 9:30 in the video linked above dives into the Initial Condition file &amp;lt;code&amp;gt;blasiusGenIC.yaml&amp;lt;/code&amp;gt;. Note that the changes made to the &amp;lt;code&amp;gt;.yaml&amp;lt;/code&amp;gt; file in the video are already applied to the one you just copied.&lt;br /&gt;
&lt;br /&gt;
We will now run the example case. To do so run the following command:&lt;br /&gt;
 mpirun -np 2 ../navierstokes -options_file blasiusGenIC.yaml -ts_max_time 10&lt;br /&gt;
&lt;br /&gt;
Explanation of above command:&lt;br /&gt;
 '-np 2' is running the job on 2 processors&lt;br /&gt;
 '../navierstokes' is the executable we want to run&lt;br /&gt;
 '-options_file blasisuGenIC.yaml' is passing the initial conditions file to the solver&lt;br /&gt;
 '-ts_max_time 10' is changing the ts_max_time initial condition in the IC file from 0 (set in file) to 10. This is an example of &lt;br /&gt;
 modifying an options_file from the command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To run the job in Totalview, simply add &amp;lt;code&amp;gt;-tv&amp;lt;/code&amp;gt; after &amp;lt;code&amp;gt;-np 2&amp;lt;/code&amp;gt; in the previous command. To see how to debug in Totalview I suggest to watch the video linked at the top of this page starting at timestamp 16:20. &lt;br /&gt;
&lt;br /&gt;
Tada, you've built and run the HONEE fluids solver using libCEED and PETSc!&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2037</id>
		<title>Building PETSc and libCEED to run HONEE Fluid solver on Viznode</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2037"/>
				<updated>2024-02-28T22:41:35Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you're looking how to build a PETSc version to use with libCEED (HONEE) you've come to the right place! The following steps will summarize and include the commands needed to perform the install process and example run we followed in this [https://fluid.colorado.edu/tutorials/tutorialVideos/PETSc_libCEED_BuildRunTotalview.mp4 video].&lt;br /&gt;
&lt;br /&gt;
== Getting PETSc and LibCEED ==&lt;br /&gt;
&lt;br /&gt;
First things first, let's get the source code for PETSc and libCEED. You can get clone the sources from the following:&lt;br /&gt;
 PETSc SSH: git@gitlab.com:petsc/petsc.git&lt;br /&gt;
 PETSc HTTPS: https://gitlab.com/petsc/petsc.git&lt;br /&gt;
 &lt;br /&gt;
 libCEED SSH: git@github.com:CEED/libCEED.git&lt;br /&gt;
 libCEED HTTPS: https://github.com/CEED/libCEED.git&lt;br /&gt;
&lt;br /&gt;
Clone the repositories somewhere that makes sense for you. For example I have mine in &amp;lt;code&amp;gt;jeffhadley/Builds/src/&amp;lt;/code&amp;gt;: &lt;br /&gt;
&lt;br /&gt;
PETSc&lt;br /&gt;
 git clone -b release https://gitlab.com/petsc/petsc.git petsc &lt;br /&gt;
 git pull # obtain new release fixes (since a prior clone or pull) &lt;br /&gt;
libCEED&lt;br /&gt;
 git clone https://github.com/CEED/libCEED.git libCEED&lt;br /&gt;
&lt;br /&gt;
You can replace the https url's with the SSH ones from above if you have SSH setup.&lt;br /&gt;
&lt;br /&gt;
== Setting up Environment ==&lt;br /&gt;
Next we need to make sure we have the correct versions of gcc, openmpi, totalview, and Python. We will soft add gcc, openmpi and totalview with the following commands: &lt;br /&gt;
 soft add +gcc-10.2.0&lt;br /&gt;
 soft add +openmpi-gnu-4.0.2-gnu49-thread&lt;br /&gt;
 soft add +totalview-2023.2.15&lt;br /&gt;
&lt;br /&gt;
The version of Python available as a soft add is not sufficient to run PETSc and libCEED, so we need to enable a newer version through Anaconda. Paste the following block of code at the end of your &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;~/.zshrc&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
 # &amp;gt;&amp;gt;&amp;gt; conda initialize &amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
 # !! Contents within this block are managed by 'conda init' !!&lt;br /&gt;
 __conda_setup=&amp;quot;$('/projects/tools/anaconda3/bin/conda' 'shell.bash' 'hook' 2&amp;gt; /dev/null)&amp;quot;&lt;br /&gt;
 if [ $? -eq 0 ]; then&lt;br /&gt;
     eval &amp;quot;$__conda_setup&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
     if [ -f &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot; ]; then&lt;br /&gt;
         . &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot;&lt;br /&gt;
     else&lt;br /&gt;
         export PATH=&amp;quot;/projects/tools/anaconda3/bin:$PATH&amp;quot;                                                          &lt;br /&gt;
     fi&lt;br /&gt;
 fi&lt;br /&gt;
 unset __conda_setup&lt;br /&gt;
 # &amp;lt;&amp;lt;&amp;lt; conda initialize &amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
&lt;br /&gt;
This block of text will automatically activate Conda when you open a new terminal window, which we do not actually want to happen. To fix this, run the following command:&lt;br /&gt;
 conda config --set auto_activate_base False&lt;br /&gt;
&lt;br /&gt;
You now need to manually activate Conda whenever you want a more up to date version of Python. To do so run the following command:&lt;br /&gt;
 conda activate&lt;br /&gt;
&lt;br /&gt;
Check the freshly enabled version of Python with &amp;lt;code&amp;gt;python --version&amp;lt;/code&amp;gt;.  The most up to date version as of 02/28/2024 is 3.7.9. For more information on using Anaconda and its sub-packages, see the wiki page [https://fluid.colorado.edu/wiki/index.php/Anaconda here].&lt;br /&gt;
&lt;br /&gt;
== Building PETSc ==&lt;br /&gt;
Next we will build PETSc. Navigate into the top level of the cloned PETSc directory. We need to run a set-up script that's different than what comes natively with the clone of the repository, so run the following copy command to grab the set-up script which we will use for the VizNodes: &lt;br /&gt;
 cp /projects/tools/petsc/petsc/testDebugSetup.py .&lt;br /&gt;
&lt;br /&gt;
Next we will run this script to configure the Makefiles we will need to build the PETSc package:&lt;br /&gt;
 python testDebugSetup.py&lt;br /&gt;
&lt;br /&gt;
Once the configure step is complete you will get a message in your terminal stating it's complete, and that you can now compile PETSc with a command similar to the following (Note: copy and paste the one generated in your terminal, the following is just an example of what it will look like):&lt;br /&gt;
 make PETSC_DIR=/users/username/location/of/petsc/ PETSC_ARCH=64DebTest all&lt;br /&gt;
&lt;br /&gt;
This will run the Makefiles and build the PETSc libraries for the VizNodes. Once PETSc succesfully builds, you will have a message stating &amp;quot;Now to check if the libraries are working do:&amp;quot;. We will skip this step and instead export the PETSc directory and architecture names to consol with the following:&lt;br /&gt;
 export PETSC_DIR=/users/username/location/of/petsc&lt;br /&gt;
 export PETSC_ARCH=64DebTest&lt;br /&gt;
&lt;br /&gt;
Note: the PETSC_DIR and PETSC_ARCH will be printed in the &amp;quot;...check if libraries...&amp;quot; message, so best to just copy and paste those into the export command.&lt;br /&gt;
&lt;br /&gt;
We need to export these variables as the fluids example executable we will later create with libCEED is going to require them.&lt;br /&gt;
&lt;br /&gt;
To make sure the libraries built successfully run the following command and confirm there are &amp;lt;code&amp;gt;.so&amp;lt;/code&amp;gt; files there:&lt;br /&gt;
 cd $PETSC_ARCH/lib/&lt;br /&gt;
&lt;br /&gt;
== Building libCEED and the Fluids Solver ==&lt;br /&gt;
Next we will build libCEED, so navigate to the top level of the cloned repository. Nothing special to do here, simply run:&lt;br /&gt;
 make -j&lt;br /&gt;
&lt;br /&gt;
This should take all of 1 second to build. Next we will navigate to the Fluids example folder to build the fluids solver. To do so run the following commands:&lt;br /&gt;
 cd examples/fluids/&lt;br /&gt;
 make -j&lt;br /&gt;
&lt;br /&gt;
The fluids solver executable is called &amp;lt;code&amp;gt;navierstokes&amp;lt;/code&amp;gt;, verify that you can locate it in the &amp;lt;code&amp;gt;.../libCEED/examples/fluids/&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
== Running a Fluids Example case == &lt;br /&gt;
&lt;br /&gt;
We will now set up to run an example case. There's a few files that we need to grab in order to run the example, so within the &amp;lt;code&amp;gt;.../libCEED/examples/fluids/&amp;lt;/code&amp;gt; directory create a new directory and cd into it:&lt;br /&gt;
 mkdir FluidsDemo&lt;br /&gt;
 cd FluidsDemo&lt;br /&gt;
&lt;br /&gt;
Next we need to copy over the initial condition, mesh, and inflow files:&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/blasiusGenIC.yaml .&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/STGInflow_12-30_SPD.dat .&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/STGRand_12-30.dat .&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/everyThird_yspacing.dat .&lt;br /&gt;
&lt;br /&gt;
Timestamp 9:30 in the video linked above dives into the Initial Condition file &amp;lt;code&amp;gt;blasiusGenIC.yaml&amp;lt;/code&amp;gt;. Note that the changes made to the &amp;lt;code&amp;gt;.yaml&amp;lt;/code&amp;gt; file in the video are already applied to the one you just copied.&lt;br /&gt;
&lt;br /&gt;
We will now run the example case. To do so run the following command:&lt;br /&gt;
 mpirun -np 2 ../navierstokes -options_file blasiusGenIC.yaml -ts_max_time 10&lt;br /&gt;
&lt;br /&gt;
Explanation of above command:&lt;br /&gt;
 '-np 2' is running the job on 2 processors&lt;br /&gt;
 '../navierstokes' is the executable we want to run&lt;br /&gt;
 '-options_file blasisuGenIC.yaml' is passing the initial conditions file to the solver&lt;br /&gt;
 '-ts_max_time 10' is changing the ts_max_time initial condition in the IC file from 0 (set in file) to 10. This is an example of &lt;br /&gt;
 modifying an options_file from the command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To run the job in Totalview, simoply add &amp;lt;code&amp;gt;-tv&amp;lt;/code&amp;gt; after &amp;lt;code&amp;gt;-np 2&amp;lt;/code&amp;gt; in the previous command. To see how to debug in Totalview I suggest to watch the video linked at the top of this page starting at timestamp 16:20. &lt;br /&gt;
&lt;br /&gt;
Tada, you've built and run the HONEE fluids solver using libCEED and PETSc!&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2036</id>
		<title>Building PETSc and libCEED to run HONEE Fluid solver on Viznode</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2036"/>
				<updated>2024-02-28T22:35:16Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Running a Fluids Example case */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you're looking how to build a PETSc version to use with libCEED (HONEE) you've come to the right place! The following steps will summarize and include the commands needed to perform the install process and example run we followed in this [https://fluid.colorado.edu/tutorials/tutorialVideos/PETSc_libCEED_BuildRunTotalview.mp4 video].&lt;br /&gt;
&lt;br /&gt;
== Getting PETSc and LibCEED ==&lt;br /&gt;
&lt;br /&gt;
First things first, let's get the source code for PETSc and libCEED. You can get clone the sources from the following:&lt;br /&gt;
 PETSc SSH: git@gitlab.com:petsc/petsc.git&lt;br /&gt;
 PETSc HTTPS: https://gitlab.com/petsc/petsc.git&lt;br /&gt;
 &lt;br /&gt;
 libCEED SSH: git@github.com:CEED/libCEED.git&lt;br /&gt;
 libCEED HTTPS: https://github.com/CEED/libCEED.git&lt;br /&gt;
&lt;br /&gt;
Clone the repositories somewhere that makes sense for you. For example I have mine in &amp;lt;code&amp;gt;jeffhadley/Builds/src/&amp;lt;/code&amp;gt;: &lt;br /&gt;
&lt;br /&gt;
PETSc&lt;br /&gt;
 git clone -b release https://gitlab.com/petsc/petsc.git petsc &lt;br /&gt;
 git pull # obtain new release fixes (since a prior clone or pull) &lt;br /&gt;
libCEED&lt;br /&gt;
 git clone https://github.com/CEED/libCEED.git libCEED&lt;br /&gt;
&lt;br /&gt;
You can replace the https url's with the SSH ones from above if you have SSH setup.&lt;br /&gt;
&lt;br /&gt;
== Setting up Environment ==&lt;br /&gt;
Next we need to make sure we have the correct versions of gcc, openmpi, totalview, and Python. We will soft add gcc, openmpi and totalview with the following commands: &lt;br /&gt;
 soft add +gcc-10.2.0&lt;br /&gt;
 soft add +openmpi-gnu-4.0.2-gnu49-thread&lt;br /&gt;
 soft add +totalview-2023.2.15&lt;br /&gt;
&lt;br /&gt;
The version of Python available as a soft add is not sufficient to run PETSc and libCEED, so we need to enable a newer version through Anaconda. Paste the following block of code at the end of your &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;~/.zshrc&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
 # &amp;gt;&amp;gt;&amp;gt; conda initialize &amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
 # !! Contents within this block are managed by 'conda init' !!&lt;br /&gt;
 __conda_setup=&amp;quot;$('/projects/tools/anaconda3/bin/conda' 'shell.bash' 'hook' 2&amp;gt; /dev/null)&amp;quot;&lt;br /&gt;
 if [ $? -eq 0 ]; then&lt;br /&gt;
     eval &amp;quot;$__conda_setup&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
     if [ -f &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot; ]; then&lt;br /&gt;
         . &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot;&lt;br /&gt;
     else&lt;br /&gt;
         export PATH=&amp;quot;/projects/tools/anaconda3/bin:$PATH&amp;quot;                                                          &lt;br /&gt;
     fi&lt;br /&gt;
 fi&lt;br /&gt;
 unset __conda_setup&lt;br /&gt;
 # &amp;lt;&amp;lt;&amp;lt; conda initialize &amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
&lt;br /&gt;
This block of text will automatically activate Conda when you open a new terminal window, which we do not actually want to happen. To fix this, run the following command:&lt;br /&gt;
 conda config --set auto_activate_base False&lt;br /&gt;
&lt;br /&gt;
You now need to manually activate Conda whenever you want a more up to date version of Python. To do so run the following command:&lt;br /&gt;
 conda activate&lt;br /&gt;
&lt;br /&gt;
Check the freshly enabled version of Python with &amp;lt;code&amp;gt;python --version&amp;lt;/code&amp;gt;.  The most up to date version as of 02/28/2024 is 3.7.9. For more information on using Anaconda and its sub-packages, see the wiki page [https://fluid.colorado.edu/wiki/index.php/Anaconda here].&lt;br /&gt;
&lt;br /&gt;
== Building PETSc ==&lt;br /&gt;
Next we will build PETSc. Navigate into the top level of the cloned PETSc directory. We need to run a set-up script that's different than what comes natively with the clone of the repository, so run the following copy command to grab the set-up script which we will use for the VizNodes: &lt;br /&gt;
 cp /projects/tools/petsc/petsc/testDebugSetup.py .&lt;br /&gt;
&lt;br /&gt;
Next we will run this script to configure the Makefiles we will need to build the PETSc package:&lt;br /&gt;
 python testDebugSetup.py&lt;br /&gt;
&lt;br /&gt;
Once the configure step is complete you will get a message in your terminal stating it's complete, and that you can now compile PETSc with a command similar to the following (Note: copy and paste the one generated in your terminal, the following is just an example of what it will look like):&lt;br /&gt;
 make PETSC_DIR=/users/username/location/of/petsc/ PETSC_ARCH=64DebTest all&lt;br /&gt;
&lt;br /&gt;
This will run the Makefiles and build the PETSc libraries for the VizNodes. Once PETSc succesfully builds, you will have a message stating &amp;quot;Now to check if the libraries are working do:&amp;quot;. We will skip this step and instead export the PETSc directory and architecture names to consol with the following:&lt;br /&gt;
 export PETSC_DIR=/users/username/location/of/petsc&lt;br /&gt;
 export PETSC_ARCH=64DebTest&lt;br /&gt;
&lt;br /&gt;
Note: the PETSC_DIR and PETSC_ARCH will be printed in the &amp;quot;...check if libraries...&amp;quot; message, so best to just copy and paste those into the export command.&lt;br /&gt;
&lt;br /&gt;
We need to export these variables as the fluids example executable we will later create with libCEED is going to require them.&lt;br /&gt;
&lt;br /&gt;
To make sure the libraries built successfully run the following command and confirm there are &amp;lt;code&amp;gt;.so&amp;lt;/code&amp;gt; files there:&lt;br /&gt;
 cd $PETSC_ARCH/lib/&lt;br /&gt;
&lt;br /&gt;
== Building libCEED and the Fluids Solver ==&lt;br /&gt;
Next we will build libCEED, so navigate to the top level of the cloned repository. Nothing special to do here, simply run:&lt;br /&gt;
 make -j&lt;br /&gt;
&lt;br /&gt;
This should take all of 1 second to build. Next we will navigate to the Fluids example folder to build the fluids solver. To do so run the following commands:&lt;br /&gt;
 cd examples/fluids/&lt;br /&gt;
 make -j&lt;br /&gt;
&lt;br /&gt;
The fluids solver executable is called &amp;lt;code&amp;gt;navierstokes&amp;lt;/code&amp;gt;, verify that you can locate it in the &amp;lt;code&amp;gt;.../libCEED/examples/fluids/&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
== Running a Fluids Example case == &lt;br /&gt;
&lt;br /&gt;
We will now set up to run an example case. There's a few files that we need to grab in order to run the example, so within the &amp;lt;code&amp;gt;.../libCEED/examples/fluids/&amp;lt;/code&amp;gt; directory create a new directory and cd into it:&lt;br /&gt;
 mkdir FluidsDemo&lt;br /&gt;
 cd FluidsDemo&lt;br /&gt;
&lt;br /&gt;
Next we need to copy over the initial condition, mesh, and inflow files:&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/blasiusGenIC.yaml .&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/STGInflow_12-30_SPD.dat .&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/STGRand_12-30.dat .&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/everyThird_yspacing.dat .&lt;br /&gt;
&lt;br /&gt;
Timestamp 9:30 in the video linked above dives into the Initial Condition file &amp;lt;code&amp;gt;blasiusGenIC.yaml&amp;lt;/code&amp;gt;. Note that the changes made to the &amp;lt;code&amp;gt;.yaml&amp;lt;/code&amp;gt; file in the video are already applied to the one you just copied.&lt;br /&gt;
&lt;br /&gt;
We will now run the example case. To do so run the following command:&lt;br /&gt;
 mpirun -np 2 ../navierstokes -options_file blasiusGenIC.yaml -ts_max_time 10&lt;br /&gt;
&lt;br /&gt;
Explanation of above command:&lt;br /&gt;
 '-np 2' is running the job on 2 processors&lt;br /&gt;
 '../navierstokes' is the executable we want to run&lt;br /&gt;
 '-options_file blasisuGenIC.yaml' is passing the initial conditions file to the solver&lt;br /&gt;
 '-ts_max_time 10' is changing the ts_max_time initial condition in the IC file from 0 (set in file) to 10. This is an example of &lt;br /&gt;
 modifying an options_file from the command line.&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2035</id>
		<title>Building PETSc and libCEED to run HONEE Fluid solver on Viznode</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2035"/>
				<updated>2024-02-28T22:24:36Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Running a Fluids Example case */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you're looking how to build a PETSc version to use with libCEED (HONEE) you've come to the right place! The following steps will summarize and include the commands needed to perform the install process and example run we followed in this [https://fluid.colorado.edu/tutorials/tutorialVideos/PETSc_libCEED_BuildRunTotalview.mp4 video].&lt;br /&gt;
&lt;br /&gt;
== Getting PETSc and LibCEED ==&lt;br /&gt;
&lt;br /&gt;
First things first, let's get the source code for PETSc and libCEED. You can get clone the sources from the following:&lt;br /&gt;
 PETSc SSH: git@gitlab.com:petsc/petsc.git&lt;br /&gt;
 PETSc HTTPS: https://gitlab.com/petsc/petsc.git&lt;br /&gt;
 &lt;br /&gt;
 libCEED SSH: git@github.com:CEED/libCEED.git&lt;br /&gt;
 libCEED HTTPS: https://github.com/CEED/libCEED.git&lt;br /&gt;
&lt;br /&gt;
Clone the repositories somewhere that makes sense for you. For example I have mine in &amp;lt;code&amp;gt;jeffhadley/Builds/src/&amp;lt;/code&amp;gt;: &lt;br /&gt;
&lt;br /&gt;
PETSc&lt;br /&gt;
 git clone -b release https://gitlab.com/petsc/petsc.git petsc &lt;br /&gt;
 git pull # obtain new release fixes (since a prior clone or pull) &lt;br /&gt;
libCEED&lt;br /&gt;
 git clone https://github.com/CEED/libCEED.git libCEED&lt;br /&gt;
&lt;br /&gt;
You can replace the https url's with the SSH ones from above if you have SSH setup.&lt;br /&gt;
&lt;br /&gt;
== Setting up Environment ==&lt;br /&gt;
Next we need to make sure we have the correct versions of gcc, openmpi, totalview, and Python. We will soft add gcc, openmpi and totalview with the following commands: &lt;br /&gt;
 soft add +gcc-10.2.0&lt;br /&gt;
 soft add +openmpi-gnu-4.0.2-gnu49-thread&lt;br /&gt;
 soft add +totalview-2023.2.15&lt;br /&gt;
&lt;br /&gt;
The version of Python available as a soft add is not sufficient to run PETSc and libCEED, so we need to enable a newer version through Anaconda. Paste the following block of code at the end of your &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;~/.zshrc&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
 # &amp;gt;&amp;gt;&amp;gt; conda initialize &amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
 # !! Contents within this block are managed by 'conda init' !!&lt;br /&gt;
 __conda_setup=&amp;quot;$('/projects/tools/anaconda3/bin/conda' 'shell.bash' 'hook' 2&amp;gt; /dev/null)&amp;quot;&lt;br /&gt;
 if [ $? -eq 0 ]; then&lt;br /&gt;
     eval &amp;quot;$__conda_setup&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
     if [ -f &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot; ]; then&lt;br /&gt;
         . &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot;&lt;br /&gt;
     else&lt;br /&gt;
         export PATH=&amp;quot;/projects/tools/anaconda3/bin:$PATH&amp;quot;                                                          &lt;br /&gt;
     fi&lt;br /&gt;
 fi&lt;br /&gt;
 unset __conda_setup&lt;br /&gt;
 # &amp;lt;&amp;lt;&amp;lt; conda initialize &amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
&lt;br /&gt;
This block of text will automatically activate Conda when you open a new terminal window, which we do not actually want to happen. To fix this, run the following command:&lt;br /&gt;
 conda config --set auto_activate_base False&lt;br /&gt;
&lt;br /&gt;
You now need to manually activate Conda whenever you want a more up to date version of Python. To do so run the following command:&lt;br /&gt;
 conda activate&lt;br /&gt;
&lt;br /&gt;
Check the freshly enabled version of Python with &amp;lt;code&amp;gt;python --version&amp;lt;/code&amp;gt;.  The most up to date version as of 02/28/2024 is 3.7.9. For more information on using Anaconda and its sub-packages, see the wiki page [https://fluid.colorado.edu/wiki/index.php/Anaconda here].&lt;br /&gt;
&lt;br /&gt;
== Building PETSc ==&lt;br /&gt;
Next we will build PETSc. Navigate into the top level of the cloned PETSc directory. We need to run a set-up script that's different than what comes natively with the clone of the repository, so run the following copy command to grab the set-up script which we will use for the VizNodes: &lt;br /&gt;
 cp /projects/tools/petsc/petsc/testDebugSetup.py .&lt;br /&gt;
&lt;br /&gt;
Next we will run this script to configure the Makefiles we will need to build the PETSc package:&lt;br /&gt;
 python testDebugSetup.py&lt;br /&gt;
&lt;br /&gt;
Once the configure step is complete you will get a message in your terminal stating it's complete, and that you can now compile PETSc with a command similar to the following (Note: copy and paste the one generated in your terminal, the following is just an example of what it will look like):&lt;br /&gt;
 make PETSC_DIR=/users/username/location/of/petsc/ PETSC_ARCH=64DebTest all&lt;br /&gt;
&lt;br /&gt;
This will run the Makefiles and build the PETSc libraries for the VizNodes. Once PETSc succesfully builds, you will have a message stating &amp;quot;Now to check if the libraries are working do:&amp;quot;. We will skip this step and instead export the PETSc directory and architecture names to consol with the following:&lt;br /&gt;
 export PETSC_DIR=/users/username/location/of/petsc&lt;br /&gt;
 export PETSC_ARCH=64DebTest&lt;br /&gt;
&lt;br /&gt;
Note: the PETSC_DIR and PETSC_ARCH will be printed in the &amp;quot;...check if libraries...&amp;quot; message, so best to just copy and paste those into the export command.&lt;br /&gt;
&lt;br /&gt;
We need to export these variables as the fluids example executable we will later create with libCEED is going to require them.&lt;br /&gt;
&lt;br /&gt;
To make sure the libraries built successfully run the following command and confirm there are &amp;lt;code&amp;gt;.so&amp;lt;/code&amp;gt; files there:&lt;br /&gt;
 cd $PETSC_ARCH/lib/&lt;br /&gt;
&lt;br /&gt;
== Building libCEED and the Fluids Solver ==&lt;br /&gt;
Next we will build libCEED, so navigate to the top level of the cloned repository. Nothing special to do here, simply run:&lt;br /&gt;
 make -j&lt;br /&gt;
&lt;br /&gt;
This should take all of 1 second to build. Next we will navigate to the Fluids example folder to build the fluids solver. To do so run the following commands:&lt;br /&gt;
 cd examples/fluids/&lt;br /&gt;
 make -j&lt;br /&gt;
&lt;br /&gt;
The fluids solver executable is called &amp;lt;code&amp;gt;navierstokes&amp;lt;/code&amp;gt;, verify that you can locate it in the &amp;lt;code&amp;gt;.../libCEED/examples/fluids/&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
== Running a Fluids Example case == &lt;br /&gt;
&lt;br /&gt;
We will now set up to run an example case. There's a few files that we need to grab in order to run the example, so within the &amp;lt;code&amp;gt;.../libCEED/examples/fluids/&amp;lt;/code&amp;gt; directory create a new directory and cd into it:&lt;br /&gt;
 mkdir FluidsDemo&lt;br /&gt;
 cd FluidsDemo&lt;br /&gt;
&lt;br /&gt;
Next we need to copy over the initial condition, mesh, and inflow files:&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/blasiusGenIC.yaml .&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/STGInflow_12-30_SPD.dat .&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/STGRand_12-30.dat .&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/everyThird_yspacing.dat .&lt;br /&gt;
&lt;br /&gt;
Timestamp 9:30 in the video linked above dives into the Initial Condition file &amp;lt;code&amp;gt;blasiusGenIC.yaml&amp;lt;/code&amp;gt;. Note that the changes made to the &amp;lt;code&amp;gt;.yaml&amp;lt;/code&amp;gt; file in the video are already applied to the one you just copied.&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2034</id>
		<title>Building PETSc and libCEED to run HONEE Fluid solver on Viznode</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2034"/>
				<updated>2024-02-28T21:46:27Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Running a Fluids Example case */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you're looking how to build a PETSc version to use with libCEED (HONEE) you've come to the right place! The following steps will summarize and include the commands needed to perform the install process and example run we followed in this [https://fluid.colorado.edu/tutorials/tutorialVideos/PETSc_libCEED_BuildRunTotalview.mp4 video].&lt;br /&gt;
&lt;br /&gt;
== Getting PETSc and LibCEED ==&lt;br /&gt;
&lt;br /&gt;
First things first, let's get the source code for PETSc and libCEED. You can get clone the sources from the following:&lt;br /&gt;
 PETSc SSH: git@gitlab.com:petsc/petsc.git&lt;br /&gt;
 PETSc HTTPS: https://gitlab.com/petsc/petsc.git&lt;br /&gt;
 &lt;br /&gt;
 libCEED SSH: git@github.com:CEED/libCEED.git&lt;br /&gt;
 libCEED HTTPS: https://github.com/CEED/libCEED.git&lt;br /&gt;
&lt;br /&gt;
Clone the repositories somewhere that makes sense for you. For example I have mine in &amp;lt;code&amp;gt;jeffhadley/Builds/src/&amp;lt;/code&amp;gt;: &lt;br /&gt;
&lt;br /&gt;
PETSc&lt;br /&gt;
 git clone -b release https://gitlab.com/petsc/petsc.git petsc &lt;br /&gt;
 git pull # obtain new release fixes (since a prior clone or pull) &lt;br /&gt;
libCEED&lt;br /&gt;
 git clone https://github.com/CEED/libCEED.git libCEED&lt;br /&gt;
&lt;br /&gt;
You can replace the https url's with the SSH ones from above if you have SSH setup.&lt;br /&gt;
&lt;br /&gt;
== Setting up Environment ==&lt;br /&gt;
Next we need to make sure we have the correct versions of gcc, openmpi, totalview, and Python. We will soft add gcc, openmpi and totalview with the following commands: &lt;br /&gt;
 soft add +gcc-10.2.0&lt;br /&gt;
 soft add +openmpi-gnu-4.0.2-gnu49-thread&lt;br /&gt;
 soft add +totalview-2023.2.15&lt;br /&gt;
&lt;br /&gt;
The version of Python available as a soft add is not sufficient to run PETSc and libCEED, so we need to enable a newer version through Anaconda. Paste the following block of code at the end of your &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;~/.zshrc&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
 # &amp;gt;&amp;gt;&amp;gt; conda initialize &amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
 # !! Contents within this block are managed by 'conda init' !!&lt;br /&gt;
 __conda_setup=&amp;quot;$('/projects/tools/anaconda3/bin/conda' 'shell.bash' 'hook' 2&amp;gt; /dev/null)&amp;quot;&lt;br /&gt;
 if [ $? -eq 0 ]; then&lt;br /&gt;
     eval &amp;quot;$__conda_setup&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
     if [ -f &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot; ]; then&lt;br /&gt;
         . &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot;&lt;br /&gt;
     else&lt;br /&gt;
         export PATH=&amp;quot;/projects/tools/anaconda3/bin:$PATH&amp;quot;                                                          &lt;br /&gt;
     fi&lt;br /&gt;
 fi&lt;br /&gt;
 unset __conda_setup&lt;br /&gt;
 # &amp;lt;&amp;lt;&amp;lt; conda initialize &amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
&lt;br /&gt;
This block of text will automatically activate Conda when you open a new terminal window, which we do not actually want to happen. To fix this, run the following command:&lt;br /&gt;
 conda config --set auto_activate_base False&lt;br /&gt;
&lt;br /&gt;
You now need to manually activate Conda whenever you want a more up to date version of Python. To do so run the following command:&lt;br /&gt;
 conda activate&lt;br /&gt;
&lt;br /&gt;
Check the freshly enabled version of Python with &amp;lt;code&amp;gt;python --version&amp;lt;/code&amp;gt;.  The most up to date version as of 02/28/2024 is 3.7.9. For more information on using Anaconda and its sub-packages, see the wiki page [https://fluid.colorado.edu/wiki/index.php/Anaconda here].&lt;br /&gt;
&lt;br /&gt;
== Building PETSc ==&lt;br /&gt;
Next we will build PETSc. Navigate into the top level of the cloned PETSc directory. We need to run a set-up script that's different than what comes natively with the clone of the repository, so run the following copy command to grab the set-up script which we will use for the VizNodes: &lt;br /&gt;
 cp /projects/tools/petsc/petsc/testDebugSetup.py .&lt;br /&gt;
&lt;br /&gt;
Next we will run this script to configure the Makefiles we will need to build the PETSc package:&lt;br /&gt;
 python testDebugSetup.py&lt;br /&gt;
&lt;br /&gt;
Once the configure step is complete you will get a message in your terminal stating it's complete, and that you can now compile PETSc with a command similar to the following (Note: copy and paste the one generated in your terminal, the following is just an example of what it will look like):&lt;br /&gt;
 make PETSC_DIR=/users/username/location/of/petsc/ PETSC_ARCH=64DebTest all&lt;br /&gt;
&lt;br /&gt;
This will run the Makefiles and build the PETSc libraries for the VizNodes. Once PETSc succesfully builds, you will have a message stating &amp;quot;Now to check if the libraries are working do:&amp;quot;. We will skip this step and instead export the PETSc directory and architecture names to consol with the following:&lt;br /&gt;
 export PETSC_DIR=/users/username/location/of/petsc&lt;br /&gt;
 export PETSC_ARCH=64DebTest&lt;br /&gt;
&lt;br /&gt;
Note: the PETSC_DIR and PETSC_ARCH will be printed in the &amp;quot;...check if libraries...&amp;quot; message, so best to just copy and paste those into the export command.&lt;br /&gt;
&lt;br /&gt;
We need to export these variables as the fluids example executable we will later create with libCEED is going to require them.&lt;br /&gt;
&lt;br /&gt;
To make sure the libraries built successfully run the following command and confirm there are &amp;lt;code&amp;gt;.so&amp;lt;/code&amp;gt; files there:&lt;br /&gt;
 cd $PETSC_ARCH/lib/&lt;br /&gt;
&lt;br /&gt;
== Building libCEED and the Fluids Solver ==&lt;br /&gt;
Next we will build libCEED, so navigate to the top level of the cloned repository. Nothing special to do here, simply run:&lt;br /&gt;
 make -j&lt;br /&gt;
&lt;br /&gt;
This should take all of 1 second to build. Next we will navigate to the Fluids example folder to build the fluids solver. To do so run the following commands:&lt;br /&gt;
 cd examples/fluids/&lt;br /&gt;
 make -j&lt;br /&gt;
&lt;br /&gt;
The fluids solver executable is called &amp;lt;code&amp;gt;navierstokes&amp;lt;/code&amp;gt;, verify that you can locate it in the &amp;lt;code&amp;gt;.../libCEED/examples/fluids/&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
== Running a Fluids Example case == &lt;br /&gt;
&lt;br /&gt;
We will now set up to run an example case. There's a few files that we need to grab in order to run the example, so within the &amp;lt;code&amp;gt;.../libCEED/examples/fluids/&amp;lt;/code&amp;gt; directory create a new directory and cd into it:&lt;br /&gt;
 mkdir FluidsDemo&lt;br /&gt;
 cd FluidsDemo&lt;br /&gt;
&lt;br /&gt;
Next we need to copy over the initial condition, mesh, and inflow files:&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/blasiusGenIC.yaml .&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/STGInflow_12-30_SPD.dat .&lt;br /&gt;
 cp /projects/tutorials/PETSc_libCEED_Demo/everyThird_yspacing.dat .&lt;br /&gt;
&lt;br /&gt;
Timestamp 9:30 in the video linked above dives into the Initial Condition file &amp;lt;code&amp;gt;blasiusGenIC.yaml&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2033</id>
		<title>Building PETSc and libCEED to run HONEE Fluid solver on Viznode</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2033"/>
				<updated>2024-02-28T21:42:07Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Running a Fluids Example case */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you're looking how to build a PETSc version to use with libCEED (HONEE) you've come to the right place! The following steps will summarize and include the commands needed to perform the install process and example run we followed in this [https://fluid.colorado.edu/tutorials/tutorialVideos/PETSc_libCEED_BuildRunTotalview.mp4 video].&lt;br /&gt;
&lt;br /&gt;
== Getting PETSc and LibCEED ==&lt;br /&gt;
&lt;br /&gt;
First things first, let's get the source code for PETSc and libCEED. You can get clone the sources from the following:&lt;br /&gt;
 PETSc SSH: git@gitlab.com:petsc/petsc.git&lt;br /&gt;
 PETSc HTTPS: https://gitlab.com/petsc/petsc.git&lt;br /&gt;
 &lt;br /&gt;
 libCEED SSH: git@github.com:CEED/libCEED.git&lt;br /&gt;
 libCEED HTTPS: https://github.com/CEED/libCEED.git&lt;br /&gt;
&lt;br /&gt;
Clone the repositories somewhere that makes sense for you. For example I have mine in &amp;lt;code&amp;gt;jeffhadley/Builds/src/&amp;lt;/code&amp;gt;: &lt;br /&gt;
&lt;br /&gt;
PETSc&lt;br /&gt;
 git clone -b release https://gitlab.com/petsc/petsc.git petsc &lt;br /&gt;
 git pull # obtain new release fixes (since a prior clone or pull) &lt;br /&gt;
libCEED&lt;br /&gt;
 git clone https://github.com/CEED/libCEED.git libCEED&lt;br /&gt;
&lt;br /&gt;
You can replace the https url's with the SSH ones from above if you have SSH setup.&lt;br /&gt;
&lt;br /&gt;
== Setting up Environment ==&lt;br /&gt;
Next we need to make sure we have the correct versions of gcc, openmpi, totalview, and Python. We will soft add gcc, openmpi and totalview with the following commands: &lt;br /&gt;
 soft add +gcc-10.2.0&lt;br /&gt;
 soft add +openmpi-gnu-4.0.2-gnu49-thread&lt;br /&gt;
 soft add +totalview-2023.2.15&lt;br /&gt;
&lt;br /&gt;
The version of Python available as a soft add is not sufficient to run PETSc and libCEED, so we need to enable a newer version through Anaconda. Paste the following block of code at the end of your &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;~/.zshrc&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
 # &amp;gt;&amp;gt;&amp;gt; conda initialize &amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
 # !! Contents within this block are managed by 'conda init' !!&lt;br /&gt;
 __conda_setup=&amp;quot;$('/projects/tools/anaconda3/bin/conda' 'shell.bash' 'hook' 2&amp;gt; /dev/null)&amp;quot;&lt;br /&gt;
 if [ $? -eq 0 ]; then&lt;br /&gt;
     eval &amp;quot;$__conda_setup&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
     if [ -f &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot; ]; then&lt;br /&gt;
         . &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot;&lt;br /&gt;
     else&lt;br /&gt;
         export PATH=&amp;quot;/projects/tools/anaconda3/bin:$PATH&amp;quot;                                                          &lt;br /&gt;
     fi&lt;br /&gt;
 fi&lt;br /&gt;
 unset __conda_setup&lt;br /&gt;
 # &amp;lt;&amp;lt;&amp;lt; conda initialize &amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
&lt;br /&gt;
This block of text will automatically activate Conda when you open a new terminal window, which we do not actually want to happen. To fix this, run the following command:&lt;br /&gt;
 conda config --set auto_activate_base False&lt;br /&gt;
&lt;br /&gt;
You now need to manually activate Conda whenever you want a more up to date version of Python. To do so run the following command:&lt;br /&gt;
 conda activate&lt;br /&gt;
&lt;br /&gt;
Check the freshly enabled version of Python with &amp;lt;code&amp;gt;python --version&amp;lt;/code&amp;gt;.  The most up to date version as of 02/28/2024 is 3.7.9. For more information on using Anaconda and its sub-packages, see the wiki page [https://fluid.colorado.edu/wiki/index.php/Anaconda here].&lt;br /&gt;
&lt;br /&gt;
== Building PETSc ==&lt;br /&gt;
Next we will build PETSc. Navigate into the top level of the cloned PETSc directory. We need to run a set-up script that's different than what comes natively with the clone of the repository, so run the following copy command to grab the set-up script which we will use for the VizNodes: &lt;br /&gt;
 cp /projects/tools/petsc/petsc/testDebugSetup.py .&lt;br /&gt;
&lt;br /&gt;
Next we will run this script to configure the Makefiles we will need to build the PETSc package:&lt;br /&gt;
 python testDebugSetup.py&lt;br /&gt;
&lt;br /&gt;
Once the configure step is complete you will get a message in your terminal stating it's complete, and that you can now compile PETSc with a command similar to the following (Note: copy and paste the one generated in your terminal, the following is just an example of what it will look like):&lt;br /&gt;
 make PETSC_DIR=/users/username/location/of/petsc/ PETSC_ARCH=64DebTest all&lt;br /&gt;
&lt;br /&gt;
This will run the Makefiles and build the PETSc libraries for the VizNodes. Once PETSc succesfully builds, you will have a message stating &amp;quot;Now to check if the libraries are working do:&amp;quot;. We will skip this step and instead export the PETSc directory and architecture names to consol with the following:&lt;br /&gt;
 export PETSC_DIR=/users/username/location/of/petsc&lt;br /&gt;
 export PETSC_ARCH=64DebTest&lt;br /&gt;
&lt;br /&gt;
Note: the PETSC_DIR and PETSC_ARCH will be printed in the &amp;quot;...check if libraries...&amp;quot; message, so best to just copy and paste those into the export command.&lt;br /&gt;
&lt;br /&gt;
We need to export these variables as the fluids example executable we will later create with libCEED is going to require them.&lt;br /&gt;
&lt;br /&gt;
To make sure the libraries built successfully run the following command and confirm there are &amp;lt;code&amp;gt;.so&amp;lt;/code&amp;gt; files there:&lt;br /&gt;
 cd $PETSC_ARCH/lib/&lt;br /&gt;
&lt;br /&gt;
== Building libCEED and the Fluids Solver ==&lt;br /&gt;
Next we will build libCEED, so navigate to the top level of the cloned repository. Nothing special to do here, simply run:&lt;br /&gt;
 make -j&lt;br /&gt;
&lt;br /&gt;
This should take all of 1 second to build. Next we will navigate to the Fluids example folder to build the fluids solver. To do so run the following commands:&lt;br /&gt;
 cd examples/fluids/&lt;br /&gt;
 make -j&lt;br /&gt;
&lt;br /&gt;
The fluids solver executable is called &amp;lt;code&amp;gt;navierstokes&amp;lt;/code&amp;gt;, verify that you can locate it in the &amp;lt;code&amp;gt;.../libCEED/examples/fluids/&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
== Running a Fluids Example case == &lt;br /&gt;
&lt;br /&gt;
We will now set up to run an example case. There's a few files that we need to grab in order to run the example, so within the &amp;lt;code&amp;gt;.../libCEED/examples/fluids/&amp;lt;/code&amp;gt; directory create a new directory and cd into it:&lt;br /&gt;
 mkdir FluidsDemo&lt;br /&gt;
 cd FluidsDemo&lt;br /&gt;
&lt;br /&gt;
Next we need to copy over the initial condition, mesh, and inflow files:&lt;br /&gt;
 cp /projects/tools/libCEED/libCEED/examples/fluids/blaResizedQ1wQ3mesh/blasiusGenIC.yaml .&lt;br /&gt;
 cp /projects/tools/libCEED/libCEED/examples/fluids/blaResizedQ1wQ3mesh/STGInflow_12-30_SPD.dat .&lt;br /&gt;
 cp /projects/tools/libCEED/libCEED/examples/fluids/blaResizedQ1wQ3mesh/everyThird_yspacing.dat .&lt;br /&gt;
&lt;br /&gt;
Timestamp 9:30 in the video linked above dives into the Initial Condition file &amp;lt;code&amp;gt;blasiusGenIC.yaml&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2032</id>
		<title>Building PETSc and libCEED to run HONEE Fluid solver on Viznode</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2032"/>
				<updated>2024-02-28T21:11:23Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Building libCEED and the Fluids Solver */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you're looking how to build a PETSc version to use with libCEED (HONEE) you've come to the right place! The following steps will summarize and include the commands needed to perform the install process and example run we followed in this [https://fluid.colorado.edu/tutorials/tutorialVideos/PETSc_libCEED_BuildRunTotalview.mp4 video].&lt;br /&gt;
&lt;br /&gt;
== Getting PETSc and LibCEED ==&lt;br /&gt;
&lt;br /&gt;
First things first, let's get the source code for PETSc and libCEED. You can get clone the sources from the following:&lt;br /&gt;
 PETSc SSH: git@gitlab.com:petsc/petsc.git&lt;br /&gt;
 PETSc HTTPS: https://gitlab.com/petsc/petsc.git&lt;br /&gt;
 &lt;br /&gt;
 libCEED SSH: git@github.com:CEED/libCEED.git&lt;br /&gt;
 libCEED HTTPS: https://github.com/CEED/libCEED.git&lt;br /&gt;
&lt;br /&gt;
Clone the repositories somewhere that makes sense for you. For example I have mine in &amp;lt;code&amp;gt;jeffhadley/Builds/src/&amp;lt;/code&amp;gt;: &lt;br /&gt;
&lt;br /&gt;
PETSc&lt;br /&gt;
 git clone -b release https://gitlab.com/petsc/petsc.git petsc &lt;br /&gt;
 git pull # obtain new release fixes (since a prior clone or pull) &lt;br /&gt;
libCEED&lt;br /&gt;
 git clone https://github.com/CEED/libCEED.git libCEED&lt;br /&gt;
&lt;br /&gt;
You can replace the https url's with the SSH ones from above if you have SSH setup.&lt;br /&gt;
&lt;br /&gt;
== Setting up Environment ==&lt;br /&gt;
Next we need to make sure we have the correct versions of gcc, openmpi, totalview, and Python. We will soft add gcc, openmpi and totalview with the following commands: &lt;br /&gt;
 soft add +gcc-10.2.0&lt;br /&gt;
 soft add +openmpi-gnu-4.0.2-gnu49-thread&lt;br /&gt;
 soft add +totalview-2023.2.15&lt;br /&gt;
&lt;br /&gt;
The version of Python available as a soft add is not sufficient to run PETSc and libCEED, so we need to enable a newer version through Anaconda. Paste the following block of code at the end of your &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;~/.zshrc&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
 # &amp;gt;&amp;gt;&amp;gt; conda initialize &amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
 # !! Contents within this block are managed by 'conda init' !!&lt;br /&gt;
 __conda_setup=&amp;quot;$('/projects/tools/anaconda3/bin/conda' 'shell.bash' 'hook' 2&amp;gt; /dev/null)&amp;quot;&lt;br /&gt;
 if [ $? -eq 0 ]; then&lt;br /&gt;
     eval &amp;quot;$__conda_setup&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
     if [ -f &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot; ]; then&lt;br /&gt;
         . &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot;&lt;br /&gt;
     else&lt;br /&gt;
         export PATH=&amp;quot;/projects/tools/anaconda3/bin:$PATH&amp;quot;                                                          &lt;br /&gt;
     fi&lt;br /&gt;
 fi&lt;br /&gt;
 unset __conda_setup&lt;br /&gt;
 # &amp;lt;&amp;lt;&amp;lt; conda initialize &amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
&lt;br /&gt;
This block of text will automatically activate Conda when you open a new terminal window, which we do not actually want to happen. To fix this, run the following command:&lt;br /&gt;
 conda config --set auto_activate_base False&lt;br /&gt;
&lt;br /&gt;
You now need to manually activate Conda whenever you want a more up to date version of Python. To do so run the following command:&lt;br /&gt;
 conda activate&lt;br /&gt;
&lt;br /&gt;
Check the freshly enabled version of Python with &amp;lt;code&amp;gt;python --version&amp;lt;/code&amp;gt;.  The most up to date version as of 02/28/2024 is 3.7.9. For more information on using Anaconda and its sub-packages, see the wiki page [https://fluid.colorado.edu/wiki/index.php/Anaconda here].&lt;br /&gt;
&lt;br /&gt;
== Building PETSc ==&lt;br /&gt;
Next we will build PETSc. Navigate into the top level of the cloned PETSc directory. We need to run a set-up script that's different than what comes natively with the clone of the repository, so run the following copy command to grab the set-up script which we will use for the VizNodes: &lt;br /&gt;
 cp /projects/tools/petsc/petsc/testDebugSetup.py .&lt;br /&gt;
&lt;br /&gt;
Next we will run this script to configure the Makefiles we will need to build the PETSc package:&lt;br /&gt;
 python testDebugSetup.py&lt;br /&gt;
&lt;br /&gt;
Once the configure step is complete you will get a message in your terminal stating it's complete, and that you can now compile PETSc with a command similar to the following (Note: copy and paste the one generated in your terminal, the following is just an example of what it will look like):&lt;br /&gt;
 make PETSC_DIR=/users/username/location/of/petsc/ PETSC_ARCH=64DebTest all&lt;br /&gt;
&lt;br /&gt;
This will run the Makefiles and build the PETSc libraries for the VizNodes. Once PETSc succesfully builds, you will have a message stating &amp;quot;Now to check if the libraries are working do:&amp;quot;. We will skip this step and instead export the PETSc directory and architecture names to consol with the following:&lt;br /&gt;
 export PETSC_DIR=/users/username/location/of/petsc&lt;br /&gt;
 export PETSC_ARCH=64DebTest&lt;br /&gt;
&lt;br /&gt;
Note: the PETSC_DIR and PETSC_ARCH will be printed in the &amp;quot;...check if libraries...&amp;quot; message, so best to just copy and paste those into the export command.&lt;br /&gt;
&lt;br /&gt;
We need to export these variables as the fluids example executable we will later create with libCEED is going to require them.&lt;br /&gt;
&lt;br /&gt;
To make sure the libraries built successfully run the following command and confirm there are &amp;lt;code&amp;gt;.so&amp;lt;/code&amp;gt; files there:&lt;br /&gt;
 cd $PETSC_ARCH/lib/&lt;br /&gt;
&lt;br /&gt;
== Building libCEED and the Fluids Solver ==&lt;br /&gt;
Next we will build libCEED, so navigate to the top level of the cloned repository. Nothing special to do here, simply run:&lt;br /&gt;
 make -j&lt;br /&gt;
&lt;br /&gt;
This should take all of 1 second to build. Next we will navigate to the Fluids example folder to build the fluids solver. To do so run the following commands:&lt;br /&gt;
 cd examples/fluids/&lt;br /&gt;
 make -j&lt;br /&gt;
&lt;br /&gt;
The fluids solver executable is called &amp;lt;code&amp;gt;navierstokes&amp;lt;/code&amp;gt;, verify that you can locate it in the &amp;lt;code&amp;gt;.../libCEED/examples/fluids/&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
== Running a Fluids Example case == &lt;br /&gt;
&lt;br /&gt;
We will now set up to run an example case. There's a few files that we need to grab in order to run the example, so within the &amp;lt;code&amp;gt;.../libCEED/examples/fluids/&amp;lt;/code&amp;gt; directory create a new directory and cd into it:&lt;br /&gt;
 mkdir FluidsDemo&lt;br /&gt;
 cd FluidsDemo&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2031</id>
		<title>Building PETSc and libCEED to run HONEE Fluid solver on Viznode</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2031"/>
				<updated>2024-02-28T21:08:24Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Getting PETSc and LibCEED */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you're looking how to build a PETSc version to use with libCEED (HONEE) you've come to the right place! The following steps will summarize and include the commands needed to perform the install process and example run we followed in this [https://fluid.colorado.edu/tutorials/tutorialVideos/PETSc_libCEED_BuildRunTotalview.mp4 video].&lt;br /&gt;
&lt;br /&gt;
== Getting PETSc and LibCEED ==&lt;br /&gt;
&lt;br /&gt;
First things first, let's get the source code for PETSc and libCEED. You can get clone the sources from the following:&lt;br /&gt;
 PETSc SSH: git@gitlab.com:petsc/petsc.git&lt;br /&gt;
 PETSc HTTPS: https://gitlab.com/petsc/petsc.git&lt;br /&gt;
 &lt;br /&gt;
 libCEED SSH: git@github.com:CEED/libCEED.git&lt;br /&gt;
 libCEED HTTPS: https://github.com/CEED/libCEED.git&lt;br /&gt;
&lt;br /&gt;
Clone the repositories somewhere that makes sense for you. For example I have mine in &amp;lt;code&amp;gt;jeffhadley/Builds/src/&amp;lt;/code&amp;gt;: &lt;br /&gt;
&lt;br /&gt;
PETSc&lt;br /&gt;
 git clone -b release https://gitlab.com/petsc/petsc.git petsc &lt;br /&gt;
 git pull # obtain new release fixes (since a prior clone or pull) &lt;br /&gt;
libCEED&lt;br /&gt;
 git clone https://github.com/CEED/libCEED.git libCEED&lt;br /&gt;
&lt;br /&gt;
You can replace the https url's with the SSH ones from above if you have SSH setup.&lt;br /&gt;
&lt;br /&gt;
== Setting up Environment ==&lt;br /&gt;
Next we need to make sure we have the correct versions of gcc, openmpi, totalview, and Python. We will soft add gcc, openmpi and totalview with the following commands: &lt;br /&gt;
 soft add +gcc-10.2.0&lt;br /&gt;
 soft add +openmpi-gnu-4.0.2-gnu49-thread&lt;br /&gt;
 soft add +totalview-2023.2.15&lt;br /&gt;
&lt;br /&gt;
The version of Python available as a soft add is not sufficient to run PETSc and libCEED, so we need to enable a newer version through Anaconda. Paste the following block of code at the end of your &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;~/.zshrc&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
 # &amp;gt;&amp;gt;&amp;gt; conda initialize &amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
 # !! Contents within this block are managed by 'conda init' !!&lt;br /&gt;
 __conda_setup=&amp;quot;$('/projects/tools/anaconda3/bin/conda' 'shell.bash' 'hook' 2&amp;gt; /dev/null)&amp;quot;&lt;br /&gt;
 if [ $? -eq 0 ]; then&lt;br /&gt;
     eval &amp;quot;$__conda_setup&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
     if [ -f &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot; ]; then&lt;br /&gt;
         . &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot;&lt;br /&gt;
     else&lt;br /&gt;
         export PATH=&amp;quot;/projects/tools/anaconda3/bin:$PATH&amp;quot;                                                          &lt;br /&gt;
     fi&lt;br /&gt;
 fi&lt;br /&gt;
 unset __conda_setup&lt;br /&gt;
 # &amp;lt;&amp;lt;&amp;lt; conda initialize &amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
&lt;br /&gt;
This block of text will automatically activate Conda when you open a new terminal window, which we do not actually want to happen. To fix this, run the following command:&lt;br /&gt;
 conda config --set auto_activate_base False&lt;br /&gt;
&lt;br /&gt;
You now need to manually activate Conda whenever you want a more up to date version of Python. To do so run the following command:&lt;br /&gt;
 conda activate&lt;br /&gt;
&lt;br /&gt;
Check the freshly enabled version of Python with &amp;lt;code&amp;gt;python --version&amp;lt;/code&amp;gt;.  The most up to date version as of 02/28/2024 is 3.7.9. For more information on using Anaconda and its sub-packages, see the wiki page [https://fluid.colorado.edu/wiki/index.php/Anaconda here].&lt;br /&gt;
&lt;br /&gt;
== Building PETSc ==&lt;br /&gt;
Next we will build PETSc. Navigate into the top level of the cloned PETSc directory. We need to run a set-up script that's different than what comes natively with the clone of the repository, so run the following copy command to grab the set-up script which we will use for the VizNodes: &lt;br /&gt;
 cp /projects/tools/petsc/petsc/testDebugSetup.py .&lt;br /&gt;
&lt;br /&gt;
Next we will run this script to configure the Makefiles we will need to build the PETSc package:&lt;br /&gt;
 python testDebugSetup.py&lt;br /&gt;
&lt;br /&gt;
Once the configure step is complete you will get a message in your terminal stating it's complete, and that you can now compile PETSc with a command similar to the following (Note: copy and paste the one generated in your terminal, the following is just an example of what it will look like):&lt;br /&gt;
 make PETSC_DIR=/users/username/location/of/petsc/ PETSC_ARCH=64DebTest all&lt;br /&gt;
&lt;br /&gt;
This will run the Makefiles and build the PETSc libraries for the VizNodes. Once PETSc succesfully builds, you will have a message stating &amp;quot;Now to check if the libraries are working do:&amp;quot;. We will skip this step and instead export the PETSc directory and architecture names to consol with the following:&lt;br /&gt;
 export PETSC_DIR=/users/username/location/of/petsc&lt;br /&gt;
 export PETSC_ARCH=64DebTest&lt;br /&gt;
&lt;br /&gt;
Note: the PETSC_DIR and PETSC_ARCH will be printed in the &amp;quot;...check if libraries...&amp;quot; message, so best to just copy and paste those into the export command.&lt;br /&gt;
&lt;br /&gt;
We need to export these variables as the fluids example executable we will later create with libCEED is going to require them.&lt;br /&gt;
&lt;br /&gt;
To make sure the libraries built successfully run the following command and confirm there are &amp;lt;code&amp;gt;.so&amp;lt;/code&amp;gt; files there:&lt;br /&gt;
 cd $PETSC_ARCH/lib/&lt;br /&gt;
&lt;br /&gt;
== Building libCEED and the Fluids Solver ==&lt;br /&gt;
Next we will build libCEED, so navigate to the top level of the cloned repository. Nothing special to do here, simply run:&lt;br /&gt;
 make -j&lt;br /&gt;
&lt;br /&gt;
This should take all of 1 second to build. Next we will navigate to the Fluids example folder to build the fluids solver. Run the following commands:&lt;br /&gt;
 cd examples/fluids/&lt;br /&gt;
 make -j&lt;br /&gt;
&lt;br /&gt;
The fluids solver executable is called &amp;lt;code&amp;gt;navierstokes&amp;lt;/code&amp;gt;, verify that you can locate it in the &amp;lt;code&amp;gt;.../libCEED/examples/fluids/&amp;lt;/code&amp;gt; directory.&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2030</id>
		<title>Building PETSc and libCEED to run HONEE Fluid solver on Viznode</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2030"/>
				<updated>2024-02-28T21:08:11Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Building PETSc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you're looking how to build a PETSc version to use with libCEED (HONEE) you've come to the right place! The following steps will summarize and include the commands needed to perform the install process and example run we followed in this [https://fluid.colorado.edu/tutorials/tutorialVideos/PETSc_libCEED_BuildRunTotalview.mp4 video].&lt;br /&gt;
&lt;br /&gt;
== Getting PETSc and LibCEED ==&lt;br /&gt;
&lt;br /&gt;
First things first, let's get the source code for PETSc and libCEED. You can get clone the sources from the following:&lt;br /&gt;
 PETSc SSH: git@gitlab.com:petsc/petsc.git&lt;br /&gt;
 PETSc HTTPS: https://gitlab.com/petsc/petsc.git&lt;br /&gt;
 &lt;br /&gt;
 libCEED SSH: git@github.com:CEED/libCEED.git&lt;br /&gt;
 libCEED HTTPS: https://github.com/CEED/libCEED.git&lt;br /&gt;
&lt;br /&gt;
Clone the repositories somewhere that makes sense for you. For example I have mine in &amp;lt;code&amp;gt;jeffhadley/Builds/src/&amp;lt;/code&amp;gt;: &lt;br /&gt;
&lt;br /&gt;
PETSc&lt;br /&gt;
 git clone -b release https://gitlab.com/petsc/petsc.git petsc &lt;br /&gt;
 git pull # obtain new release fixes (since a prior clone or pull) &lt;br /&gt;
libCEED&lt;br /&gt;
 git clone https://github.com/CEED/libCEED.git &lt;br /&gt;
&lt;br /&gt;
You can replace the https url's with the SSH ones from above if you have SSH setup. &lt;br /&gt;
&lt;br /&gt;
== Setting up Environment ==&lt;br /&gt;
Next we need to make sure we have the correct versions of gcc, openmpi, totalview, and Python. We will soft add gcc, openmpi and totalview with the following commands: &lt;br /&gt;
 soft add +gcc-10.2.0&lt;br /&gt;
 soft add +openmpi-gnu-4.0.2-gnu49-thread&lt;br /&gt;
 soft add +totalview-2023.2.15&lt;br /&gt;
&lt;br /&gt;
The version of Python available as a soft add is not sufficient to run PETSc and libCEED, so we need to enable a newer version through Anaconda. Paste the following block of code at the end of your &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;~/.zshrc&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
 # &amp;gt;&amp;gt;&amp;gt; conda initialize &amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
 # !! Contents within this block are managed by 'conda init' !!&lt;br /&gt;
 __conda_setup=&amp;quot;$('/projects/tools/anaconda3/bin/conda' 'shell.bash' 'hook' 2&amp;gt; /dev/null)&amp;quot;&lt;br /&gt;
 if [ $? -eq 0 ]; then&lt;br /&gt;
     eval &amp;quot;$__conda_setup&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
     if [ -f &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot; ]; then&lt;br /&gt;
         . &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot;&lt;br /&gt;
     else&lt;br /&gt;
         export PATH=&amp;quot;/projects/tools/anaconda3/bin:$PATH&amp;quot;                                                          &lt;br /&gt;
     fi&lt;br /&gt;
 fi&lt;br /&gt;
 unset __conda_setup&lt;br /&gt;
 # &amp;lt;&amp;lt;&amp;lt; conda initialize &amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
&lt;br /&gt;
This block of text will automatically activate Conda when you open a new terminal window, which we do not actually want to happen. To fix this, run the following command:&lt;br /&gt;
 conda config --set auto_activate_base False&lt;br /&gt;
&lt;br /&gt;
You now need to manually activate Conda whenever you want a more up to date version of Python. To do so run the following command:&lt;br /&gt;
 conda activate&lt;br /&gt;
&lt;br /&gt;
Check the freshly enabled version of Python with &amp;lt;code&amp;gt;python --version&amp;lt;/code&amp;gt;.  The most up to date version as of 02/28/2024 is 3.7.9. For more information on using Anaconda and its sub-packages, see the wiki page [https://fluid.colorado.edu/wiki/index.php/Anaconda here].&lt;br /&gt;
&lt;br /&gt;
== Building PETSc ==&lt;br /&gt;
Next we will build PETSc. Navigate into the top level of the cloned PETSc directory. We need to run a set-up script that's different than what comes natively with the clone of the repository, so run the following copy command to grab the set-up script which we will use for the VizNodes: &lt;br /&gt;
 cp /projects/tools/petsc/petsc/testDebugSetup.py .&lt;br /&gt;
&lt;br /&gt;
Next we will run this script to configure the Makefiles we will need to build the PETSc package:&lt;br /&gt;
 python testDebugSetup.py&lt;br /&gt;
&lt;br /&gt;
Once the configure step is complete you will get a message in your terminal stating it's complete, and that you can now compile PETSc with a command similar to the following (Note: copy and paste the one generated in your terminal, the following is just an example of what it will look like):&lt;br /&gt;
 make PETSC_DIR=/users/username/location/of/petsc/ PETSC_ARCH=64DebTest all&lt;br /&gt;
&lt;br /&gt;
This will run the Makefiles and build the PETSc libraries for the VizNodes. Once PETSc succesfully builds, you will have a message stating &amp;quot;Now to check if the libraries are working do:&amp;quot;. We will skip this step and instead export the PETSc directory and architecture names to consol with the following:&lt;br /&gt;
 export PETSC_DIR=/users/username/location/of/petsc&lt;br /&gt;
 export PETSC_ARCH=64DebTest&lt;br /&gt;
&lt;br /&gt;
Note: the PETSC_DIR and PETSC_ARCH will be printed in the &amp;quot;...check if libraries...&amp;quot; message, so best to just copy and paste those into the export command.&lt;br /&gt;
&lt;br /&gt;
We need to export these variables as the fluids example executable we will later create with libCEED is going to require them.&lt;br /&gt;
&lt;br /&gt;
To make sure the libraries built successfully run the following command and confirm there are &amp;lt;code&amp;gt;.so&amp;lt;/code&amp;gt; files there:&lt;br /&gt;
 cd $PETSC_ARCH/lib/&lt;br /&gt;
&lt;br /&gt;
== Building libCEED and the Fluids Solver ==&lt;br /&gt;
Next we will build libCEED, so navigate to the top level of the cloned repository. Nothing special to do here, simply run:&lt;br /&gt;
 make -j&lt;br /&gt;
&lt;br /&gt;
This should take all of 1 second to build. Next we will navigate to the Fluids example folder to build the fluids solver. Run the following commands:&lt;br /&gt;
 cd examples/fluids/&lt;br /&gt;
 make -j&lt;br /&gt;
&lt;br /&gt;
The fluids solver executable is called &amp;lt;code&amp;gt;navierstokes&amp;lt;/code&amp;gt;, verify that you can locate it in the &amp;lt;code&amp;gt;.../libCEED/examples/fluids/&amp;lt;/code&amp;gt; directory.&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2029</id>
		<title>Building PETSc and libCEED to run HONEE Fluid solver on Viznode</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2029"/>
				<updated>2024-02-28T20:55:46Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Building PETSc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you're looking how to build a PETSc version to use with libCEED (HONEE) you've come to the right place! The following steps will summarize and include the commands needed to perform the install process and example run we followed in this [https://fluid.colorado.edu/tutorials/tutorialVideos/PETSc_libCEED_BuildRunTotalview.mp4 video].&lt;br /&gt;
&lt;br /&gt;
== Getting PETSc and LibCEED ==&lt;br /&gt;
&lt;br /&gt;
First things first, let's get the source code for PETSc and libCEED. You can get clone the sources from the following:&lt;br /&gt;
 PETSc SSH: git@gitlab.com:petsc/petsc.git&lt;br /&gt;
 PETSc HTTPS: https://gitlab.com/petsc/petsc.git&lt;br /&gt;
 &lt;br /&gt;
 libCEED SSH: git@github.com:CEED/libCEED.git&lt;br /&gt;
 libCEED HTTPS: https://github.com/CEED/libCEED.git&lt;br /&gt;
&lt;br /&gt;
Clone the repositories somewhere that makes sense for you. For example I have mine in &amp;lt;code&amp;gt;jeffhadley/Builds/src/&amp;lt;/code&amp;gt;: &lt;br /&gt;
&lt;br /&gt;
PETSc&lt;br /&gt;
 git clone -b release https://gitlab.com/petsc/petsc.git petsc &lt;br /&gt;
 git pull # obtain new release fixes (since a prior clone or pull) &lt;br /&gt;
libCEED&lt;br /&gt;
 git clone https://github.com/CEED/libCEED.git &lt;br /&gt;
&lt;br /&gt;
You can replace the https url's with the SSH ones from above if you have SSH setup. &lt;br /&gt;
&lt;br /&gt;
== Setting up Environment ==&lt;br /&gt;
Next we need to make sure we have the correct versions of gcc, openmpi, totalview, and Python. We will soft add gcc, openmpi and totalview with the following commands: &lt;br /&gt;
 soft add +gcc-10.2.0&lt;br /&gt;
 soft add +openmpi-gnu-4.0.2-gnu49-thread&lt;br /&gt;
 soft add +totalview-2023.2.15&lt;br /&gt;
&lt;br /&gt;
The version of Python available as a soft add is not sufficient to run PETSc and libCEED, so we need to enable a newer version through Anaconda. Paste the following block of code at the end of your &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;~/.zshrc&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
 # &amp;gt;&amp;gt;&amp;gt; conda initialize &amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
 # !! Contents within this block are managed by 'conda init' !!&lt;br /&gt;
 __conda_setup=&amp;quot;$('/projects/tools/anaconda3/bin/conda' 'shell.bash' 'hook' 2&amp;gt; /dev/null)&amp;quot;&lt;br /&gt;
 if [ $? -eq 0 ]; then&lt;br /&gt;
     eval &amp;quot;$__conda_setup&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
     if [ -f &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot; ]; then&lt;br /&gt;
         . &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot;&lt;br /&gt;
     else&lt;br /&gt;
         export PATH=&amp;quot;/projects/tools/anaconda3/bin:$PATH&amp;quot;                                                          &lt;br /&gt;
     fi&lt;br /&gt;
 fi&lt;br /&gt;
 unset __conda_setup&lt;br /&gt;
 # &amp;lt;&amp;lt;&amp;lt; conda initialize &amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
&lt;br /&gt;
This block of text will automatically activate Conda when you open a new terminal window, which we do not actually want to happen. To fix this, run the following command:&lt;br /&gt;
 conda config --set auto_activate_base False&lt;br /&gt;
&lt;br /&gt;
You now need to manually activate Conda whenever you want a more up to date version of Python. To do so run the following command:&lt;br /&gt;
 conda activate&lt;br /&gt;
&lt;br /&gt;
Check the freshly enabled version of Python with &amp;lt;code&amp;gt;python --version&amp;lt;/code&amp;gt;.  The most up to date version as of 02/28/2024 is 3.7.9. For more information on using Anaconda and its sub-packages, see the wiki page [https://fluid.colorado.edu/wiki/index.php/Anaconda here].&lt;br /&gt;
&lt;br /&gt;
== Building PETSc ==&lt;br /&gt;
Next we will build PETSc. Navigate into the top level of the cloned PETSc directory. We need to run a set-up script that's different than what comes natively with the clone of the repository, so run the following copy command to grab the set-up script which we will use for the VizNodes: &lt;br /&gt;
 cp /projects/tools/petsc/petsc/testDebugSetup.py .&lt;br /&gt;
&lt;br /&gt;
Next we will run this script to configure the Makefiles we will need to build the PETSc package:&lt;br /&gt;
 python testDebugSetup.py&lt;br /&gt;
&lt;br /&gt;
Once the configure step is complete you will get a message in your terminal stating it's complete, and that you can now compile PETSc with a command similar to the following (Note: copy and paste the one generated in your terminal, the following is just an example of what it will look like):&lt;br /&gt;
 make PETSC_DIR=/users/username/location/of/petsc/ PETSC_ARCH=64DebTest all&lt;br /&gt;
&lt;br /&gt;
This will run the Makefiles and build the PETSc libraries for the VizNodes. Once PETSc succesfully builds, you will have a message stating &amp;quot;Now to check if the libraries are working do:&amp;quot;. We will skip this step and instead export the PETSc directory and architecture names to consol with the following:&lt;br /&gt;
 export PETSC_DIR=/users/username/location/of/petsc&lt;br /&gt;
 export PETSC_ARCH=64DebTest&lt;br /&gt;
&lt;br /&gt;
Note: the PETSC_DIR and PETSC_ARCH will be printed in the &amp;quot;...check if libraries...&amp;quot; message, so best to just copy and paste those into the export command.&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2028</id>
		<title>Building PETSc and libCEED to run HONEE Fluid solver on Viznode</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2028"/>
				<updated>2024-02-28T20:43:09Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Building PETSc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you're looking how to build a PETSc version to use with libCEED (HONEE) you've come to the right place! The following steps will summarize and include the commands needed to perform the install process and example run we followed in this [https://fluid.colorado.edu/tutorials/tutorialVideos/PETSc_libCEED_BuildRunTotalview.mp4 video].&lt;br /&gt;
&lt;br /&gt;
== Getting PETSc and LibCEED ==&lt;br /&gt;
&lt;br /&gt;
First things first, let's get the source code for PETSc and libCEED. You can get clone the sources from the following:&lt;br /&gt;
 PETSc SSH: git@gitlab.com:petsc/petsc.git&lt;br /&gt;
 PETSc HTTPS: https://gitlab.com/petsc/petsc.git&lt;br /&gt;
 &lt;br /&gt;
 libCEED SSH: git@github.com:CEED/libCEED.git&lt;br /&gt;
 libCEED HTTPS: https://github.com/CEED/libCEED.git&lt;br /&gt;
&lt;br /&gt;
Clone the repositories somewhere that makes sense for you. For example I have mine in &amp;lt;code&amp;gt;jeffhadley/Builds/src/&amp;lt;/code&amp;gt;: &lt;br /&gt;
&lt;br /&gt;
PETSc&lt;br /&gt;
 git clone -b release https://gitlab.com/petsc/petsc.git petsc &lt;br /&gt;
 git pull # obtain new release fixes (since a prior clone or pull) &lt;br /&gt;
libCEED&lt;br /&gt;
 git clone https://github.com/CEED/libCEED.git &lt;br /&gt;
&lt;br /&gt;
You can replace the https url's with the SSH ones from above if you have SSH setup. &lt;br /&gt;
&lt;br /&gt;
== Setting up Environment ==&lt;br /&gt;
Next we need to make sure we have the correct versions of gcc, openmpi, totalview, and Python. We will soft add gcc, openmpi and totalview with the following commands: &lt;br /&gt;
 soft add +gcc-10.2.0&lt;br /&gt;
 soft add +openmpi-gnu-4.0.2-gnu49-thread&lt;br /&gt;
 soft add +totalview-2023.2.15&lt;br /&gt;
&lt;br /&gt;
The version of Python available as a soft add is not sufficient to run PETSc and libCEED, so we need to enable a newer version through Anaconda. Paste the following block of code at the end of your &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;~/.zshrc&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
 # &amp;gt;&amp;gt;&amp;gt; conda initialize &amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
 # !! Contents within this block are managed by 'conda init' !!&lt;br /&gt;
 __conda_setup=&amp;quot;$('/projects/tools/anaconda3/bin/conda' 'shell.bash' 'hook' 2&amp;gt; /dev/null)&amp;quot;&lt;br /&gt;
 if [ $? -eq 0 ]; then&lt;br /&gt;
     eval &amp;quot;$__conda_setup&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
     if [ -f &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot; ]; then&lt;br /&gt;
         . &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot;&lt;br /&gt;
     else&lt;br /&gt;
         export PATH=&amp;quot;/projects/tools/anaconda3/bin:$PATH&amp;quot;                                                          &lt;br /&gt;
     fi&lt;br /&gt;
 fi&lt;br /&gt;
 unset __conda_setup&lt;br /&gt;
 # &amp;lt;&amp;lt;&amp;lt; conda initialize &amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
&lt;br /&gt;
This block of text will automatically activate Conda when you open a new terminal window, which we do not actually want to happen. To fix this, run the following command:&lt;br /&gt;
 conda config --set auto_activate_base False&lt;br /&gt;
&lt;br /&gt;
You now need to manually activate Conda whenever you want a more up to date version of Python. To do so run the following command:&lt;br /&gt;
 conda activate&lt;br /&gt;
&lt;br /&gt;
Check the freshly enabled version of Python with &amp;lt;code&amp;gt;python --version&amp;lt;/code&amp;gt;.  The most up to date version as of 02/28/2024 is 3.7.9. For more information on using Anaconda and its sub-packages, see the wiki page [https://fluid.colorado.edu/wiki/index.php/Anaconda here].&lt;br /&gt;
&lt;br /&gt;
== Building PETSc ==&lt;br /&gt;
Next we will build PETSc. Navigate into the top level of the cloned PETSc directory. We need to run a set-up script that's different than what comes natively with the clone of the repository, so run the following copy command to grab the set-up script which we will use for the VizNodes: &lt;br /&gt;
 cp /projects/tools/petsc/petsc/testDebugSetup.py .&lt;br /&gt;
&lt;br /&gt;
Next we will run this script to configure the Makefiles we will need to build the PETSc package:&lt;br /&gt;
 python testDebugSetup.py&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2027</id>
		<title>Building PETSc and libCEED to run HONEE Fluid solver on Viznode</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2027"/>
				<updated>2024-02-28T20:40:24Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you're looking how to build a PETSc version to use with libCEED (HONEE) you've come to the right place! The following steps will summarize and include the commands needed to perform the install process and example run we followed in this [https://fluid.colorado.edu/tutorials/tutorialVideos/PETSc_libCEED_BuildRunTotalview.mp4 video].&lt;br /&gt;
&lt;br /&gt;
== Getting PETSc and LibCEED ==&lt;br /&gt;
&lt;br /&gt;
First things first, let's get the source code for PETSc and libCEED. You can get clone the sources from the following:&lt;br /&gt;
 PETSc SSH: git@gitlab.com:petsc/petsc.git&lt;br /&gt;
 PETSc HTTPS: https://gitlab.com/petsc/petsc.git&lt;br /&gt;
 &lt;br /&gt;
 libCEED SSH: git@github.com:CEED/libCEED.git&lt;br /&gt;
 libCEED HTTPS: https://github.com/CEED/libCEED.git&lt;br /&gt;
&lt;br /&gt;
Clone the repositories somewhere that makes sense for you. For example I have mine in &amp;lt;code&amp;gt;jeffhadley/Builds/src/&amp;lt;/code&amp;gt;: &lt;br /&gt;
&lt;br /&gt;
PETSc&lt;br /&gt;
 git clone -b release https://gitlab.com/petsc/petsc.git petsc &lt;br /&gt;
 git pull # obtain new release fixes (since a prior clone or pull) &lt;br /&gt;
libCEED&lt;br /&gt;
 git clone https://github.com/CEED/libCEED.git &lt;br /&gt;
&lt;br /&gt;
You can replace the https url's with the SSH ones from above if you have SSH setup. &lt;br /&gt;
&lt;br /&gt;
== Setting up Environment ==&lt;br /&gt;
Next we need to make sure we have the correct versions of gcc, openmpi, totalview, and Python. We will soft add gcc, openmpi and totalview with the following commands: &lt;br /&gt;
 soft add +gcc-10.2.0&lt;br /&gt;
 soft add +openmpi-gnu-4.0.2-gnu49-thread&lt;br /&gt;
 soft add +totalview-2023.2.15&lt;br /&gt;
&lt;br /&gt;
The version of Python available as a soft add is not sufficient to run PETSc and libCEED, so we need to enable a newer version through Anaconda. Paste the following block of code at the end of your &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;~/.zshrc&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
 # &amp;gt;&amp;gt;&amp;gt; conda initialize &amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
 # !! Contents within this block are managed by 'conda init' !!&lt;br /&gt;
 __conda_setup=&amp;quot;$('/projects/tools/anaconda3/bin/conda' 'shell.bash' 'hook' 2&amp;gt; /dev/null)&amp;quot;&lt;br /&gt;
 if [ $? -eq 0 ]; then&lt;br /&gt;
     eval &amp;quot;$__conda_setup&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
     if [ -f &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot; ]; then&lt;br /&gt;
         . &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot;&lt;br /&gt;
     else&lt;br /&gt;
         export PATH=&amp;quot;/projects/tools/anaconda3/bin:$PATH&amp;quot;                                                          &lt;br /&gt;
     fi&lt;br /&gt;
 fi&lt;br /&gt;
 unset __conda_setup&lt;br /&gt;
 # &amp;lt;&amp;lt;&amp;lt; conda initialize &amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
&lt;br /&gt;
This block of text will automatically activate Conda when you open a new terminal window, which we do not actually want to happen. To fix this, run the following command:&lt;br /&gt;
 conda config --set auto_activate_base False&lt;br /&gt;
&lt;br /&gt;
You now need to manually activate Conda whenever you want a more up to date version of Python. To do so run the following command:&lt;br /&gt;
 conda activate&lt;br /&gt;
&lt;br /&gt;
Check the freshly enabled version of Python with &amp;lt;code&amp;gt;python --version&amp;lt;/code&amp;gt;.  The most up to date version as of 02/28/2024 is 3.7.9. For more information on using Anaconda and its sub-packages, see the wiki page [https://fluid.colorado.edu/wiki/index.php/Anaconda here].&lt;br /&gt;
&lt;br /&gt;
== Building PETSc ==&lt;br /&gt;
Next we will build PETSc. Navigate into the top level of the cloned PETSc directory. We need to run a set-up script that's different than what comes natively with the clone of the repository, so run the following copy command to grab the set-up script which we will use for the VizNodes: &lt;br /&gt;
 cp /projects/tools/petsc/petsc/testDebugSetup.py .&lt;br /&gt;
&lt;br /&gt;
Next we will run this script to configure the make files we will need to build:&lt;br /&gt;
 python testDebugSetup.py&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2026</id>
		<title>Building PETSc and libCEED to run HONEE Fluid solver on Viznode</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2026"/>
				<updated>2024-02-28T20:27:16Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you're looking how to build a PETSc version to use with libCEED (HONEE) you've come to the right place! The following steps will summarize and include the commands needed to perform the install process and example run we followed in this [https://fluid.colorado.edu/tutorials/tutorialVideos/PETSc_libCEED_BuildRunTotalview.mp4 video].&lt;br /&gt;
&lt;br /&gt;
== Getting PETSc and LibCEED ==&lt;br /&gt;
&lt;br /&gt;
First things first, let's get the source code for PETSc and libCEED. You can get clone the sources from the following:&lt;br /&gt;
 PETSc SSH: git@gitlab.com:petsc/petsc.git&lt;br /&gt;
 PETSc HTTPS: https://gitlab.com/petsc/petsc.git&lt;br /&gt;
 &lt;br /&gt;
 libCEED SSH: git@github.com:CEED/libCEED.git&lt;br /&gt;
 libCEED HTTPS: https://github.com/CEED/libCEED.git&lt;br /&gt;
&lt;br /&gt;
Clone the repositories somewhere that makes sense for you. For example I have mine in &amp;lt;code&amp;gt;jeffhadley/Builds/src/&amp;lt;/code&amp;gt;: &lt;br /&gt;
&lt;br /&gt;
PETSc&lt;br /&gt;
 git clone -b release https://gitlab.com/petsc/petsc.git petsc &lt;br /&gt;
 git pull # obtain new release fixes (since a prior clone or pull) &lt;br /&gt;
libCEED&lt;br /&gt;
 git clone https://github.com/CEED/libCEED.git &lt;br /&gt;
&lt;br /&gt;
You can replace the https url's with the SSH ones from above if you have SSH setup. &lt;br /&gt;
&lt;br /&gt;
== Setting up Environment ==&lt;br /&gt;
Next we need to make sure we have the correct versions of gcc, openmpi, totalview, and Python. We will soft add gcc, openmpi and totalview with the following commands: &lt;br /&gt;
 soft add +gcc-10.2.0&lt;br /&gt;
 soft add +openmpi-gnu-4.0.2-gnu49-thread&lt;br /&gt;
 soft add +totalview-2023.2.15&lt;br /&gt;
&lt;br /&gt;
The version of Python available as a soft add is not sufficient to run PETSc and libCEED, so we need to enable a newer version through Anaconda. Paste the following block of code at the end of your &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;~/.zshrc&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
 # &amp;gt;&amp;gt;&amp;gt; conda initialize &amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
 # !! Contents within this block are managed by 'conda init' !!&lt;br /&gt;
 __conda_setup=&amp;quot;$('/projects/tools/anaconda3/bin/conda' 'shell.bash' 'hook' 2&amp;gt; /dev/null)&amp;quot;&lt;br /&gt;
 if [ $? -eq 0 ]; then&lt;br /&gt;
     eval &amp;quot;$__conda_setup&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
     if [ -f &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot; ]; then&lt;br /&gt;
         . &amp;quot;/projects/tools/anaconda3/etc/profile.d/conda.sh&amp;quot;&lt;br /&gt;
     else&lt;br /&gt;
         export PATH=&amp;quot;/projects/tools/anaconda3/bin:$PATH&amp;quot;                                                          &lt;br /&gt;
     fi&lt;br /&gt;
 fi&lt;br /&gt;
 unset __conda_setup&lt;br /&gt;
 # &amp;lt;&amp;lt;&amp;lt; conda initialize &amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
&lt;br /&gt;
This block of text will automatically activate Conda when you open a new terminal window, which we do not actually want to happen. To fix this, run the following command:&lt;br /&gt;
 conda config --set auto_activate_base False&lt;br /&gt;
&lt;br /&gt;
You now need to manually activate Conda whenever you want a more up to date version of Python. To do so run the following command:&lt;br /&gt;
 conda activate&lt;br /&gt;
&lt;br /&gt;
For more information on using Anaconda, see the wiki page [https://fluid.colorado.edu/wiki/index.php/Anaconda here].&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2025</id>
		<title>Building PETSc and libCEED to run HONEE Fluid solver on Viznode</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2025"/>
				<updated>2024-02-28T20:16:42Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you're looking how to build a PETSc version to use with libCEED (HONEE) you've come to the right place! The following steps will summarize and include the commands needed to perform the install process and example run we followed in this [https://fluid.colorado.edu/tutorials/tutorialVideos/PETSc_libCEED_BuildRunTotalview.mp4 video].&lt;br /&gt;
&lt;br /&gt;
== Getting PETSc and LibCEED ==&lt;br /&gt;
&lt;br /&gt;
First things first, let's get the source code for PETSc and libCEED. You can get clone the sources from the following:&lt;br /&gt;
 PETSc SSH: git@gitlab.com:petsc/petsc.git&lt;br /&gt;
 PETSc HTTPS: https://gitlab.com/petsc/petsc.git&lt;br /&gt;
 &lt;br /&gt;
 libCEED SSH: git@github.com:CEED/libCEED.git&lt;br /&gt;
 libCEED HTTPS: https://github.com/CEED/libCEED.git&lt;br /&gt;
&lt;br /&gt;
Clone the repositories somewhere that makes sense for you. For example I have mine in &amp;lt;code&amp;gt; jeffhadley/Builds/src/ &amp;lt;/code&amp;gt;: &lt;br /&gt;
 PETSc&lt;br /&gt;
 &amp;lt;code&amp;gt; git clone -b release https://gitlab.com/petsc/petsc.git petsc &amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt; git pull # obtain new release fixes (since a prior clone or pull) &amp;lt;/code&amp;gt;&lt;br /&gt;
 libCEED&lt;br /&gt;
 &amp;lt;code&amp;gt; git clone https://github.com/CEED/libCEED.git &amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2024</id>
		<title>Building PETSc and libCEED to run HONEE Fluid solver on Viznode</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode&amp;diff=2024"/>
				<updated>2024-02-28T18:11:52Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: First page save. Working progress.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you're looking how to build a PETSc version to use with libCEED (HONEE) you've come to the right place. The following steps will summarize and include the commands needed to perform the install process and example run we followed in this [https://fluid.colorado.edu/tutorials/tutorialVideos/PETSc_libCEED_BuildRunTotalview.mp4 video].&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=PHASTA/Reduce_Restart_and_Geombc_Files&amp;diff=2022</id>
		<title>PHASTA/Reduce Restart and Geombc Files</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=PHASTA/Reduce_Restart_and_Geombc_Files&amp;diff=2022"/>
				<updated>2023-10-31T16:51:03Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* M2N_input.dat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Reduction from M to N parts in parallel for PHASTA files initially partitioned with NSpre_parallel, phParAdapt-SCOREC or chef ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
The tool described in this section apply to phasta files initially partitioned with phParAdapt-SCOREC or chef. We consider here that M parts were generated from N parts with M&amp;gt;N (M is usually a multiple of N). A vertex mapping between the M parts and N parts needs to be generated by phParAdapt-SCOREC or chef through the variable &amp;quot;buildMapping 1&amp;quot; in adapt.inp.&lt;br /&gt;
&lt;br /&gt;
=== Building &amp;lt;code&amp;gt;M2N&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;M2NFixBnd&amp;lt;/code&amp;gt; ===&lt;br /&gt;
* Download the M2N and M2NFixBdn packages from&lt;br /&gt;
  cd your-develop-dir-cmake/phasta&lt;br /&gt;
  git clone ssh://username@jumpgate-phasta.colorado.edu/users/mrasquin/develop-FlowControl-SyncIO-Cmake/phasta/M2N  &lt;br /&gt;
  git clone ssh://username@jumpgate-phasta.colorado.edu/users/mrasquin/develop-FlowControl-SyncIO-Cmake/phasta/M2NFixBnd&lt;br /&gt;
&lt;br /&gt;
* Build both packages with cmake. For instance, on the viz nodes with gcc:&lt;br /&gt;
&lt;br /&gt;
  cd your-develop-dir-cmake&lt;br /&gt;
&lt;br /&gt;
  mkdir build-M2N&lt;br /&gt;
  cd build-M2N&lt;br /&gt;
  CC=gcc CXX=g++ FC=gfortran cmake -DCMAKE_BUILD_TYPE=Release ../phasta/M2N/src&lt;br /&gt;
  make -j 8 VERBOSE=1&lt;br /&gt;
  cd ..&lt;br /&gt;
&lt;br /&gt;
  mkdir build-M2NFixBnd&lt;br /&gt;
  cd build-M2NFixBnd&lt;br /&gt;
  CC=gcc CXX=g++ FC=gfortran cmake -DCMAKE_BUILD_TYPE=Release ../phasta/M2NFixBnd/src&lt;br /&gt;
  make -j 8 VERBOSE=1&lt;br /&gt;
  cd ..&lt;br /&gt;
&lt;br /&gt;
=== M2N ===&lt;br /&gt;
&lt;br /&gt;
==== Running &amp;lt;code&amp;gt;M2N&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;M2N&amp;lt;/code&amp;gt; must be run on M processes&lt;br /&gt;
&lt;br /&gt;
  mpirun -np M  your-develop-dir-cmake/build-M2N/M2N&lt;br /&gt;
&lt;br /&gt;
==== M2N Inputs ====&lt;br /&gt;
M2N reads:&lt;br /&gt;
* The geombc files files under the SyncIO format (M parts);&lt;br /&gt;
* The solution, dwal, error and ybar fields from a set of restart files under the SyncIO format (M parts) for adaptation or post-processing later;&lt;br /&gt;
* The vertex mapping field from a set of restart files under the SyncIO format (M parts). &lt;br /&gt;
* An input file named &amp;quot;M2N_input.dat&amp;quot; described below&lt;br /&gt;
&lt;br /&gt;
==== M2N Outputs ====&lt;br /&gt;
M2N produces:&lt;br /&gt;
* N restart files under the Posix format, which is what phParAdapt requires for now.&lt;br /&gt;
&lt;br /&gt;
==== M2N_input.dat ====&lt;br /&gt;
&lt;br /&gt;
Note that usually, the vertex mapping field is included in the restart files of the first time step of your computation, whereas the solution, dwal, error and dwal come from the last time step of the computation.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;M2N_input.dat&amp;quot; must include the following information:&lt;br /&gt;
  120 # time step of the restart files for fields to reduce (solution, ybar, etc)&lt;br /&gt;
  100 # time step of the restart files for partID and vtxID (mapping between M and N)&lt;br /&gt;
  1 # Reduce the ybar field? (0/1)&lt;br /&gt;
  1 # Reduce the error field? (0/1)&lt;br /&gt;
  2 # Reduce the phase_average field? (0/n phase average fields)&lt;br /&gt;
  1 # Reduce the vorticity field? (0/1)&lt;br /&gt;
  1 # Reduce the dwal? (0/1)&lt;br /&gt;
  1 # Print debug statement (0/1)&lt;br /&gt;
  &lt;br /&gt;
  ### What follows is a short manual and is not read by M2N ###&lt;br /&gt;
  This Script is used to reduce different fields from M parts to N parts, using the mapping fields (partID. vtxID) gerenated by phParAdapt.&lt;br /&gt;
  By default, this script reduces the solution field but it can also handle others fields such as mentioned above.&lt;br /&gt;
&lt;br /&gt;
=== M2NFixBnd ===&lt;br /&gt;
The value of the solution, dwal, errors and ybar fields still need to be updated on the part boundaries of the N parts, which is the purpose of M2NFixBnd&lt;br /&gt;
&lt;br /&gt;
==== Running M2NFixBnd ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;M2NFixBnd&amp;lt;/code&amp;gt; is run on N processes.&lt;br /&gt;
&lt;br /&gt;
    mpirun -np N  your-develop-dir-cmake/build-M2NFixBnd/M2NFixBnd&lt;br /&gt;
&lt;br /&gt;
==== M2NFixBnd Inputs ====&lt;br /&gt;
&lt;br /&gt;
M2NFixBnd reads&lt;br /&gt;
* The solution, dwal, errors and ybars field from the N restart files under the Posix format produced by M2N in the previous step;&lt;br /&gt;
* The ilwork array from the N geombc files  under the Posix format that matches the restart files produced by M2N.&lt;br /&gt;
&lt;br /&gt;
==== M2NFixBnd Outputs ====&lt;br /&gt;
M2NFixBnd produces&lt;br /&gt;
* N restart files under the posix format that overwrite the ones generated by M2N.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
See &lt;br /&gt;
&lt;br /&gt;
  /users/mrasquin/Models/CrossFlowTest/1-A0-Mixed-9.0/SyncIO-phPA/Runs-pumi-Tet-ts100/ReduceM2N-16TetPumi-8MixedSim/runReduceM2N.sh&lt;br /&gt;
&lt;br /&gt;
== Reduction from M parts to 1 part in serial for phasta files initially partitioned with NSpre_parallel ==&lt;br /&gt;
&lt;br /&gt;
*cd to the procs_case directory that contains the files you want to reduce&lt;br /&gt;
*Run the executable:&lt;br /&gt;
   ~mrasquin/develop/phasta/phPost/phPost/bin/x86_64_linux-icc/reduce-openmpi-O -sn&lt;br /&gt;
where sn is the time step number. For example, the restart files corresponding to time step 5 would be restart.5.* and geombc.dat.* . &lt;br /&gt;
*The reduce operation will generate restart.##.0 in the procs_case directory, where ## stands for the step number you have reduced.&lt;br /&gt;
*restart.##.0, combined with geombc.dat.1 (which contains the boundary conditions for all the parts - it is created when you run NSPre_Parasolid), are what you need to see the solution on 1 part.&lt;br /&gt;
&lt;br /&gt;
[[Category:PHASTA]]&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=VNC&amp;diff=2021</id>
		<title>VNC</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=VNC&amp;diff=2021"/>
				<updated>2023-10-04T20:58:00Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Clients (Step 2) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Virtual Network Computing (VNC)''' is a tool which projects a GUI session over the network. If may be useful if you want to use GUI tools remotely when X forwarding performs poorly. &lt;br /&gt;
&lt;br /&gt;
VNC works on a client-server architecture, where a remote system (server) runs the programs and sends the virtual screen output to the local system (client). Here, the local system would be your laptop/desktop, while the server is located on the [[PHASTA Group Machines]].&lt;br /&gt;
&lt;br /&gt;
'''For On Ramp purposes, you only need to follow the sub sections identified with steps 1 through 3: Start VNC Server, Clients, and Starting a VNC Viewer'''&lt;br /&gt;
&lt;br /&gt;
== VNC on PHASTA Machines ==&lt;br /&gt;
'''Warning: The VNC password is transmitted in clear text over the network and should not be considered secure'''&lt;br /&gt;
&lt;br /&gt;
== Server-Side Setup for PHASTA Machines ==&lt;br /&gt;
=== Start VNC Server (Step 1) ===&lt;br /&gt;
&amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; is designated to host VNC sessions.&lt;br /&gt;
&lt;br /&gt;
First connect to jumpgate via ssh in a terminal on your personal machine (If following the On Ramp you should already have this terminal opened). To start a VNC session on portal1 type the following in your jumpgate terminal with a return after each line:&lt;br /&gt;
 ssh portal1&lt;br /&gt;
 source /etc/profile.d/vncscript.sh&lt;br /&gt;
 start_vnc.sh&lt;br /&gt;
&lt;br /&gt;
This will setup the VNC viewer for your session on the PHASTA machine side of things. Read through the output from &amp;lt;code&amp;gt;start_vnc.sh&amp;lt;/code&amp;gt; as it contains crucial information and some tips which are elaborated on in this wiki. &lt;br /&gt;
&lt;br /&gt;
IMPORTANT: Make sure to remember the generated password and port number (&amp;quot;You should connect to 59zw on portal1&amp;quot;, &amp;quot;Your password is abcd1234ExamplePW&amp;quot;) so that you can reuse the session you just started. Hint: take a screenshot of the output of &amp;lt;code&amp;gt;start_vnc.sh&amp;lt;/code&amp;gt; and store it somewhere safe.&lt;br /&gt;
&lt;br /&gt;
It is common practice to leave your VNC session running on &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. Next time you want to access your desktop, just ssh into jumpgate with a tunnel between portal1's VNC port (59**) and some port on your machine. Then use a VNC client to connect to the port on your machine. See the Client (Step 2) section below for an explanation of this process.&lt;br /&gt;
&lt;br /&gt;
=== Killing a VNC Server ===&lt;br /&gt;
If for some reason you want to end your session and kill your virtual desktop, run&lt;br /&gt;
&lt;br /&gt;
 source /etc/profile&lt;br /&gt;
 stop_vnc.sh&lt;br /&gt;
&lt;br /&gt;
ONLY run this if you want to kill your virtual desktop. Most users will never need to do this as the idea is to create one session and continue to use that one for all future usage.&lt;br /&gt;
&lt;br /&gt;
=== Changing the VNC Password ===&lt;br /&gt;
While ssh'd into your session on &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;, type the following command in your terminal:&lt;br /&gt;
  /opt/tigervnc/bin/vncpasswd&lt;br /&gt;
&lt;br /&gt;
Follow the on screen instructions.&lt;br /&gt;
&lt;br /&gt;
=== View Only Mode ===&lt;br /&gt;
&lt;br /&gt;
To share your desktop with another user in view only mode set a view only password &lt;br /&gt;
by running&lt;br /&gt;
  vncpasswd&lt;br /&gt;
&lt;br /&gt;
Have the other user connect in the same way you would but have them set their viewer to be in view only mode and use your view only password. Typically this is done as follows:&lt;br /&gt;
  vncviewer -viewonly&lt;br /&gt;
&lt;br /&gt;
=== Changing the Size (Resolution) of an Existing Session ===&lt;br /&gt;
''Note: In most modern VNC clients, this can (possibly should) be done via the locally running client. See your VNC client's documentation for details. The below is kept for posterity''&lt;br /&gt;
&lt;br /&gt;
You can usually use the &amp;lt;code&amp;gt;xrandr&amp;lt;/code&amp;gt; tool to change the resolution of a running VNC session. First you'll need to know your session's display number (this should be the last digit or two of the port number). For example, if your VNC session is running on port 5902, then your screen number should be :2. For this example, we'll use screen 2. &lt;br /&gt;
&lt;br /&gt;
Once you know your screen number, you can see the list of supported modes as follows:&lt;br /&gt;
  xrandr -display :2&lt;br /&gt;
&lt;br /&gt;
Once you pick the one you want (generally the same size or smaller than the native resolution of your client), you can choose it by running a command like&lt;br /&gt;
  xrandr -s 1400x1050 -display :2&lt;br /&gt;
&lt;br /&gt;
(this example will set the resolution to 1400 pixels by 1050 pixels)&lt;br /&gt;
&lt;br /&gt;
You'll probably be disconnected at this point, but when you reconnect your screen size should be changed (hopefully without crashing your running programs).&lt;br /&gt;
&lt;br /&gt;
=== Finding an Existing Session ===&lt;br /&gt;
SSH to portal1 and then run:&lt;br /&gt;
  /opt/vnc_script/findsession.sh&lt;br /&gt;
&lt;br /&gt;
Which will return the shortened port number of each of your currently running sessions.&lt;br /&gt;
&lt;br /&gt;
== Client-Side Setup for PHASTA Machines ==&lt;br /&gt;
=== Clients (Step 2) === &lt;br /&gt;
&lt;br /&gt;
First you need to have a VNC viewer installed on your personal machine. &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; uses TurboVNC from the VirtualGL project, available from [http://www.virtualgl.org/Downloads/TurboVNC their website]&lt;br /&gt;
&lt;br /&gt;
Other VNC viewers will also work, such as [https://www.tightvnc.com/download.php TightVNC] and [https://www.realvnc.com/en/connect/download/viewer/ RealVNC]. Download and install the one you like best for your personal machine (RealVNC seems to be the go to for Mac users in the group).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The instructions given when you started the session on &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; (the ones you should have taken a screen shot of in Step 1 above) are OK, but it always tells you to start a session (in a terminal on your mac or linux machine command line) with the &amp;lt;code&amp;gt;ssh -L5905:portal1:59zw jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt; command, where &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; will be different for each user. That suggestion is OK if you never plan to connect to anyone else's session, but since we often collaborate by sharing VNC sessions, the better practice we adopt is to use &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; in place of the suggested 05 (which just an arbitrary local port on your laptop). For example, when I created a session the last four numbers of the connection were &amp;lt;code&amp;gt;5923&amp;lt;/code&amp;gt;, thus &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; for me is &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; and the best practice is to ignore the script suggestion in favor of &amp;lt;code&amp;gt;ssh -L5923:portal1:5923 jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The easiest way to set up the portal from the get-go (after you have created the VNC session on the PHASTA machine side of things and left it open, AKA Step 1 above) is to close out of the terminal on your personal machine, reopen it, and run only this command where &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; is your assigned port number:&lt;br /&gt;
&lt;br /&gt;
 ssh -L59zw:portal1:59zw USERNAME@jumpgate-phasta.colorado.edu&lt;br /&gt;
&lt;br /&gt;
 '''Windows 8'''&lt;br /&gt;
 - Same concept as above... close the terminal that was established with PuTTY. Start a new one using PuTTY and entering the following in the Host Name:&lt;br /&gt;
 &amp;lt;code&amp;gt;USERNAME@jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
 Again ensuring connection type is set to SSH.&lt;br /&gt;
 - Next, look to the panel on the left side of the PuTTY window, find the &amp;quot;Connection -&amp;gt; SSH -&amp;gt; Tunnels&amp;quot; menu option and click on &amp;quot;Tunnels&amp;quot;. This will &lt;br /&gt;
 open a settings page for the tunnel we are trying to establish. &lt;br /&gt;
 - In the &amp;quot;Source Port&amp;quot; field enter &amp;lt;code&amp;gt;59zw&amp;lt;/code&amp;gt;, and in the &amp;quot;Destination&amp;quot; field enter &lt;br /&gt;
 &amp;lt;code&amp;gt;portal1:59zw&amp;lt;/code&amp;gt;, again replacing &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; with your assigned port number. &lt;br /&gt;
 - Click the &amp;quot;Add&amp;quot; button. &lt;br /&gt;
 - Click on &amp;quot;Open&amp;quot;. You now have an established VNC connection with &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; and it will ask you to enter your (jumpgate) password. &lt;br /&gt;
 - Remaining steps are the same as non-Windows 8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will then be prompted to enter your password (not the one that was just created for the VNC, but the one that you usually use to connect to jumpgate). After entering your password you will be ready for &amp;quot;Starting a VNC Viewer (Step 3)&amp;quot; in the next section. The reason that you must exit and reopen the command prompt is because you cannot connect to the VNC portal zw if you are already connected to jumpgate or portal1; you must connect to jumpgate and your session zw simultaneously for the VNC portal to work correctly.&lt;br /&gt;
&lt;br /&gt;
=== Starting a VNC viewer (Step 3) ===&lt;br /&gt;
&lt;br /&gt;
Whether you followed the Mac or Linux or Windows instructions above, successful completion will have established a tunnel from your laptop to &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. The last step is to start a VNC viewer (graphical windowing program) that uses this tunnel to display your &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; session on the screen of your laptop. There are a variety of choices for each platform and they evolve but their operation seems, thankfully, pretty universal. &lt;br /&gt;
&lt;br /&gt;
The most basic input is that they provide a box that says &amp;quot;VNC Server&amp;quot;. You will want to type &amp;lt;code&amp;gt;localhost:zw&amp;lt;/code&amp;gt; in that box and then apply start (or whatever the particular applications action button is). The VNC Viewer will them prompt you for the password that was generated for this &amp;quot;zw&amp;quot; numbered session (Your version of the generated &amp;quot;abcd1234ExamplePW&amp;quot; from previous steps. Note if you changed that VNC password already, use the one you created). &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; here will need to be whatever you used for the &amp;lt;code&amp;gt;-L59zw:portal1:59zw&amp;lt;/code&amp;gt; part of the tunnel. What the number is actually doing is telling this local VNC viewer on which port you have established a tunnel with the session for which you are starting the VNC viewer. Note it is possible to have several different simultaneous sessions. Each needs its own tunnel (established by repeating the process above with a unique &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt;) and then a corresponding &amp;quot;new&amp;quot; VNC viewer. In this way we might continue to work in our own session but then take a break to look at a collaborator's session without having to close out the tunnel and viewer pair.&lt;br /&gt;
&lt;br /&gt;
Now that you've connected to the PHASTA machines, it's time to learn a bit mroe about using a UNIX based system (Linux). To continue with the On Ramp click [[UNIX|here]]&lt;br /&gt;
&lt;br /&gt;
=== Web Based Viewer ===&lt;br /&gt;
&lt;br /&gt;
If you can't or don't want to install a VNC viewer you can use a Java based one. You will need a JVM and a Java browser plugin. You will also need the port that the start_vnc script assigned you to be free on your local computer&lt;br /&gt;
&lt;br /&gt;
Forward your session through jumpgate as before before, adding a second port, 580n. For example, if the script tells you to &lt;br /&gt;
&lt;br /&gt;
ssh -L5905:portal1:5902 jumpgate-phasta.colorado.edu you should&lt;br /&gt;
  ssh -L5902:portal1:5902 -L5802:portal1:5802 jumpgate-phasta.colorado.edu&lt;br /&gt;
Then point your browser to http://localhost:5802 and log in with the password specified by the script when prompted. (Replace 2 with the value specified by the script)&lt;br /&gt;
&lt;br /&gt;
== OpenGL == &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; is equipped with a VirtualGL install which will allow you to use OpenGL programs (which do not use pthreads)&lt;br /&gt;
&lt;br /&gt;
Simply wrap your OpenGL program with the &amp;lt;code&amp;gt;vglrun&amp;lt;/code&amp;gt; command&lt;br /&gt;
  vlgrun glxgears&lt;br /&gt;
&lt;br /&gt;
Our lab has 2 VirtualGL servers you can connect to from &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. You must connect to one of them for large memory and/or computationally intensive processes.&lt;br /&gt;
The names of the servers are &amp;lt;code&amp;gt;viz002&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;viz003&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;viz001&amp;lt;/code&amp;gt; is probably never coming back to life). &lt;br /&gt;
&amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; doesn't have a particularly fast graphics processor and MUST NOT be used for large memory or computationally intensive process)&lt;br /&gt;
&lt;br /&gt;
  vglconnect -s viz002&lt;br /&gt;
or&lt;br /&gt;
  vglconnect -s viz003&lt;br /&gt;
&lt;br /&gt;
from this connection you will want to run graphic applications (e.g., SimModeler or ParaView) prefaced by the command &amp;lt;code&amp;gt;vglrun&amp;lt;/code&amp;gt;.  You can test that you have it setup right&lt;br /&gt;
with the toy-app &amp;lt;code&amp;gt;glxgears&amp;lt;/code&amp;gt; as follows&lt;br /&gt;
&lt;br /&gt;
  vglrun glxgears&lt;br /&gt;
&lt;br /&gt;
Note that VGL uses a number of threads. If you have trouble with &amp;lt;code&amp;gt;vglrun&amp;lt;/code&amp;gt; crashing with a message about &amp;lt;code&amp;gt;Thread::Start()&amp;lt;/code&amp;gt; make sure you haven't set your stack size too large (remove any &amp;lt;code&amp;gt;ulimit -s&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ulimit -n&amp;lt;/code&amp;gt; calls from your shell start scripts).&lt;br /&gt;
&lt;br /&gt;
NOTE ALSO:  The primary purpose for &amp;lt;code&amp;gt;viz00x&amp;lt;/code&amp;gt; is for visualization and for debugging.  Production runs should be done elsewhere.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting == &lt;br /&gt;
&lt;br /&gt;
If you have used vncserver (It doesn't matter which version) before, you will need to clear your vnc settings for the script to work. You can do this by running rm -rf ~/.vnc&lt;br /&gt;
&lt;br /&gt;
stop_vnc.sh may display some errors; this is normal.&lt;br /&gt;
&lt;br /&gt;
If you have trouble deleting ~/.vnc send an email to Benjamin.A.Matthews@colorado.edu&lt;br /&gt;
&lt;br /&gt;
If any of these commands fail, you may need to source /etc/profile to get the necessary environment variables (this should be fixed soon)&lt;br /&gt;
&lt;br /&gt;
VirtualGL has trouble with some threaded programs. If your OpenGL program exhibits segmentation faults or other issues, this could be the problem. Check back for the solution later. &lt;br /&gt;
&lt;br /&gt;
If the given password is rejected you can run stop_vnc.sh and restart to get a new one. Occasionally the random password generator may generate passwords which VNC doesn't like.&lt;br /&gt;
&lt;br /&gt;
If VirtualGL complains about not being able to get a 24bit FB config either vglconnect to another VirtualGL enabled server or complain to Benjamin.A.Matthews@Colorado.edu&lt;br /&gt;
&lt;br /&gt;
If your VNC connection is very slow, you might want to try changing the compression and encoding options. See your vncviewer's documentation or try this&lt;br /&gt;
  vncviewer -encodings tight -quality 6 -compresslevel 6&lt;br /&gt;
If you have trouble with text distortion try adding &lt;br /&gt;
  -nojpeg&lt;br /&gt;
&lt;br /&gt;
If you're running OSX and see an error about Zlib, try changing your compression settings (maximum quality usually works) or use a different client. RealVNC and certain versions of ChickenOfTheVNC both exhibit this issue. The latest build of TigerVNC should work reliably, as does the Java based TightVNC client.&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=VNC&amp;diff=2020</id>
		<title>VNC</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=VNC&amp;diff=2020"/>
				<updated>2023-10-04T20:56:52Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Clients (Step 2) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Virtual Network Computing (VNC)''' is a tool which projects a GUI session over the network. If may be useful if you want to use GUI tools remotely when X forwarding performs poorly. &lt;br /&gt;
&lt;br /&gt;
VNC works on a client-server architecture, where a remote system (server) runs the programs and sends the virtual screen output to the local system (client). Here, the local system would be your laptop/desktop, while the server is located on the [[PHASTA Group Machines]].&lt;br /&gt;
&lt;br /&gt;
'''For On Ramp purposes, you only need to follow the sub sections identified with steps 1 through 3: Start VNC Server, Clients, and Starting a VNC Viewer'''&lt;br /&gt;
&lt;br /&gt;
== VNC on PHASTA Machines ==&lt;br /&gt;
'''Warning: The VNC password is transmitted in clear text over the network and should not be considered secure'''&lt;br /&gt;
&lt;br /&gt;
== Server-Side Setup for PHASTA Machines ==&lt;br /&gt;
=== Start VNC Server (Step 1) ===&lt;br /&gt;
&amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; is designated to host VNC sessions.&lt;br /&gt;
&lt;br /&gt;
First connect to jumpgate via ssh in a terminal on your personal machine (If following the On Ramp you should already have this terminal opened). To start a VNC session on portal1 type the following in your jumpgate terminal with a return after each line:&lt;br /&gt;
 ssh portal1&lt;br /&gt;
 source /etc/profile.d/vncscript.sh&lt;br /&gt;
 start_vnc.sh&lt;br /&gt;
&lt;br /&gt;
This will setup the VNC viewer for your session on the PHASTA machine side of things. Read through the output from &amp;lt;code&amp;gt;start_vnc.sh&amp;lt;/code&amp;gt; as it contains crucial information and some tips which are elaborated on in this wiki. &lt;br /&gt;
&lt;br /&gt;
IMPORTANT: Make sure to remember the generated password and port number (&amp;quot;You should connect to 59zw on portal1&amp;quot;, &amp;quot;Your password is abcd1234ExamplePW&amp;quot;) so that you can reuse the session you just started. Hint: take a screenshot of the output of &amp;lt;code&amp;gt;start_vnc.sh&amp;lt;/code&amp;gt; and store it somewhere safe.&lt;br /&gt;
&lt;br /&gt;
It is common practice to leave your VNC session running on &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. Next time you want to access your desktop, just ssh into jumpgate with a tunnel between portal1's VNC port (59**) and some port on your machine. Then use a VNC client to connect to the port on your machine. See the Client (Step 2) section below for an explanation of this process.&lt;br /&gt;
&lt;br /&gt;
=== Killing a VNC Server ===&lt;br /&gt;
If for some reason you want to end your session and kill your virtual desktop, run&lt;br /&gt;
&lt;br /&gt;
 source /etc/profile&lt;br /&gt;
 stop_vnc.sh&lt;br /&gt;
&lt;br /&gt;
ONLY run this if you want to kill your virtual desktop. Most users will never need to do this as the idea is to create one session and continue to use that one for all future usage.&lt;br /&gt;
&lt;br /&gt;
=== Changing the VNC Password ===&lt;br /&gt;
While ssh'd into your session on &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;, type the following command in your terminal:&lt;br /&gt;
  /opt/tigervnc/bin/vncpasswd&lt;br /&gt;
&lt;br /&gt;
Follow the on screen instructions.&lt;br /&gt;
&lt;br /&gt;
=== View Only Mode ===&lt;br /&gt;
&lt;br /&gt;
To share your desktop with another user in view only mode set a view only password &lt;br /&gt;
by running&lt;br /&gt;
  vncpasswd&lt;br /&gt;
&lt;br /&gt;
Have the other user connect in the same way you would but have them set their viewer to be in view only mode and use your view only password. Typically this is done as follows:&lt;br /&gt;
  vncviewer -viewonly&lt;br /&gt;
&lt;br /&gt;
=== Changing the Size (Resolution) of an Existing Session ===&lt;br /&gt;
''Note: In most modern VNC clients, this can (possibly should) be done via the locally running client. See your VNC client's documentation for details. The below is kept for posterity''&lt;br /&gt;
&lt;br /&gt;
You can usually use the &amp;lt;code&amp;gt;xrandr&amp;lt;/code&amp;gt; tool to change the resolution of a running VNC session. First you'll need to know your session's display number (this should be the last digit or two of the port number). For example, if your VNC session is running on port 5902, then your screen number should be :2. For this example, we'll use screen 2. &lt;br /&gt;
&lt;br /&gt;
Once you know your screen number, you can see the list of supported modes as follows:&lt;br /&gt;
  xrandr -display :2&lt;br /&gt;
&lt;br /&gt;
Once you pick the one you want (generally the same size or smaller than the native resolution of your client), you can choose it by running a command like&lt;br /&gt;
  xrandr -s 1400x1050 -display :2&lt;br /&gt;
&lt;br /&gt;
(this example will set the resolution to 1400 pixels by 1050 pixels)&lt;br /&gt;
&lt;br /&gt;
You'll probably be disconnected at this point, but when you reconnect your screen size should be changed (hopefully without crashing your running programs).&lt;br /&gt;
&lt;br /&gt;
=== Finding an Existing Session ===&lt;br /&gt;
SSH to portal1 and then run:&lt;br /&gt;
  /opt/vnc_script/findsession.sh&lt;br /&gt;
&lt;br /&gt;
Which will return the shortened port number of each of your currently running sessions.&lt;br /&gt;
&lt;br /&gt;
== Client-Side Setup for PHASTA Machines ==&lt;br /&gt;
=== Clients (Step 2) === &lt;br /&gt;
&lt;br /&gt;
First you need to have a VNC viewer installed on your personal machine. &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; uses TurboVNC from the VirtualGL project, available from [http://www.virtualgl.org/Downloads/TurboVNC their website]&lt;br /&gt;
&lt;br /&gt;
Other VNC viewers will also work, such as [https://www.tightvnc.com/download.php TightVNC] and [https://www.realvnc.com/en/connect/download/viewer/ RealVNC]. Download and install the one you like best for your personal machine (RealVNC seems to be the go to for Mac users in the group).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The instructions given when you started the session on &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; (the ones you should have taken a screen shot of in Step 1 above) are OK, but it always tells you to start a session (in a terminal on your mac or linux machine command line) with the &amp;lt;code&amp;gt;ssh -L5905:portal1:59zw jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt; command, where &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; will be different for each user. That suggestion is OK if you never plan to connect to anyone else's session, but since we often collaborate by sharing VNC sessions, the better practice we adopt is to use &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; in place of the suggested 05 (which just an arbitrary local port on your laptop). For example, when I created a session the last four numbers of the connection were &amp;lt;code&amp;gt;5923&amp;lt;/code&amp;gt;, thus &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; for me is &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; and the best practice is to ignore the script suggestion in favor of &amp;lt;code&amp;gt;ssh -L5923:portal1:5923 jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The easiest way to set up the portal from the get-go (after you have created the VNC session on the PHASTA machine side of things and left it open, AKA Step 1 above) is to close out of the terminal on your personal machine, reopen it, and run only this command where &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; is your assigned port number:&lt;br /&gt;
&lt;br /&gt;
 ssh -L59zw:portal1:59zw USERNAME@jumpgate-phasta.colorado.edu&lt;br /&gt;
&lt;br /&gt;
 '''Windows 8'''&lt;br /&gt;
 - Same concept as above... close the terminal that was established with PuTTY. Start a new one using PuTTY and entering the following in the Host Name:&lt;br /&gt;
 &amp;lt;code&amp;gt;USERNAME@jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
 Again ensuring connection type is set to SSH.&lt;br /&gt;
 - Next, look to the panel on the left side of the PuTTY window, find the &amp;quot;Connection -&amp;gt; SSH -&amp;gt; Tunnels&amp;quot; menu option and click on &amp;quot;Tunnels&amp;quot;. This will &lt;br /&gt;
 open a settings page for the tunnel we are trying to establish. &lt;br /&gt;
 - In the &amp;quot;Source Port&amp;quot; field enter &amp;lt;code&amp;gt;59zw&amp;lt;/code&amp;gt;, and in the &amp;quot;Destination&amp;quot; field enter &lt;br /&gt;
 &amp;lt;code&amp;gt;portal1:59zw&amp;lt;/code&amp;gt;, again replacing &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; with your assigned port number. &lt;br /&gt;
 - Click the &amp;quot;Add&amp;quot; button. &lt;br /&gt;
 - Click on &amp;quot;Open&amp;quot;. You now have an established VNC connection with &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. &lt;br /&gt;
 - Remaining steps are the same as non-Windows 8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will then be prompted to enter your password (not the one that was just created for the VNC, but the one that you usually use to connect to jumpgate). After entering your password you will be ready for &amp;quot;Starting a VNC Viewer (Step 3)&amp;quot; in the next section. The reason that you must exit and reopen the command prompt is because you cannot connect to the VNC portal zw if you are already connected to jumpgate or portal1; you must connect to jumpgate and your session zw simultaneously for the VNC portal to work correctly.&lt;br /&gt;
&lt;br /&gt;
=== Starting a VNC viewer (Step 3) ===&lt;br /&gt;
&lt;br /&gt;
Whether you followed the Mac or Linux or Windows instructions above, successful completion will have established a tunnel from your laptop to &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. The last step is to start a VNC viewer (graphical windowing program) that uses this tunnel to display your &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; session on the screen of your laptop. There are a variety of choices for each platform and they evolve but their operation seems, thankfully, pretty universal. &lt;br /&gt;
&lt;br /&gt;
The most basic input is that they provide a box that says &amp;quot;VNC Server&amp;quot;. You will want to type &amp;lt;code&amp;gt;localhost:zw&amp;lt;/code&amp;gt; in that box and then apply start (or whatever the particular applications action button is). The VNC Viewer will them prompt you for the password that was generated for this &amp;quot;zw&amp;quot; numbered session (Your version of the generated &amp;quot;abcd1234ExamplePW&amp;quot; from previous steps. Note if you changed that VNC password already, use the one you created). &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; here will need to be whatever you used for the &amp;lt;code&amp;gt;-L59zw:portal1:59zw&amp;lt;/code&amp;gt; part of the tunnel. What the number is actually doing is telling this local VNC viewer on which port you have established a tunnel with the session for which you are starting the VNC viewer. Note it is possible to have several different simultaneous sessions. Each needs its own tunnel (established by repeating the process above with a unique &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt;) and then a corresponding &amp;quot;new&amp;quot; VNC viewer. In this way we might continue to work in our own session but then take a break to look at a collaborator's session without having to close out the tunnel and viewer pair.&lt;br /&gt;
&lt;br /&gt;
Now that you've connected to the PHASTA machines, it's time to learn a bit mroe about using a UNIX based system (Linux). To continue with the On Ramp click [[UNIX|here]]&lt;br /&gt;
&lt;br /&gt;
=== Web Based Viewer ===&lt;br /&gt;
&lt;br /&gt;
If you can't or don't want to install a VNC viewer you can use a Java based one. You will need a JVM and a Java browser plugin. You will also need the port that the start_vnc script assigned you to be free on your local computer&lt;br /&gt;
&lt;br /&gt;
Forward your session through jumpgate as before before, adding a second port, 580n. For example, if the script tells you to &lt;br /&gt;
&lt;br /&gt;
ssh -L5905:portal1:5902 jumpgate-phasta.colorado.edu you should&lt;br /&gt;
  ssh -L5902:portal1:5902 -L5802:portal1:5802 jumpgate-phasta.colorado.edu&lt;br /&gt;
Then point your browser to http://localhost:5802 and log in with the password specified by the script when prompted. (Replace 2 with the value specified by the script)&lt;br /&gt;
&lt;br /&gt;
== OpenGL == &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; is equipped with a VirtualGL install which will allow you to use OpenGL programs (which do not use pthreads)&lt;br /&gt;
&lt;br /&gt;
Simply wrap your OpenGL program with the &amp;lt;code&amp;gt;vglrun&amp;lt;/code&amp;gt; command&lt;br /&gt;
  vlgrun glxgears&lt;br /&gt;
&lt;br /&gt;
Our lab has 2 VirtualGL servers you can connect to from &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. You must connect to one of them for large memory and/or computationally intensive processes.&lt;br /&gt;
The names of the servers are &amp;lt;code&amp;gt;viz002&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;viz003&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;viz001&amp;lt;/code&amp;gt; is probably never coming back to life). &lt;br /&gt;
&amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; doesn't have a particularly fast graphics processor and MUST NOT be used for large memory or computationally intensive process)&lt;br /&gt;
&lt;br /&gt;
  vglconnect -s viz002&lt;br /&gt;
or&lt;br /&gt;
  vglconnect -s viz003&lt;br /&gt;
&lt;br /&gt;
from this connection you will want to run graphic applications (e.g., SimModeler or ParaView) prefaced by the command &amp;lt;code&amp;gt;vglrun&amp;lt;/code&amp;gt;.  You can test that you have it setup right&lt;br /&gt;
with the toy-app &amp;lt;code&amp;gt;glxgears&amp;lt;/code&amp;gt; as follows&lt;br /&gt;
&lt;br /&gt;
  vglrun glxgears&lt;br /&gt;
&lt;br /&gt;
Note that VGL uses a number of threads. If you have trouble with &amp;lt;code&amp;gt;vglrun&amp;lt;/code&amp;gt; crashing with a message about &amp;lt;code&amp;gt;Thread::Start()&amp;lt;/code&amp;gt; make sure you haven't set your stack size too large (remove any &amp;lt;code&amp;gt;ulimit -s&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ulimit -n&amp;lt;/code&amp;gt; calls from your shell start scripts).&lt;br /&gt;
&lt;br /&gt;
NOTE ALSO:  The primary purpose for &amp;lt;code&amp;gt;viz00x&amp;lt;/code&amp;gt; is for visualization and for debugging.  Production runs should be done elsewhere.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting == &lt;br /&gt;
&lt;br /&gt;
If you have used vncserver (It doesn't matter which version) before, you will need to clear your vnc settings for the script to work. You can do this by running rm -rf ~/.vnc&lt;br /&gt;
&lt;br /&gt;
stop_vnc.sh may display some errors; this is normal.&lt;br /&gt;
&lt;br /&gt;
If you have trouble deleting ~/.vnc send an email to Benjamin.A.Matthews@colorado.edu&lt;br /&gt;
&lt;br /&gt;
If any of these commands fail, you may need to source /etc/profile to get the necessary environment variables (this should be fixed soon)&lt;br /&gt;
&lt;br /&gt;
VirtualGL has trouble with some threaded programs. If your OpenGL program exhibits segmentation faults or other issues, this could be the problem. Check back for the solution later. &lt;br /&gt;
&lt;br /&gt;
If the given password is rejected you can run stop_vnc.sh and restart to get a new one. Occasionally the random password generator may generate passwords which VNC doesn't like.&lt;br /&gt;
&lt;br /&gt;
If VirtualGL complains about not being able to get a 24bit FB config either vglconnect to another VirtualGL enabled server or complain to Benjamin.A.Matthews@Colorado.edu&lt;br /&gt;
&lt;br /&gt;
If your VNC connection is very slow, you might want to try changing the compression and encoding options. See your vncviewer's documentation or try this&lt;br /&gt;
  vncviewer -encodings tight -quality 6 -compresslevel 6&lt;br /&gt;
If you have trouble with text distortion try adding &lt;br /&gt;
  -nojpeg&lt;br /&gt;
&lt;br /&gt;
If you're running OSX and see an error about Zlib, try changing your compression settings (maximum quality usually works) or use a different client. RealVNC and certain versions of ChickenOfTheVNC both exhibit this issue. The latest build of TigerVNC should work reliably, as does the Java based TightVNC client.&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=PHASTA_Group_Machines&amp;diff=2019</id>
		<title>PHASTA Group Machines</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=PHASTA_Group_Machines&amp;diff=2019"/>
				<updated>2023-09-21T18:29:16Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Logging In */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the local machines owned by the group, logging in, and two factor authentication.&lt;br /&gt;
&lt;br /&gt;
== Logging In ==&lt;br /&gt;
&lt;br /&gt;
The entry point for the group machines is &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, which is accessed publicly via &amp;lt;code&amp;gt;jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;. We access this entry point by creating an SSH connection between it and our personal machines. To access the system via command line (terminal, command prompt, etc), simply run &amp;lt;code&amp;gt;ssh USERNAME@jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;. Note: if you are using Windows 8 or older, you will need to download and install an SSH client such as [https://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTY], and follow the directions specified as '''Windows 8'''. &lt;br /&gt;
&lt;br /&gt;
This [https://fluid.colorado.edu/tutorials/tutorialVideos/VNC_tutorial.mov video] walks you through the multiple next steps you will take in order to access and interact with the PHASTA machines. wThe steps in the video are more thoroughly documented in the remainder of this page and the [[VNC]] page of the wiki.&lt;br /&gt;
&lt;br /&gt;
To get started, open a command line terminal, enter &amp;lt;code&amp;gt;ssh USERNAME@jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;, and the login process will look like the following:&lt;br /&gt;
&lt;br /&gt;
 ➜ ssh USERNAME@jumpgate-phasta.colorado.edu &lt;br /&gt;
 Password: &lt;br /&gt;
 Verification code:&lt;br /&gt;
&lt;br /&gt;
 '''**Windows 8**''' &lt;br /&gt;
 Open your PuTTY application and enter the following in the field that says &amp;quot;Host name:&amp;quot;&lt;br /&gt;
  &amp;lt;code&amp;gt;USERNAME@jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
 Next make sure that Connection type is set to &amp;quot;SSH&amp;quot;. Click on &amp;quot;Open&amp;quot;. This will start a terminal window session connected to jumpgate that will have the &lt;br /&gt;
 same output as the non-windows 8 instructions above.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
where the &amp;lt;code&amp;gt;Password:&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Verification code:&amp;lt;/code&amp;gt; are prompts for you to enter in your password and 2FA pass code. Note the 2FA request for a verification code will not start occurring until after you setup 2fa as noted below.&lt;br /&gt;
&lt;br /&gt;
Very little can/should be done on &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;.  The most common use is to establish a tunnel for a VNC session. The second usage that must be done to set that up is connecting to &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. This is done via &amp;lt;code&amp;gt;ssh portal1&amp;lt;/code&amp;gt; while on &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Setting Up Two-Factor Authentication ===&lt;br /&gt;
Due to recent brute force ssh attacks we are moving to using two factor authentication (2FA). Existing users will have one week to switch over to this process.  New users are expected to do this within 24 hours.  This is pretty easy to setup as follows (from a terminal in your mac or linux laptop (and Windows if new enough)) or using PuTTY. All commands to be run are will be in &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt; block. If you have not already established a connection with jumpgate (from the previous steps above), open a new terminal and enter the following:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ssh USERNAME@jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will prompt for your ''password'' (the private password you set or, if this is your first login, the one in the account creation email). Enter your password to log in. We will refer to this terminal as &amp;quot;Primary terminal&amp;quot; for the remainder of these instructions. &lt;br /&gt;
&lt;br /&gt;
Next you need to download and install an authenticator application either for your computer or phone. There are several from Google, Microsoft, Twilio, etc (Google Authenticator works great). Launch that application on your phone or computer. In whatever mode it uses to create a new token generator, do that (often it opens with a QR code scanner enabled as it knows that is the easiest way to link the phone application to the QR scan created on the machine you are trying to access).&lt;br /&gt;
&lt;br /&gt;
Before moving forward, it is recommended that you start a second terminal connection to &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt; by repeating the process above for establishing an ssh connection (PuTTY steps for Windows 8 users). We will refer to this second terminal connection as our &amp;quot;backup terminal&amp;quot;. If at any point you want/need to reset, simply run &amp;lt;code&amp;gt;''rm -rf ~/.google_authenticator''&amp;lt;/code&amp;gt; in the backup terminal.&lt;br /&gt;
&lt;br /&gt;
Now, in your primary &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt; terminal on your laptop type and enter:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;google-authenticator&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your terminal window is big enough, it should display a QR code that you can scan with your authenticator app on your phone. At this point it will ask you some questions about options (I answered yes to all). **You '''MUST''' answer yes to the time-based question, otherwise you will not be able to copy files onto ALCF (learned from experience)**&lt;br /&gt;
&lt;br /&gt;
Now open a 3rd terminal and log on to &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt; with ssh just as we did before. Because we have created a 2FA token, in addition to prompting for your ''password'', it will also prompt for a &amp;quot;Verification code:&amp;quot;. In your authenticator app, find the auto-generated 6 digit code associated to the jumpgate machine and enter it in the &amp;quot;Verification code:&amp;quot; field. If you've logged on successfully, then you are done and can move on to setting up your VNC. Otherwise, attempt to troubleshoot or reset the process with the &amp;lt;code&amp;gt;rm -rf ~/.google_authenticator&amp;lt;/code&amp;gt; command in the &amp;quot;backup&amp;quot; terminal you opened previously. If you have reset the process, close your primary and 3rd terminals, keep the backup terminal open, and open a new primary terminal and start the process over.&lt;br /&gt;
&lt;br /&gt;
=== VNC - Viewing your PHASTA Machine Sessions ===&lt;br /&gt;
Most members of the group interact with the PHASTA machines via a VNC tool (Virtual Network Computing), which provides a graphical user interface (GUI) link between the PHASTA machines (server side) and your personal machine (client side). This connection permits you to interact with the PHASTA machines by using your personal machine as from any location with a secure internet connection. Setting up the VNC server is documented on the [[VNC]] page, and for the purpose of the On Ramp, follow the sections identified with steps 1 through 3. The remainder of the sections on the VNC page are options you can explore at a later time. Click [[VNC|here]] to set up your VNC and continue with the On Ramp.&lt;br /&gt;
&lt;br /&gt;
== Machines ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt; ===&lt;br /&gt;
This is the machine that allows you to &amp;quot;jump&amp;quot; to the other machines in the local network via &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;. It is simply the public-facing machine and should only be used as such.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; ===&lt;br /&gt;
This is where most of the non-computationally intensive tasks are done, such as text editing, moving files, etc. Effectively, if it takes longer than 5 seconds to run, you should probably think about running it on one of the &amp;lt;code&amp;gt;viz*&amp;lt;/code&amp;gt; nodes.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;viz003&amp;lt;/code&amp;gt; ===&lt;br /&gt;
This is where most computationally intensive tasks are done. However, they should only be run for debugging or post-processing. Production runs should be run on servers outside of the group's local machines ([[CU Boulder RC|Summit]], [[NAS]], [[ALCF]], etc.)&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;viz002&amp;lt;/code&amp;gt; ===&lt;br /&gt;
This is where most computationally intensive tasks are done. However, they should only be run for debugging or post-processing. Production runs should be run on servers outside of the group's local machines ([[CU Boulder RC|Summit]], [[NAS]], [[ALCF]], etc.)&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;lab3&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Windows machine for using Windows programs, such as [[SolidWorks]]. Accessing &amp;lt;code&amp;gt;lab3&amp;lt;/code&amp;gt; is different than with the other machines, see [[Access Lab3]]&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;ciscoX&amp;lt;/code&amp;gt; ===&lt;br /&gt;
These machines (&amp;lt;code&amp;gt;cisco1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cisco2&amp;lt;/code&amp;gt;, etc.) are meant for computing and are accessed by submitting a job via PBS.&lt;br /&gt;
&lt;br /&gt;
== Using PBS for the cisco machines ==&lt;br /&gt;
&lt;br /&gt;
Jobs submitted to PBS can either be scripted or interactive.&lt;br /&gt;
&lt;br /&gt;
=== Interactive Job Example ===&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
matthb2@portal1:~$ soft add +pbs&lt;br /&gt;
matthb2@portal1:~$ qsub -I -l select=2:ncpus=24:mpiprocs=4 -q workq&lt;br /&gt;
qsub: waiting for job 1008.pbs to start&lt;br /&gt;
qsub: job 1008.pbs ready&lt;br /&gt;
&lt;br /&gt;
matthb2@cisco1:~$ module load openmpi&lt;br /&gt;
matthb2@cisco1:~$ mpicc mpihello/mpihello.c&lt;br /&gt;
matthb2@cisco1:~$ mpirun ./a.out&lt;br /&gt;
Hello Parallel World&lt;br /&gt;
Rank: 1 Number is: 1&lt;br /&gt;
Rank: 2 Number is: 1&lt;br /&gt;
Rank: 3 Number is: 1&lt;br /&gt;
Rank: 0 Number is: 1&lt;br /&gt;
Rank: 5 Number is: 1&lt;br /&gt;
Rank: 4 Number is: 1&lt;br /&gt;
Rank: 6 Number is: 1&lt;br /&gt;
Rank: 7 Number is: 1&lt;br /&gt;
matthb2@cisco1:~$&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Compute Facilities]]&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=PHASTA_Group_Machines&amp;diff=2018</id>
		<title>PHASTA Group Machines</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=PHASTA_Group_Machines&amp;diff=2018"/>
				<updated>2023-09-21T18:28:39Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Logging In */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the local machines owned by the group, logging in, and two factor authentication.&lt;br /&gt;
&lt;br /&gt;
== Logging In ==&lt;br /&gt;
&lt;br /&gt;
The entry point for the group machines is &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, which is accessed publicly via &amp;lt;code&amp;gt;jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;. We access this entry point by creating an SSH connection between it and our personal machines. To access the system via command line (terminal, command prompt, etc), simply run &amp;lt;code&amp;gt;ssh USERNAME@jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;. Note: if you are using Windows 8 or older, you will need to download and install an SSH client such as [https://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTY], and follow the directions specified as '''Windows 8'''. &lt;br /&gt;
&lt;br /&gt;
This [https://fluid.colorado.edu/tutorials/tutorialVideos/VNC_tutorial.mov video] walks you through the multiple next steps you will take in order to access and interact with the PHASTA machines. wThe steps in the video are more thoroughly documented in the remainder of this page and the [[VNC]] page of the wiki.&lt;br /&gt;
&lt;br /&gt;
To get started, open a command line terminal, and the login process will look like the following:&lt;br /&gt;
&lt;br /&gt;
 ➜ ssh USERNAME@jumpgate-phasta.colorado.edu &lt;br /&gt;
 Password: &lt;br /&gt;
 Verification code:&lt;br /&gt;
&lt;br /&gt;
 '''**Windows 8**''' &lt;br /&gt;
 Open your PuTTY application and enter the following in the field that says &amp;quot;Host name:&amp;quot;&lt;br /&gt;
  &amp;lt;code&amp;gt;USERNAME@jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
 Next make sure that Connection type is set to &amp;quot;SSH&amp;quot;. Click on &amp;quot;Open&amp;quot;. This will start a terminal window session connected to jumpgate that will have the &lt;br /&gt;
 same output as the non-windows 8 instructions above.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
where the &amp;lt;code&amp;gt;Password:&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Verification code:&amp;lt;/code&amp;gt; are prompts for you to enter in your password and 2FA pass code. Note the 2FA request for a verification code will not start occurring until after you setup 2fa as noted below.&lt;br /&gt;
&lt;br /&gt;
Very little can/should be done on &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;.  The most common use is to establish a tunnel for a VNC session. The second usage that must be done to set that up is connecting to &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. This is done via &amp;lt;code&amp;gt;ssh portal1&amp;lt;/code&amp;gt; while on &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Setting Up Two-Factor Authentication ===&lt;br /&gt;
Due to recent brute force ssh attacks we are moving to using two factor authentication (2FA). Existing users will have one week to switch over to this process.  New users are expected to do this within 24 hours.  This is pretty easy to setup as follows (from a terminal in your mac or linux laptop (and Windows if new enough)) or using PuTTY. All commands to be run are will be in &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt; block. If you have not already established a connection with jumpgate (from the previous steps above), open a new terminal and enter the following:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ssh USERNAME@jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will prompt for your ''password'' (the private password you set or, if this is your first login, the one in the account creation email). Enter your password to log in. We will refer to this terminal as &amp;quot;Primary terminal&amp;quot; for the remainder of these instructions. &lt;br /&gt;
&lt;br /&gt;
Next you need to download and install an authenticator application either for your computer or phone. There are several from Google, Microsoft, Twilio, etc (Google Authenticator works great). Launch that application on your phone or computer. In whatever mode it uses to create a new token generator, do that (often it opens with a QR code scanner enabled as it knows that is the easiest way to link the phone application to the QR scan created on the machine you are trying to access).&lt;br /&gt;
&lt;br /&gt;
Before moving forward, it is recommended that you start a second terminal connection to &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt; by repeating the process above for establishing an ssh connection (PuTTY steps for Windows 8 users). We will refer to this second terminal connection as our &amp;quot;backup terminal&amp;quot;. If at any point you want/need to reset, simply run &amp;lt;code&amp;gt;''rm -rf ~/.google_authenticator''&amp;lt;/code&amp;gt; in the backup terminal.&lt;br /&gt;
&lt;br /&gt;
Now, in your primary &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt; terminal on your laptop type and enter:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;google-authenticator&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your terminal window is big enough, it should display a QR code that you can scan with your authenticator app on your phone. At this point it will ask you some questions about options (I answered yes to all). **You '''MUST''' answer yes to the time-based question, otherwise you will not be able to copy files onto ALCF (learned from experience)**&lt;br /&gt;
&lt;br /&gt;
Now open a 3rd terminal and log on to &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt; with ssh just as we did before. Because we have created a 2FA token, in addition to prompting for your ''password'', it will also prompt for a &amp;quot;Verification code:&amp;quot;. In your authenticator app, find the auto-generated 6 digit code associated to the jumpgate machine and enter it in the &amp;quot;Verification code:&amp;quot; field. If you've logged on successfully, then you are done and can move on to setting up your VNC. Otherwise, attempt to troubleshoot or reset the process with the &amp;lt;code&amp;gt;rm -rf ~/.google_authenticator&amp;lt;/code&amp;gt; command in the &amp;quot;backup&amp;quot; terminal you opened previously. If you have reset the process, close your primary and 3rd terminals, keep the backup terminal open, and open a new primary terminal and start the process over.&lt;br /&gt;
&lt;br /&gt;
=== VNC - Viewing your PHASTA Machine Sessions ===&lt;br /&gt;
Most members of the group interact with the PHASTA machines via a VNC tool (Virtual Network Computing), which provides a graphical user interface (GUI) link between the PHASTA machines (server side) and your personal machine (client side). This connection permits you to interact with the PHASTA machines by using your personal machine as from any location with a secure internet connection. Setting up the VNC server is documented on the [[VNC]] page, and for the purpose of the On Ramp, follow the sections identified with steps 1 through 3. The remainder of the sections on the VNC page are options you can explore at a later time. Click [[VNC|here]] to set up your VNC and continue with the On Ramp.&lt;br /&gt;
&lt;br /&gt;
== Machines ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt; ===&lt;br /&gt;
This is the machine that allows you to &amp;quot;jump&amp;quot; to the other machines in the local network via &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;. It is simply the public-facing machine and should only be used as such.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; ===&lt;br /&gt;
This is where most of the non-computationally intensive tasks are done, such as text editing, moving files, etc. Effectively, if it takes longer than 5 seconds to run, you should probably think about running it on one of the &amp;lt;code&amp;gt;viz*&amp;lt;/code&amp;gt; nodes.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;viz003&amp;lt;/code&amp;gt; ===&lt;br /&gt;
This is where most computationally intensive tasks are done. However, they should only be run for debugging or post-processing. Production runs should be run on servers outside of the group's local machines ([[CU Boulder RC|Summit]], [[NAS]], [[ALCF]], etc.)&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;viz002&amp;lt;/code&amp;gt; ===&lt;br /&gt;
This is where most computationally intensive tasks are done. However, they should only be run for debugging or post-processing. Production runs should be run on servers outside of the group's local machines ([[CU Boulder RC|Summit]], [[NAS]], [[ALCF]], etc.)&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;lab3&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Windows machine for using Windows programs, such as [[SolidWorks]]. Accessing &amp;lt;code&amp;gt;lab3&amp;lt;/code&amp;gt; is different than with the other machines, see [[Access Lab3]]&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;ciscoX&amp;lt;/code&amp;gt; ===&lt;br /&gt;
These machines (&amp;lt;code&amp;gt;cisco1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cisco2&amp;lt;/code&amp;gt;, etc.) are meant for computing and are accessed by submitting a job via PBS.&lt;br /&gt;
&lt;br /&gt;
== Using PBS for the cisco machines ==&lt;br /&gt;
&lt;br /&gt;
Jobs submitted to PBS can either be scripted or interactive.&lt;br /&gt;
&lt;br /&gt;
=== Interactive Job Example ===&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
matthb2@portal1:~$ soft add +pbs&lt;br /&gt;
matthb2@portal1:~$ qsub -I -l select=2:ncpus=24:mpiprocs=4 -q workq&lt;br /&gt;
qsub: waiting for job 1008.pbs to start&lt;br /&gt;
qsub: job 1008.pbs ready&lt;br /&gt;
&lt;br /&gt;
matthb2@cisco1:~$ module load openmpi&lt;br /&gt;
matthb2@cisco1:~$ mpicc mpihello/mpihello.c&lt;br /&gt;
matthb2@cisco1:~$ mpirun ./a.out&lt;br /&gt;
Hello Parallel World&lt;br /&gt;
Rank: 1 Number is: 1&lt;br /&gt;
Rank: 2 Number is: 1&lt;br /&gt;
Rank: 3 Number is: 1&lt;br /&gt;
Rank: 0 Number is: 1&lt;br /&gt;
Rank: 5 Number is: 1&lt;br /&gt;
Rank: 4 Number is: 1&lt;br /&gt;
Rank: 6 Number is: 1&lt;br /&gt;
Rank: 7 Number is: 1&lt;br /&gt;
matthb2@cisco1:~$&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Compute Facilities]]&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=PHASTA_Group_Machines&amp;diff=2017</id>
		<title>PHASTA Group Machines</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=PHASTA_Group_Machines&amp;diff=2017"/>
				<updated>2023-09-21T18:27:13Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Logging In */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the local machines owned by the group, logging in, and two factor authentication.&lt;br /&gt;
&lt;br /&gt;
== Logging In ==&lt;br /&gt;
&lt;br /&gt;
The entry point for the group machines is &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, which is accessed publicly via &amp;lt;code&amp;gt;jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;. We access this entry point by creating an SSH connection between it and our personal machines. To access the system via command line (terminal, command prompt, etc), simply run &amp;lt;code&amp;gt;ssh USERNAME@jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;. Note: if you are using Windows 8 or older, you will need to download and install an SSH client such as [https://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTY], and follow the directions specified as '''Windows 8'''. &lt;br /&gt;
&lt;br /&gt;
This [https://fluid.colorado.edu/tutorials/tutorialVideos/VNC_tutorial.mov video] walks you through the multiple next steps you will take in order to access and interact with the PHASTA machines. wThe steps in the video are more thoroughly documented in the remainder of this page and the [[VNC]] page of the wiki.&lt;br /&gt;
&lt;br /&gt;
In the command line terminal, the login process will look like the following:&lt;br /&gt;
&lt;br /&gt;
 ➜ ssh USERNAME@jumpgate-phasta.colorado.edu &lt;br /&gt;
 Password: &lt;br /&gt;
 Verification code:&lt;br /&gt;
&lt;br /&gt;
 '''**Windows 8**''' &lt;br /&gt;
 Open your PuTTY application and enter the following in the field that says &amp;quot;Host name:&amp;quot;&lt;br /&gt;
  &amp;lt;code&amp;gt;USERNAME@jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
 Next make sure that Connection type is set to &amp;quot;SSH&amp;quot;. Click on &amp;quot;Open&amp;quot;. This will start a terminal window session connected to jumpgate that will have the &lt;br /&gt;
 same output as the non-windows 8 instructions above.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
where the &amp;lt;code&amp;gt;Password:&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Verification code:&amp;lt;/code&amp;gt; are prompts for you to enter in your password and 2FA pass code. Note the 2FA request for a verification code will not start occurring until after you setup 2fa as noted below.&lt;br /&gt;
&lt;br /&gt;
Very little can/should be done on &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;.  The most common use is to establish a tunnel for a VNC session. The second usage that must be done to set that up is connecting to &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. This is done via &amp;lt;code&amp;gt;ssh portal1&amp;lt;/code&amp;gt; while on &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Setting Up Two-Factor Authentication ===&lt;br /&gt;
Due to recent brute force ssh attacks we are moving to using two factor authentication (2FA). Existing users will have one week to switch over to this process.  New users are expected to do this within 24 hours.  This is pretty easy to setup as follows (from a terminal in your mac or linux laptop (and Windows if new enough)) or using PuTTY. All commands to be run are will be in &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt; block. If you have not already established a connection with jumpgate (from the previous steps above), open a new terminal and enter the following:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ssh USERNAME@jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will prompt for your ''password'' (the private password you set or, if this is your first login, the one in the account creation email). Enter your password to log in. We will refer to this terminal as &amp;quot;Primary terminal&amp;quot; for the remainder of these instructions. &lt;br /&gt;
&lt;br /&gt;
Next you need to download and install an authenticator application either for your computer or phone. There are several from Google, Microsoft, Twilio, etc (Google Authenticator works great). Launch that application on your phone or computer. In whatever mode it uses to create a new token generator, do that (often it opens with a QR code scanner enabled as it knows that is the easiest way to link the phone application to the QR scan created on the machine you are trying to access).&lt;br /&gt;
&lt;br /&gt;
Before moving forward, it is recommended that you start a second terminal connection to &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt; by repeating the process above for establishing an ssh connection (PuTTY steps for Windows 8 users). We will refer to this second terminal connection as our &amp;quot;backup terminal&amp;quot;. If at any point you want/need to reset, simply run &amp;lt;code&amp;gt;''rm -rf ~/.google_authenticator''&amp;lt;/code&amp;gt; in the backup terminal.&lt;br /&gt;
&lt;br /&gt;
Now, in your primary &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt; terminal on your laptop type and enter:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;google-authenticator&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your terminal window is big enough, it should display a QR code that you can scan with your authenticator app on your phone. At this point it will ask you some questions about options (I answered yes to all). **You '''MUST''' answer yes to the time-based question, otherwise you will not be able to copy files onto ALCF (learned from experience)**&lt;br /&gt;
&lt;br /&gt;
Now open a 3rd terminal and log on to &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt; with ssh just as we did before. Because we have created a 2FA token, in addition to prompting for your ''password'', it will also prompt for a &amp;quot;Verification code:&amp;quot;. In your authenticator app, find the auto-generated 6 digit code associated to the jumpgate machine and enter it in the &amp;quot;Verification code:&amp;quot; field. If you've logged on successfully, then you are done and can move on to setting up your VNC. Otherwise, attempt to troubleshoot or reset the process with the &amp;lt;code&amp;gt;rm -rf ~/.google_authenticator&amp;lt;/code&amp;gt; command in the &amp;quot;backup&amp;quot; terminal you opened previously. If you have reset the process, close your primary and 3rd terminals, keep the backup terminal open, and open a new primary terminal and start the process over.&lt;br /&gt;
&lt;br /&gt;
=== VNC - Viewing your PHASTA Machine Sessions ===&lt;br /&gt;
Most members of the group interact with the PHASTA machines via a VNC tool (Virtual Network Computing), which provides a graphical user interface (GUI) link between the PHASTA machines (server side) and your personal machine (client side). This connection permits you to interact with the PHASTA machines by using your personal machine as from any location with a secure internet connection. Setting up the VNC server is documented on the [[VNC]] page, and for the purpose of the On Ramp, follow the sections identified with steps 1 through 3. The remainder of the sections on the VNC page are options you can explore at a later time. Click [[VNC|here]] to set up your VNC and continue with the On Ramp.&lt;br /&gt;
&lt;br /&gt;
== Machines ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt; ===&lt;br /&gt;
This is the machine that allows you to &amp;quot;jump&amp;quot; to the other machines in the local network via &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;. It is simply the public-facing machine and should only be used as such.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; ===&lt;br /&gt;
This is where most of the non-computationally intensive tasks are done, such as text editing, moving files, etc. Effectively, if it takes longer than 5 seconds to run, you should probably think about running it on one of the &amp;lt;code&amp;gt;viz*&amp;lt;/code&amp;gt; nodes.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;viz003&amp;lt;/code&amp;gt; ===&lt;br /&gt;
This is where most computationally intensive tasks are done. However, they should only be run for debugging or post-processing. Production runs should be run on servers outside of the group's local machines ([[CU Boulder RC|Summit]], [[NAS]], [[ALCF]], etc.)&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;viz002&amp;lt;/code&amp;gt; ===&lt;br /&gt;
This is where most computationally intensive tasks are done. However, they should only be run for debugging or post-processing. Production runs should be run on servers outside of the group's local machines ([[CU Boulder RC|Summit]], [[NAS]], [[ALCF]], etc.)&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;lab3&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Windows machine for using Windows programs, such as [[SolidWorks]]. Accessing &amp;lt;code&amp;gt;lab3&amp;lt;/code&amp;gt; is different than with the other machines, see [[Access Lab3]]&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;ciscoX&amp;lt;/code&amp;gt; ===&lt;br /&gt;
These machines (&amp;lt;code&amp;gt;cisco1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cisco2&amp;lt;/code&amp;gt;, etc.) are meant for computing and are accessed by submitting a job via PBS.&lt;br /&gt;
&lt;br /&gt;
== Using PBS for the cisco machines ==&lt;br /&gt;
&lt;br /&gt;
Jobs submitted to PBS can either be scripted or interactive.&lt;br /&gt;
&lt;br /&gt;
=== Interactive Job Example ===&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
matthb2@portal1:~$ soft add +pbs&lt;br /&gt;
matthb2@portal1:~$ qsub -I -l select=2:ncpus=24:mpiprocs=4 -q workq&lt;br /&gt;
qsub: waiting for job 1008.pbs to start&lt;br /&gt;
qsub: job 1008.pbs ready&lt;br /&gt;
&lt;br /&gt;
matthb2@cisco1:~$ module load openmpi&lt;br /&gt;
matthb2@cisco1:~$ mpicc mpihello/mpihello.c&lt;br /&gt;
matthb2@cisco1:~$ mpirun ./a.out&lt;br /&gt;
Hello Parallel World&lt;br /&gt;
Rank: 1 Number is: 1&lt;br /&gt;
Rank: 2 Number is: 1&lt;br /&gt;
Rank: 3 Number is: 1&lt;br /&gt;
Rank: 0 Number is: 1&lt;br /&gt;
Rank: 5 Number is: 1&lt;br /&gt;
Rank: 4 Number is: 1&lt;br /&gt;
Rank: 6 Number is: 1&lt;br /&gt;
Rank: 7 Number is: 1&lt;br /&gt;
matthb2@cisco1:~$&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Compute Facilities]]&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=PHASTA_Group_Machines&amp;diff=2016</id>
		<title>PHASTA Group Machines</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=PHASTA_Group_Machines&amp;diff=2016"/>
				<updated>2023-09-21T18:25:30Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Logging In */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the local machines owned by the group, logging in, and two factor authentication.&lt;br /&gt;
&lt;br /&gt;
== Logging In ==&lt;br /&gt;
&lt;br /&gt;
The entry point for the group machines is &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, which is accessed publicly via &amp;lt;code&amp;gt;jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;. We access this entry point by creating an SSH connection between it and our personal machines. To access the system via command line (terminal, command prompt, etc), simply run &amp;lt;code&amp;gt;ssh USERNAME@jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;. Note: if you are using Windows 8 or older, you will need to download and install an SSH client such as [https://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTY], and follow the directions specified as '''Windows 8'''. &lt;br /&gt;
&lt;br /&gt;
This [https://fluid.colorado.edu/tutorials/tutorialVideos/VNC_tutorial.mov video] walks you through the multiple steps which are documented in the Logging In and the VNC portion of the wiki.&lt;br /&gt;
&lt;br /&gt;
In the command line terminal, the login process will look like the following:&lt;br /&gt;
&lt;br /&gt;
 ➜ ssh USERNAME@jumpgate-phasta.colorado.edu &lt;br /&gt;
 Password: &lt;br /&gt;
 Verification code:&lt;br /&gt;
&lt;br /&gt;
 '''**Windows 8**''' &lt;br /&gt;
 Open your PuTTY application and enter the following in the field that says &amp;quot;Host name:&amp;quot;&lt;br /&gt;
  &amp;lt;code&amp;gt;USERNAME@jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
 Next make sure that Connection type is set to &amp;quot;SSH&amp;quot;. Click on &amp;quot;Open&amp;quot;. This will start a terminal window session connected to jumpgate that will have the &lt;br /&gt;
 same output as the non-windows 8 instructions above.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
where the &amp;lt;code&amp;gt;Password:&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Verification code:&amp;lt;/code&amp;gt; are prompts for you to enter in your password and 2FA pass code. Note the 2FA request for a verification code will not start occurring until after you setup 2fa as noted below.&lt;br /&gt;
&lt;br /&gt;
Very little can/should be done on &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;.  The most common use is to establish a tunnel for a VNC session. The second usage that must be done to set that up is connecting to &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. This is done via &amp;lt;code&amp;gt;ssh portal1&amp;lt;/code&amp;gt; while on &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Setting Up Two-Factor Authentication ===&lt;br /&gt;
Due to recent brute force ssh attacks we are moving to using two factor authentication (2FA). Existing users will have one week to switch over to this process.  New users are expected to do this within 24 hours.  This is pretty easy to setup as follows (from a terminal in your mac or linux laptop (and Windows if new enough)) or using PuTTY. All commands to be run are will be in &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt; block. If you have not already established a connection with jumpgate (from the previous steps above), open a new terminal and enter the following:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ssh USERNAME@jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will prompt for your ''password'' (the private password you set or, if this is your first login, the one in the account creation email). Enter your password to log in. We will refer to this terminal as &amp;quot;Primary terminal&amp;quot; for the remainder of these instructions. &lt;br /&gt;
&lt;br /&gt;
Next you need to download and install an authenticator application either for your computer or phone. There are several from Google, Microsoft, Twilio, etc (Google Authenticator works great). Launch that application on your phone or computer. In whatever mode it uses to create a new token generator, do that (often it opens with a QR code scanner enabled as it knows that is the easiest way to link the phone application to the QR scan created on the machine you are trying to access).&lt;br /&gt;
&lt;br /&gt;
Before moving forward, it is recommended that you start a second terminal connection to &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt; by repeating the process above for establishing an ssh connection (PuTTY steps for Windows 8 users). We will refer to this second terminal connection as our &amp;quot;backup terminal&amp;quot;. If at any point you want/need to reset, simply run &amp;lt;code&amp;gt;''rm -rf ~/.google_authenticator''&amp;lt;/code&amp;gt; in the backup terminal.&lt;br /&gt;
&lt;br /&gt;
Now, in your primary &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt; terminal on your laptop type and enter:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;google-authenticator&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your terminal window is big enough, it should display a QR code that you can scan with your authenticator app on your phone. At this point it will ask you some questions about options (I answered yes to all). **You '''MUST''' answer yes to the time-based question, otherwise you will not be able to copy files onto ALCF (learned from experience)**&lt;br /&gt;
&lt;br /&gt;
Now open a 3rd terminal and log on to &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt; with ssh just as we did before. Because we have created a 2FA token, in addition to prompting for your ''password'', it will also prompt for a &amp;quot;Verification code:&amp;quot;. In your authenticator app, find the auto-generated 6 digit code associated to the jumpgate machine and enter it in the &amp;quot;Verification code:&amp;quot; field. If you've logged on successfully, then you are done and can move on to setting up your VNC. Otherwise, attempt to troubleshoot or reset the process with the &amp;lt;code&amp;gt;rm -rf ~/.google_authenticator&amp;lt;/code&amp;gt; command in the &amp;quot;backup&amp;quot; terminal you opened previously. If you have reset the process, close your primary and 3rd terminals, keep the backup terminal open, and open a new primary terminal and start the process over.&lt;br /&gt;
&lt;br /&gt;
=== VNC - Viewing your PHASTA Machine Sessions ===&lt;br /&gt;
Most members of the group interact with the PHASTA machines via a VNC tool (Virtual Network Computing), which provides a graphical user interface (GUI) link between the PHASTA machines (server side) and your personal machine (client side). This connection permits you to interact with the PHASTA machines by using your personal machine as from any location with a secure internet connection. Setting up the VNC server is documented on the [[VNC]] page, and for the purpose of the On Ramp, follow the sections identified with steps 1 through 3. The remainder of the sections on the VNC page are options you can explore at a later time. Click [[VNC|here]] to set up your VNC and continue with the On Ramp.&lt;br /&gt;
&lt;br /&gt;
== Machines ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt; ===&lt;br /&gt;
This is the machine that allows you to &amp;quot;jump&amp;quot; to the other machines in the local network via &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;. It is simply the public-facing machine and should only be used as such.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; ===&lt;br /&gt;
This is where most of the non-computationally intensive tasks are done, such as text editing, moving files, etc. Effectively, if it takes longer than 5 seconds to run, you should probably think about running it on one of the &amp;lt;code&amp;gt;viz*&amp;lt;/code&amp;gt; nodes.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;viz003&amp;lt;/code&amp;gt; ===&lt;br /&gt;
This is where most computationally intensive tasks are done. However, they should only be run for debugging or post-processing. Production runs should be run on servers outside of the group's local machines ([[CU Boulder RC|Summit]], [[NAS]], [[ALCF]], etc.)&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;viz002&amp;lt;/code&amp;gt; ===&lt;br /&gt;
This is where most computationally intensive tasks are done. However, they should only be run for debugging or post-processing. Production runs should be run on servers outside of the group's local machines ([[CU Boulder RC|Summit]], [[NAS]], [[ALCF]], etc.)&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;lab3&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Windows machine for using Windows programs, such as [[SolidWorks]]. Accessing &amp;lt;code&amp;gt;lab3&amp;lt;/code&amp;gt; is different than with the other machines, see [[Access Lab3]]&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;ciscoX&amp;lt;/code&amp;gt; ===&lt;br /&gt;
These machines (&amp;lt;code&amp;gt;cisco1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cisco2&amp;lt;/code&amp;gt;, etc.) are meant for computing and are accessed by submitting a job via PBS.&lt;br /&gt;
&lt;br /&gt;
== Using PBS for the cisco machines ==&lt;br /&gt;
&lt;br /&gt;
Jobs submitted to PBS can either be scripted or interactive.&lt;br /&gt;
&lt;br /&gt;
=== Interactive Job Example ===&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
matthb2@portal1:~$ soft add +pbs&lt;br /&gt;
matthb2@portal1:~$ qsub -I -l select=2:ncpus=24:mpiprocs=4 -q workq&lt;br /&gt;
qsub: waiting for job 1008.pbs to start&lt;br /&gt;
qsub: job 1008.pbs ready&lt;br /&gt;
&lt;br /&gt;
matthb2@cisco1:~$ module load openmpi&lt;br /&gt;
matthb2@cisco1:~$ mpicc mpihello/mpihello.c&lt;br /&gt;
matthb2@cisco1:~$ mpirun ./a.out&lt;br /&gt;
Hello Parallel World&lt;br /&gt;
Rank: 1 Number is: 1&lt;br /&gt;
Rank: 2 Number is: 1&lt;br /&gt;
Rank: 3 Number is: 1&lt;br /&gt;
Rank: 0 Number is: 1&lt;br /&gt;
Rank: 5 Number is: 1&lt;br /&gt;
Rank: 4 Number is: 1&lt;br /&gt;
Rank: 6 Number is: 1&lt;br /&gt;
Rank: 7 Number is: 1&lt;br /&gt;
matthb2@cisco1:~$&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Compute Facilities]]&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=VNC&amp;diff=2015</id>
		<title>VNC</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=VNC&amp;diff=2015"/>
				<updated>2023-09-21T18:05:06Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Clients (Step 2) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Virtual Network Computing (VNC)''' is a tool which projects a GUI session over the network. If may be useful if you want to use GUI tools remotely when X forwarding performs poorly. &lt;br /&gt;
&lt;br /&gt;
VNC works on a client-server architecture, where a remote system (server) runs the programs and sends the virtual screen output to the local system (client). Here, the local system would be your laptop/desktop, while the server is located on the [[PHASTA Group Machines]].&lt;br /&gt;
&lt;br /&gt;
'''For On Ramp purposes, you only need to follow the sub sections identified with steps 1 through 3: Start VNC Server, Clients, and Starting a VNC Viewer'''&lt;br /&gt;
&lt;br /&gt;
== VNC on PHASTA Machines ==&lt;br /&gt;
'''Warning: The VNC password is transmitted in clear text over the network and should not be considered secure'''&lt;br /&gt;
&lt;br /&gt;
== Server-Side Setup for PHASTA Machines ==&lt;br /&gt;
=== Start VNC Server (Step 1) ===&lt;br /&gt;
&amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; is designated to host VNC sessions.&lt;br /&gt;
&lt;br /&gt;
First connect to jumpgate via ssh in a terminal on your personal machine (If following the On Ramp you should already have this terminal opened). To start a VNC session on portal1 type the following in your jumpgate terminal with a return after each line:&lt;br /&gt;
 ssh portal1&lt;br /&gt;
 source /etc/profile.d/vncscript.sh&lt;br /&gt;
 start_vnc.sh&lt;br /&gt;
&lt;br /&gt;
This will setup the VNC viewer for your session on the PHASTA machine side of things. Read through the output from &amp;lt;code&amp;gt;start_vnc.sh&amp;lt;/code&amp;gt; as it contains crucial information and some tips which are elaborated on in this wiki. &lt;br /&gt;
&lt;br /&gt;
IMPORTANT: Make sure to remember the generated password and port number (&amp;quot;You should connect to 59zw on portal1&amp;quot;, &amp;quot;Your password is abcd1234ExamplePW&amp;quot;) so that you can reuse the session you just started. Hint: take a screenshot of the output of &amp;lt;code&amp;gt;start_vnc.sh&amp;lt;/code&amp;gt; and store it somewhere safe.&lt;br /&gt;
&lt;br /&gt;
It is common practice to leave your VNC session running on &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. Next time you want to access your desktop, just ssh into jumpgate with a tunnel between portal1's VNC port (59**) and some port on your machine. Then use a VNC client to connect to the port on your machine. See the Client (Step 2) section below for an explanation of this process.&lt;br /&gt;
&lt;br /&gt;
=== Killing a VNC Server ===&lt;br /&gt;
If for some reason you want to end your session and kill your virtual desktop, run&lt;br /&gt;
&lt;br /&gt;
 source /etc/profile&lt;br /&gt;
 stop_vnc.sh&lt;br /&gt;
&lt;br /&gt;
ONLY run this if you want to kill your virtual desktop. Most users will never need to do this as the idea is to create one session and continue to use that one for all future usage.&lt;br /&gt;
&lt;br /&gt;
=== Changing the VNC Password ===&lt;br /&gt;
While ssh'd into your session on &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;, type the following command in your terminal:&lt;br /&gt;
  /opt/tigervnc/bin/vncpasswd&lt;br /&gt;
&lt;br /&gt;
Follow the on screen instructions.&lt;br /&gt;
&lt;br /&gt;
=== View Only Mode ===&lt;br /&gt;
&lt;br /&gt;
To share your desktop with another user in view only mode set a view only password &lt;br /&gt;
by running&lt;br /&gt;
  vncpasswd&lt;br /&gt;
&lt;br /&gt;
Have the other user connect in the same way you would but have them set their viewer to be in view only mode and use your view only password. Typically this is done as follows:&lt;br /&gt;
  vncviewer -viewonly&lt;br /&gt;
&lt;br /&gt;
=== Changing the Size (Resolution) of an Existing Session ===&lt;br /&gt;
''Note: In most modern VNC clients, this can (possibly should) be done via the locally running client. See your VNC client's documentation for details. The below is kept for posterity''&lt;br /&gt;
&lt;br /&gt;
You can usually use the &amp;lt;code&amp;gt;xrandr&amp;lt;/code&amp;gt; tool to change the resolution of a running VNC session. First you'll need to know your session's display number (this should be the last digit or two of the port number). For example, if your VNC session is running on port 5902, then your screen number should be :2. For this example, we'll use screen 2. &lt;br /&gt;
&lt;br /&gt;
Once you know your screen number, you can see the list of supported modes as follows:&lt;br /&gt;
  xrandr -display :2&lt;br /&gt;
&lt;br /&gt;
Once you pick the one you want (generally the same size or smaller than the native resolution of your client), you can choose it by running a command like&lt;br /&gt;
  xrandr -s 1400x1050 -display :2&lt;br /&gt;
&lt;br /&gt;
(this example will set the resolution to 1400 pixels by 1050 pixels)&lt;br /&gt;
&lt;br /&gt;
You'll probably be disconnected at this point, but when you reconnect your screen size should be changed (hopefully without crashing your running programs).&lt;br /&gt;
&lt;br /&gt;
=== Finding an Existing Session ===&lt;br /&gt;
SSH to portal1 and then run:&lt;br /&gt;
  /opt/vnc_script/findsession.sh&lt;br /&gt;
&lt;br /&gt;
Which will return the shortened port number of each of your currently running sessions.&lt;br /&gt;
&lt;br /&gt;
== Client-Side Setup for PHASTA Machines ==&lt;br /&gt;
=== Clients (Step 2) === &lt;br /&gt;
&lt;br /&gt;
First you need to have a VNC viewer installed on your personal machine. &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; uses TurboVNC from the VirtualGL project, available from [http://www.virtualgl.org/Downloads/TurboVNC their website]&lt;br /&gt;
&lt;br /&gt;
Other VNC viewers will also work, such as [https://www.tightvnc.com/download.php TightVNC] and [https://www.realvnc.com/en/connect/download/viewer/ RealVNC]. Download and install the one you like best for your personal machine (RealVNC seems to be the go to for Mac users in the group).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The instructions given when you started the session on &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; (the ones you should have taken a screen shot of in Step 1 above) are OK, but it always tells you to start a session (in a terminal on your mac or linux machine command line) with the &amp;lt;code&amp;gt;ssh -L5905:portal1:59zw jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt; command, where &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; will be different for each user. That suggestion is OK if you never plan to connect to anyone else's session, but since we often collaborate by sharing VNC sessions, the better practice we adopt is to use &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; in place of the suggested 05 (which just an arbitrary local port on your laptop). For example, when I created a session the last four numbers of the connection were &amp;lt;code&amp;gt;5923&amp;lt;/code&amp;gt;, thus &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; for me is &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; and the best practice is to ignore the script suggestion in favor of &amp;lt;code&amp;gt;ssh -L5923:portal1:5923 jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The easiest way to set up the portal from the get-go (after you have created the VNC session on the PHASTA machine side of things and left it open, AKA Step 1 above) is to close out of the terminal on your personal machine, reopen it, and run only this command where &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; is your assigned port number:&lt;br /&gt;
&lt;br /&gt;
 ssh -L59zw:portal1:59zw USERNAME@jumpgate-phasta.colorado.edu&lt;br /&gt;
&lt;br /&gt;
 '''Windows 8'''&lt;br /&gt;
 Same concept, so close the terminal that was established with PuTTY. Start a new one using PuTTY and entering the following in the Host Name, replacing zw with your assigned port number:&lt;br /&gt;
 &amp;lt;code&amp;gt;-L59zw:portal1:59zw USERNAME@jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
 Again ensuring connection type is set to SSH. In the &amp;quot;Port&amp;quot; field, enter the &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; assigned port number. Click on &amp;quot;Open&amp;quot;. You now have an established VNC connection with &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. Remaining steps are the same as non-Windows 8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will then be prompted to enter your password (not the one that was just created for the VNC, but the one that you usually use to connect to jumpgate). After entering your password you will be ready for &amp;quot;Starting a VNC Viewer (Step 3)&amp;quot; in the next section. The reason that you must exit and reopen the command prompt is because you cannot connect to the VNC portal zw if you are already connected to jumpgate or portal1; you must connect to jumpgate and your session zw simultaneously for the VNC portal to work correctly.&lt;br /&gt;
&lt;br /&gt;
=== Starting a VNC viewer (Step 3) ===&lt;br /&gt;
&lt;br /&gt;
Whether you followed the Mac or Linux or Windows instructions above, successful completion will have established a tunnel from your laptop to &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. The last step is to start a VNC viewer (graphical windowing program) that uses this tunnel to display your &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; session on the screen of your laptop. There are a variety of choices for each platform and they evolve but their operation seems, thankfully, pretty universal. &lt;br /&gt;
&lt;br /&gt;
The most basic input is that they provide a box that says &amp;quot;VNC Server&amp;quot;. You will want to type &amp;lt;code&amp;gt;localhost:zw&amp;lt;/code&amp;gt; in that box and then apply start (or whatever the particular applications action button is). The VNC Viewer will them prompt you for the password that was generated for this &amp;quot;zw&amp;quot; numbered session (Your version of the generated &amp;quot;abcd1234ExamplePW&amp;quot; from previous steps. Note if you changed that VNC password already, use the one you created). &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; here will need to be whatever you used for the &amp;lt;code&amp;gt;-L59zw:portal1:59zw&amp;lt;/code&amp;gt; part of the tunnel. What the number is actually doing is telling this local VNC viewer on which port you have established a tunnel with the session for which you are starting the VNC viewer. Note it is possible to have several different simultaneous sessions. Each needs its own tunnel (established by repeating the process above with a unique &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt;) and then a corresponding &amp;quot;new&amp;quot; VNC viewer. In this way we might continue to work in our own session but then take a break to look at a collaborator's session without having to close out the tunnel and viewer pair.&lt;br /&gt;
&lt;br /&gt;
Now that you've connected to the PHASTA machines, it's time to learn a bit mroe about using a UNIX based system (Linux). To continue with the On Ramp click [[UNIX|here]]&lt;br /&gt;
&lt;br /&gt;
=== Web Based Viewer ===&lt;br /&gt;
&lt;br /&gt;
If you can't or don't want to install a VNC viewer you can use a Java based one. You will need a JVM and a Java browser plugin. You will also need the port that the start_vnc script assigned you to be free on your local computer&lt;br /&gt;
&lt;br /&gt;
Forward your session through jumpgate as before before, adding a second port, 580n. For example, if the script tells you to &lt;br /&gt;
&lt;br /&gt;
ssh -L5905:portal1:5902 jumpgate-phasta.colorado.edu you should&lt;br /&gt;
  ssh -L5902:portal1:5902 -L5802:portal1:5802 jumpgate-phasta.colorado.edu&lt;br /&gt;
Then point your browser to http://localhost:5802 and log in with the password specified by the script when prompted. (Replace 2 with the value specified by the script)&lt;br /&gt;
&lt;br /&gt;
== OpenGL == &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; is equipped with a VirtualGL install which will allow you to use OpenGL programs (which do not use pthreads)&lt;br /&gt;
&lt;br /&gt;
Simply wrap your OpenGL program with the &amp;lt;code&amp;gt;vglrun&amp;lt;/code&amp;gt; command&lt;br /&gt;
  vlgrun glxgears&lt;br /&gt;
&lt;br /&gt;
Our lab has 2 VirtualGL servers you can connect to from &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. You must connect to one of them for large memory and/or computationally intensive processes.&lt;br /&gt;
The names of the servers are &amp;lt;code&amp;gt;viz002&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;viz003&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;viz001&amp;lt;/code&amp;gt; is probably never coming back to life). &lt;br /&gt;
&amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; doesn't have a particularly fast graphics processor and MUST NOT be used for large memory or computationally intensive process)&lt;br /&gt;
&lt;br /&gt;
  vglconnect -s viz002&lt;br /&gt;
or&lt;br /&gt;
  vglconnect -s viz003&lt;br /&gt;
&lt;br /&gt;
from this connection you will want to run graphic applications (e.g., SimModeler or ParaView) prefaced by the command &amp;lt;code&amp;gt;vglrun&amp;lt;/code&amp;gt;.  You can test that you have it setup right&lt;br /&gt;
with the toy-app &amp;lt;code&amp;gt;glxgears&amp;lt;/code&amp;gt; as follows&lt;br /&gt;
&lt;br /&gt;
  vglrun glxgears&lt;br /&gt;
&lt;br /&gt;
Note that VGL uses a number of threads. If you have trouble with &amp;lt;code&amp;gt;vglrun&amp;lt;/code&amp;gt; crashing with a message about &amp;lt;code&amp;gt;Thread::Start()&amp;lt;/code&amp;gt; make sure you haven't set your stack size too large (remove any &amp;lt;code&amp;gt;ulimit -s&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ulimit -n&amp;lt;/code&amp;gt; calls from your shell start scripts).&lt;br /&gt;
&lt;br /&gt;
NOTE ALSO:  The primary purpose for &amp;lt;code&amp;gt;viz00x&amp;lt;/code&amp;gt; is for visualization and for debugging.  Production runs should be done elsewhere.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting == &lt;br /&gt;
&lt;br /&gt;
If you have used vncserver (It doesn't matter which version) before, you will need to clear your vnc settings for the script to work. You can do this by running rm -rf ~/.vnc&lt;br /&gt;
&lt;br /&gt;
stop_vnc.sh may display some errors; this is normal.&lt;br /&gt;
&lt;br /&gt;
If you have trouble deleting ~/.vnc send an email to Benjamin.A.Matthews@colorado.edu&lt;br /&gt;
&lt;br /&gt;
If any of these commands fail, you may need to source /etc/profile to get the necessary environment variables (this should be fixed soon)&lt;br /&gt;
&lt;br /&gt;
VirtualGL has trouble with some threaded programs. If your OpenGL program exhibits segmentation faults or other issues, this could be the problem. Check back for the solution later. &lt;br /&gt;
&lt;br /&gt;
If the given password is rejected you can run stop_vnc.sh and restart to get a new one. Occasionally the random password generator may generate passwords which VNC doesn't like.&lt;br /&gt;
&lt;br /&gt;
If VirtualGL complains about not being able to get a 24bit FB config either vglconnect to another VirtualGL enabled server or complain to Benjamin.A.Matthews@Colorado.edu&lt;br /&gt;
&lt;br /&gt;
If your VNC connection is very slow, you might want to try changing the compression and encoding options. See your vncviewer's documentation or try this&lt;br /&gt;
  vncviewer -encodings tight -quality 6 -compresslevel 6&lt;br /&gt;
If you have trouble with text distortion try adding &lt;br /&gt;
  -nojpeg&lt;br /&gt;
&lt;br /&gt;
If you're running OSX and see an error about Zlib, try changing your compression settings (maximum quality usually works) or use a different client. RealVNC and certain versions of ChickenOfTheVNC both exhibit this issue. The latest build of TigerVNC should work reliably, as does the Java based TightVNC client.&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=VNC&amp;diff=2014</id>
		<title>VNC</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=VNC&amp;diff=2014"/>
				<updated>2023-09-21T18:03:26Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Clients (Step 2) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Virtual Network Computing (VNC)''' is a tool which projects a GUI session over the network. If may be useful if you want to use GUI tools remotely when X forwarding performs poorly. &lt;br /&gt;
&lt;br /&gt;
VNC works on a client-server architecture, where a remote system (server) runs the programs and sends the virtual screen output to the local system (client). Here, the local system would be your laptop/desktop, while the server is located on the [[PHASTA Group Machines]].&lt;br /&gt;
&lt;br /&gt;
'''For On Ramp purposes, you only need to follow the sub sections identified with steps 1 through 3: Start VNC Server, Clients, and Starting a VNC Viewer'''&lt;br /&gt;
&lt;br /&gt;
== VNC on PHASTA Machines ==&lt;br /&gt;
'''Warning: The VNC password is transmitted in clear text over the network and should not be considered secure'''&lt;br /&gt;
&lt;br /&gt;
== Server-Side Setup for PHASTA Machines ==&lt;br /&gt;
=== Start VNC Server (Step 1) ===&lt;br /&gt;
&amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; is designated to host VNC sessions.&lt;br /&gt;
&lt;br /&gt;
First connect to jumpgate via ssh in a terminal on your personal machine (If following the On Ramp you should already have this terminal opened). To start a VNC session on portal1 type the following in your jumpgate terminal with a return after each line:&lt;br /&gt;
 ssh portal1&lt;br /&gt;
 source /etc/profile.d/vncscript.sh&lt;br /&gt;
 start_vnc.sh&lt;br /&gt;
&lt;br /&gt;
This will setup the VNC viewer for your session on the PHASTA machine side of things. Read through the output from &amp;lt;code&amp;gt;start_vnc.sh&amp;lt;/code&amp;gt; as it contains crucial information and some tips which are elaborated on in this wiki. &lt;br /&gt;
&lt;br /&gt;
IMPORTANT: Make sure to remember the generated password and port number (&amp;quot;You should connect to 59zw on portal1&amp;quot;, &amp;quot;Your password is abcd1234ExamplePW&amp;quot;) so that you can reuse the session you just started. Hint: take a screenshot of the output of &amp;lt;code&amp;gt;start_vnc.sh&amp;lt;/code&amp;gt; and store it somewhere safe.&lt;br /&gt;
&lt;br /&gt;
It is common practice to leave your VNC session running on &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. Next time you want to access your desktop, just ssh into jumpgate with a tunnel between portal1's VNC port (59**) and some port on your machine. Then use a VNC client to connect to the port on your machine. See the Client (Step 2) section below for an explanation of this process.&lt;br /&gt;
&lt;br /&gt;
=== Killing a VNC Server ===&lt;br /&gt;
If for some reason you want to end your session and kill your virtual desktop, run&lt;br /&gt;
&lt;br /&gt;
 source /etc/profile&lt;br /&gt;
 stop_vnc.sh&lt;br /&gt;
&lt;br /&gt;
ONLY run this if you want to kill your virtual desktop. Most users will never need to do this as the idea is to create one session and continue to use that one for all future usage.&lt;br /&gt;
&lt;br /&gt;
=== Changing the VNC Password ===&lt;br /&gt;
While ssh'd into your session on &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;, type the following command in your terminal:&lt;br /&gt;
  /opt/tigervnc/bin/vncpasswd&lt;br /&gt;
&lt;br /&gt;
Follow the on screen instructions.&lt;br /&gt;
&lt;br /&gt;
=== View Only Mode ===&lt;br /&gt;
&lt;br /&gt;
To share your desktop with another user in view only mode set a view only password &lt;br /&gt;
by running&lt;br /&gt;
  vncpasswd&lt;br /&gt;
&lt;br /&gt;
Have the other user connect in the same way you would but have them set their viewer to be in view only mode and use your view only password. Typically this is done as follows:&lt;br /&gt;
  vncviewer -viewonly&lt;br /&gt;
&lt;br /&gt;
=== Changing the Size (Resolution) of an Existing Session ===&lt;br /&gt;
''Note: In most modern VNC clients, this can (possibly should) be done via the locally running client. See your VNC client's documentation for details. The below is kept for posterity''&lt;br /&gt;
&lt;br /&gt;
You can usually use the &amp;lt;code&amp;gt;xrandr&amp;lt;/code&amp;gt; tool to change the resolution of a running VNC session. First you'll need to know your session's display number (this should be the last digit or two of the port number). For example, if your VNC session is running on port 5902, then your screen number should be :2. For this example, we'll use screen 2. &lt;br /&gt;
&lt;br /&gt;
Once you know your screen number, you can see the list of supported modes as follows:&lt;br /&gt;
  xrandr -display :2&lt;br /&gt;
&lt;br /&gt;
Once you pick the one you want (generally the same size or smaller than the native resolution of your client), you can choose it by running a command like&lt;br /&gt;
  xrandr -s 1400x1050 -display :2&lt;br /&gt;
&lt;br /&gt;
(this example will set the resolution to 1400 pixels by 1050 pixels)&lt;br /&gt;
&lt;br /&gt;
You'll probably be disconnected at this point, but when you reconnect your screen size should be changed (hopefully without crashing your running programs).&lt;br /&gt;
&lt;br /&gt;
=== Finding an Existing Session ===&lt;br /&gt;
SSH to portal1 and then run:&lt;br /&gt;
  /opt/vnc_script/findsession.sh&lt;br /&gt;
&lt;br /&gt;
Which will return the shortened port number of each of your currently running sessions.&lt;br /&gt;
&lt;br /&gt;
== Client-Side Setup for PHASTA Machines ==&lt;br /&gt;
=== Clients (Step 2) === &lt;br /&gt;
&lt;br /&gt;
First you need to have a VNC viewer installed on your personal machine. &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; uses TurboVNC from the VirtualGL project, available from [http://www.virtualgl.org/Downloads/TurboVNC their website]&lt;br /&gt;
&lt;br /&gt;
Other VNC viewers will also work, such as [https://www.tightvnc.com/download.php TightVNC] and [https://www.realvnc.com/en/connect/download/viewer/ RealVNC]. Download and install the one you like best for your personal machine (RealVNC seems to be the go to for Mac users in the group).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The instructions given when you started the session on &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; (the ones you should have taken a screen shot of in Step 1 above) are OK, but it always tells you to start a session (in a terminal on your mac or linux machine command line) with the &amp;lt;code&amp;gt;ssh -L5905:portal1:59zw jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt; command, where &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; will be different for each user. That suggestion is OK if you never plan to connect to anyone else's session, but since we often collaborate by sharing VNC sessions, the better practice we adopt is to use &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; in place of the suggested 05 (which just an arbitrary local port on your laptop). For example, when I created a session the last four numbers of the connection were &amp;lt;code&amp;gt;5923&amp;lt;/code&amp;gt;, thus &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; for me is &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; and the best practice is to ignore the script suggestion in favor of &amp;lt;code&amp;gt;ssh -L5923:portal1:5923 jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The easiest way to set up the portal from the get-go (after you have created the VNC session on the PHASTA Machien side of things and left it open, AKA Step 1 above) is to close out of the terminal on your personal machine, reopen it, and run only this command where &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; is your assigned port number:&lt;br /&gt;
&lt;br /&gt;
 ssh -L59zw:portal1:59zw USERNAME@jumpgate-phasta.colorado.edu&lt;br /&gt;
&lt;br /&gt;
 '''Windows 8'''&lt;br /&gt;
 Close the terminal that was established with PuTTY. Start a new one using PuTTY and entering the following in the Host Name, replacing zw with your assigned port number:&lt;br /&gt;
 &amp;lt;code&amp;gt;-L59zw:portal1:59zw USERNAME@jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
 Again ensuring connection type is set to SSH. In the &amp;quot;Port&amp;quot; field, enter the &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; assigned port number. Click on &amp;quot;Open&amp;quot;. You now have an established VNC connection with &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. Remaining steps are the same as non-Windows 8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will then be prompted to enter your password (not the one that was just created for the VNC, but the one that you usually use to connect to jumpgate). After entering your password you will be ready for &amp;quot;Starting a VNC Viewer (Step 3)&amp;quot; in the next section. The reason that you must exit and reopen the command prompt is because you cannot connect to the VNC portal zw if you are already connected to jumpgate or portal1; you must connect to jumpgate and your session zw simultaneously for the VNC portal to work correctly.&lt;br /&gt;
&lt;br /&gt;
=== Starting a VNC viewer (Step 3) ===&lt;br /&gt;
&lt;br /&gt;
Whether you followed the Mac or Linux or Windows instructions above, successful completion will have established a tunnel from your laptop to &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. The last step is to start a VNC viewer (graphical windowing program) that uses this tunnel to display your &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; session on the screen of your laptop. There are a variety of choices for each platform and they evolve but their operation seems, thankfully, pretty universal. &lt;br /&gt;
&lt;br /&gt;
The most basic input is that they provide a box that says &amp;quot;VNC Server&amp;quot;. You will want to type &amp;lt;code&amp;gt;localhost:zw&amp;lt;/code&amp;gt; in that box and then apply start (or whatever the particular applications action button is). The VNC Viewer will them prompt you for the password that was generated for this &amp;quot;zw&amp;quot; numbered session (Your version of the generated &amp;quot;abcd1234ExamplePW&amp;quot; from previous steps. Note if you changed that VNC password already, use the one you created). &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; here will need to be whatever you used for the &amp;lt;code&amp;gt;-L59zw:portal1:59zw&amp;lt;/code&amp;gt; part of the tunnel. What the number is actually doing is telling this local VNC viewer on which port you have established a tunnel with the session for which you are starting the VNC viewer. Note it is possible to have several different simultaneous sessions. Each needs its own tunnel (established by repeating the process above with a unique &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt;) and then a corresponding &amp;quot;new&amp;quot; VNC viewer. In this way we might continue to work in our own session but then take a break to look at a collaborator's session without having to close out the tunnel and viewer pair.&lt;br /&gt;
&lt;br /&gt;
Now that you've connected to the PHASTA machines, it's time to learn a bit mroe about using a UNIX based system (Linux). To continue with the On Ramp click [[UNIX|here]]&lt;br /&gt;
&lt;br /&gt;
=== Web Based Viewer ===&lt;br /&gt;
&lt;br /&gt;
If you can't or don't want to install a VNC viewer you can use a Java based one. You will need a JVM and a Java browser plugin. You will also need the port that the start_vnc script assigned you to be free on your local computer&lt;br /&gt;
&lt;br /&gt;
Forward your session through jumpgate as before before, adding a second port, 580n. For example, if the script tells you to &lt;br /&gt;
&lt;br /&gt;
ssh -L5905:portal1:5902 jumpgate-phasta.colorado.edu you should&lt;br /&gt;
  ssh -L5902:portal1:5902 -L5802:portal1:5802 jumpgate-phasta.colorado.edu&lt;br /&gt;
Then point your browser to http://localhost:5802 and log in with the password specified by the script when prompted. (Replace 2 with the value specified by the script)&lt;br /&gt;
&lt;br /&gt;
== OpenGL == &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; is equipped with a VirtualGL install which will allow you to use OpenGL programs (which do not use pthreads)&lt;br /&gt;
&lt;br /&gt;
Simply wrap your OpenGL program with the &amp;lt;code&amp;gt;vglrun&amp;lt;/code&amp;gt; command&lt;br /&gt;
  vlgrun glxgears&lt;br /&gt;
&lt;br /&gt;
Our lab has 2 VirtualGL servers you can connect to from &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. You must connect to one of them for large memory and/or computationally intensive processes.&lt;br /&gt;
The names of the servers are &amp;lt;code&amp;gt;viz002&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;viz003&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;viz001&amp;lt;/code&amp;gt; is probably never coming back to life). &lt;br /&gt;
&amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; doesn't have a particularly fast graphics processor and MUST NOT be used for large memory or computationally intensive process)&lt;br /&gt;
&lt;br /&gt;
  vglconnect -s viz002&lt;br /&gt;
or&lt;br /&gt;
  vglconnect -s viz003&lt;br /&gt;
&lt;br /&gt;
from this connection you will want to run graphic applications (e.g., SimModeler or ParaView) prefaced by the command &amp;lt;code&amp;gt;vglrun&amp;lt;/code&amp;gt;.  You can test that you have it setup right&lt;br /&gt;
with the toy-app &amp;lt;code&amp;gt;glxgears&amp;lt;/code&amp;gt; as follows&lt;br /&gt;
&lt;br /&gt;
  vglrun glxgears&lt;br /&gt;
&lt;br /&gt;
Note that VGL uses a number of threads. If you have trouble with &amp;lt;code&amp;gt;vglrun&amp;lt;/code&amp;gt; crashing with a message about &amp;lt;code&amp;gt;Thread::Start()&amp;lt;/code&amp;gt; make sure you haven't set your stack size too large (remove any &amp;lt;code&amp;gt;ulimit -s&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ulimit -n&amp;lt;/code&amp;gt; calls from your shell start scripts).&lt;br /&gt;
&lt;br /&gt;
NOTE ALSO:  The primary purpose for &amp;lt;code&amp;gt;viz00x&amp;lt;/code&amp;gt; is for visualization and for debugging.  Production runs should be done elsewhere.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting == &lt;br /&gt;
&lt;br /&gt;
If you have used vncserver (It doesn't matter which version) before, you will need to clear your vnc settings for the script to work. You can do this by running rm -rf ~/.vnc&lt;br /&gt;
&lt;br /&gt;
stop_vnc.sh may display some errors; this is normal.&lt;br /&gt;
&lt;br /&gt;
If you have trouble deleting ~/.vnc send an email to Benjamin.A.Matthews@colorado.edu&lt;br /&gt;
&lt;br /&gt;
If any of these commands fail, you may need to source /etc/profile to get the necessary environment variables (this should be fixed soon)&lt;br /&gt;
&lt;br /&gt;
VirtualGL has trouble with some threaded programs. If your OpenGL program exhibits segmentation faults or other issues, this could be the problem. Check back for the solution later. &lt;br /&gt;
&lt;br /&gt;
If the given password is rejected you can run stop_vnc.sh and restart to get a new one. Occasionally the random password generator may generate passwords which VNC doesn't like.&lt;br /&gt;
&lt;br /&gt;
If VirtualGL complains about not being able to get a 24bit FB config either vglconnect to another VirtualGL enabled server or complain to Benjamin.A.Matthews@Colorado.edu&lt;br /&gt;
&lt;br /&gt;
If your VNC connection is very slow, you might want to try changing the compression and encoding options. See your vncviewer's documentation or try this&lt;br /&gt;
  vncviewer -encodings tight -quality 6 -compresslevel 6&lt;br /&gt;
If you have trouble with text distortion try adding &lt;br /&gt;
  -nojpeg&lt;br /&gt;
&lt;br /&gt;
If you're running OSX and see an error about Zlib, try changing your compression settings (maximum quality usually works) or use a different client. RealVNC and certain versions of ChickenOfTheVNC both exhibit this issue. The latest build of TigerVNC should work reliably, as does the Java based TightVNC client.&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=VNC&amp;diff=2013</id>
		<title>VNC</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=VNC&amp;diff=2013"/>
				<updated>2023-09-21T18:03:06Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Clients (Step 2) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Virtual Network Computing (VNC)''' is a tool which projects a GUI session over the network. If may be useful if you want to use GUI tools remotely when X forwarding performs poorly. &lt;br /&gt;
&lt;br /&gt;
VNC works on a client-server architecture, where a remote system (server) runs the programs and sends the virtual screen output to the local system (client). Here, the local system would be your laptop/desktop, while the server is located on the [[PHASTA Group Machines]].&lt;br /&gt;
&lt;br /&gt;
'''For On Ramp purposes, you only need to follow the sub sections identified with steps 1 through 3: Start VNC Server, Clients, and Starting a VNC Viewer'''&lt;br /&gt;
&lt;br /&gt;
== VNC on PHASTA Machines ==&lt;br /&gt;
'''Warning: The VNC password is transmitted in clear text over the network and should not be considered secure'''&lt;br /&gt;
&lt;br /&gt;
== Server-Side Setup for PHASTA Machines ==&lt;br /&gt;
=== Start VNC Server (Step 1) ===&lt;br /&gt;
&amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; is designated to host VNC sessions.&lt;br /&gt;
&lt;br /&gt;
First connect to jumpgate via ssh in a terminal on your personal machine (If following the On Ramp you should already have this terminal opened). To start a VNC session on portal1 type the following in your jumpgate terminal with a return after each line:&lt;br /&gt;
 ssh portal1&lt;br /&gt;
 source /etc/profile.d/vncscript.sh&lt;br /&gt;
 start_vnc.sh&lt;br /&gt;
&lt;br /&gt;
This will setup the VNC viewer for your session on the PHASTA machine side of things. Read through the output from &amp;lt;code&amp;gt;start_vnc.sh&amp;lt;/code&amp;gt; as it contains crucial information and some tips which are elaborated on in this wiki. &lt;br /&gt;
&lt;br /&gt;
IMPORTANT: Make sure to remember the generated password and port number (&amp;quot;You should connect to 59zw on portal1&amp;quot;, &amp;quot;Your password is abcd1234ExamplePW&amp;quot;) so that you can reuse the session you just started. Hint: take a screenshot of the output of &amp;lt;code&amp;gt;start_vnc.sh&amp;lt;/code&amp;gt; and store it somewhere safe.&lt;br /&gt;
&lt;br /&gt;
It is common practice to leave your VNC session running on &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. Next time you want to access your desktop, just ssh into jumpgate with a tunnel between portal1's VNC port (59**) and some port on your machine. Then use a VNC client to connect to the port on your machine. See the Client (Step 2) section below for an explanation of this process.&lt;br /&gt;
&lt;br /&gt;
=== Killing a VNC Server ===&lt;br /&gt;
If for some reason you want to end your session and kill your virtual desktop, run&lt;br /&gt;
&lt;br /&gt;
 source /etc/profile&lt;br /&gt;
 stop_vnc.sh&lt;br /&gt;
&lt;br /&gt;
ONLY run this if you want to kill your virtual desktop. Most users will never need to do this as the idea is to create one session and continue to use that one for all future usage.&lt;br /&gt;
&lt;br /&gt;
=== Changing the VNC Password ===&lt;br /&gt;
While ssh'd into your session on &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;, type the following command in your terminal:&lt;br /&gt;
  /opt/tigervnc/bin/vncpasswd&lt;br /&gt;
&lt;br /&gt;
Follow the on screen instructions.&lt;br /&gt;
&lt;br /&gt;
=== View Only Mode ===&lt;br /&gt;
&lt;br /&gt;
To share your desktop with another user in view only mode set a view only password &lt;br /&gt;
by running&lt;br /&gt;
  vncpasswd&lt;br /&gt;
&lt;br /&gt;
Have the other user connect in the same way you would but have them set their viewer to be in view only mode and use your view only password. Typically this is done as follows:&lt;br /&gt;
  vncviewer -viewonly&lt;br /&gt;
&lt;br /&gt;
=== Changing the Size (Resolution) of an Existing Session ===&lt;br /&gt;
''Note: In most modern VNC clients, this can (possibly should) be done via the locally running client. See your VNC client's documentation for details. The below is kept for posterity''&lt;br /&gt;
&lt;br /&gt;
You can usually use the &amp;lt;code&amp;gt;xrandr&amp;lt;/code&amp;gt; tool to change the resolution of a running VNC session. First you'll need to know your session's display number (this should be the last digit or two of the port number). For example, if your VNC session is running on port 5902, then your screen number should be :2. For this example, we'll use screen 2. &lt;br /&gt;
&lt;br /&gt;
Once you know your screen number, you can see the list of supported modes as follows:&lt;br /&gt;
  xrandr -display :2&lt;br /&gt;
&lt;br /&gt;
Once you pick the one you want (generally the same size or smaller than the native resolution of your client), you can choose it by running a command like&lt;br /&gt;
  xrandr -s 1400x1050 -display :2&lt;br /&gt;
&lt;br /&gt;
(this example will set the resolution to 1400 pixels by 1050 pixels)&lt;br /&gt;
&lt;br /&gt;
You'll probably be disconnected at this point, but when you reconnect your screen size should be changed (hopefully without crashing your running programs).&lt;br /&gt;
&lt;br /&gt;
=== Finding an Existing Session ===&lt;br /&gt;
SSH to portal1 and then run:&lt;br /&gt;
  /opt/vnc_script/findsession.sh&lt;br /&gt;
&lt;br /&gt;
Which will return the shortened port number of each of your currently running sessions.&lt;br /&gt;
&lt;br /&gt;
== Client-Side Setup for PHASTA Machines ==&lt;br /&gt;
=== Clients (Step 2) === &lt;br /&gt;
&lt;br /&gt;
First you need to have a VNC viewer installed on your personal machine. &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; uses TurboVNC from the VirtualGL project, available from [http://www.virtualgl.org/Downloads/TurboVNC their website]&lt;br /&gt;
&lt;br /&gt;
Other VNC viewers will also work, such as [https://www.tightvnc.com/download.php TightVNC] and [https://www.realvnc.com/en/connect/download/viewer/ RealVNC]. Download and install the one you like best for your personal machine (RealVNC seems to be the go to for Mac users in the group).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The instructions given when you started the session on &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; (the ones you should have taken a screen shot of in Step 1 above) are OK, but it always tells you to start a session (in a terminal on your mac or linux machine command line) with the &amp;lt;code&amp;gt;ssh -L5905:portal1:59zw jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt; command&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; will be different for each user. That suggestion is OK if you never plan to connect to anyone else's session, but since we often collaborate by sharing VNC sessions, the better practice we adopt is to use &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; in place of the suggested 05 (which just an arbitrary local port on your laptop). For example, when I created a session the last four numbers of the connection were &amp;lt;code&amp;gt;5923&amp;lt;/code&amp;gt;, thus &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; for me is &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; and the best practice is to ignore the script suggestion in favor of &amp;lt;code&amp;gt;ssh -L5923:portal1:5923 jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The easiest way to set up the portal from the get-go (after you have created the VNC session on the PHASTA Machien side of things and left it open, AKA Step 1 above) is to close out of the terminal on your personal machine, reopen it, and run only this command where &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; is your assigned port number:&lt;br /&gt;
&lt;br /&gt;
 ssh -L59zw:portal1:59zw USERNAME@jumpgate-phasta.colorado.edu&lt;br /&gt;
&lt;br /&gt;
 '''Windows 8'''&lt;br /&gt;
 Close the terminal that was established with PuTTY. Start a new one using PuTTY and entering the following in the Host Name, replacing zw with your assigned port number:&lt;br /&gt;
 &amp;lt;code&amp;gt;-L59zw:portal1:59zw USERNAME@jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
 Again ensuring connection type is set to SSH. In the &amp;quot;Port&amp;quot; field, enter the &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; assigned port number. Click on &amp;quot;Open&amp;quot;. You now have an established VNC connection with &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. Remaining steps are the same as non-Windows 8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will then be prompted to enter your password (not the one that was just created for the VNC, but the one that you usually use to connect to jumpgate). After entering your password you will be ready for &amp;quot;Starting a VNC Viewer (Step 3)&amp;quot; in the next section. The reason that you must exit and reopen the command prompt is because you cannot connect to the VNC portal zw if you are already connected to jumpgate or portal1; you must connect to jumpgate and your session zw simultaneously for the VNC portal to work correctly.&lt;br /&gt;
&lt;br /&gt;
=== Starting a VNC viewer (Step 3) ===&lt;br /&gt;
&lt;br /&gt;
Whether you followed the Mac or Linux or Windows instructions above, successful completion will have established a tunnel from your laptop to &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. The last step is to start a VNC viewer (graphical windowing program) that uses this tunnel to display your &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; session on the screen of your laptop. There are a variety of choices for each platform and they evolve but their operation seems, thankfully, pretty universal. &lt;br /&gt;
&lt;br /&gt;
The most basic input is that they provide a box that says &amp;quot;VNC Server&amp;quot;. You will want to type &amp;lt;code&amp;gt;localhost:zw&amp;lt;/code&amp;gt; in that box and then apply start (or whatever the particular applications action button is). The VNC Viewer will them prompt you for the password that was generated for this &amp;quot;zw&amp;quot; numbered session (Your version of the generated &amp;quot;abcd1234ExamplePW&amp;quot; from previous steps. Note if you changed that VNC password already, use the one you created). &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; here will need to be whatever you used for the &amp;lt;code&amp;gt;-L59zw:portal1:59zw&amp;lt;/code&amp;gt; part of the tunnel. What the number is actually doing is telling this local VNC viewer on which port you have established a tunnel with the session for which you are starting the VNC viewer. Note it is possible to have several different simultaneous sessions. Each needs its own tunnel (established by repeating the process above with a unique &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt;) and then a corresponding &amp;quot;new&amp;quot; VNC viewer. In this way we might continue to work in our own session but then take a break to look at a collaborator's session without having to close out the tunnel and viewer pair.&lt;br /&gt;
&lt;br /&gt;
Now that you've connected to the PHASTA machines, it's time to learn a bit mroe about using a UNIX based system (Linux). To continue with the On Ramp click [[UNIX|here]]&lt;br /&gt;
&lt;br /&gt;
=== Web Based Viewer ===&lt;br /&gt;
&lt;br /&gt;
If you can't or don't want to install a VNC viewer you can use a Java based one. You will need a JVM and a Java browser plugin. You will also need the port that the start_vnc script assigned you to be free on your local computer&lt;br /&gt;
&lt;br /&gt;
Forward your session through jumpgate as before before, adding a second port, 580n. For example, if the script tells you to &lt;br /&gt;
&lt;br /&gt;
ssh -L5905:portal1:5902 jumpgate-phasta.colorado.edu you should&lt;br /&gt;
  ssh -L5902:portal1:5902 -L5802:portal1:5802 jumpgate-phasta.colorado.edu&lt;br /&gt;
Then point your browser to http://localhost:5802 and log in with the password specified by the script when prompted. (Replace 2 with the value specified by the script)&lt;br /&gt;
&lt;br /&gt;
== OpenGL == &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; is equipped with a VirtualGL install which will allow you to use OpenGL programs (which do not use pthreads)&lt;br /&gt;
&lt;br /&gt;
Simply wrap your OpenGL program with the &amp;lt;code&amp;gt;vglrun&amp;lt;/code&amp;gt; command&lt;br /&gt;
  vlgrun glxgears&lt;br /&gt;
&lt;br /&gt;
Our lab has 2 VirtualGL servers you can connect to from &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. You must connect to one of them for large memory and/or computationally intensive processes.&lt;br /&gt;
The names of the servers are &amp;lt;code&amp;gt;viz002&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;viz003&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;viz001&amp;lt;/code&amp;gt; is probably never coming back to life). &lt;br /&gt;
&amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; doesn't have a particularly fast graphics processor and MUST NOT be used for large memory or computationally intensive process)&lt;br /&gt;
&lt;br /&gt;
  vglconnect -s viz002&lt;br /&gt;
or&lt;br /&gt;
  vglconnect -s viz003&lt;br /&gt;
&lt;br /&gt;
from this connection you will want to run graphic applications (e.g., SimModeler or ParaView) prefaced by the command &amp;lt;code&amp;gt;vglrun&amp;lt;/code&amp;gt;.  You can test that you have it setup right&lt;br /&gt;
with the toy-app &amp;lt;code&amp;gt;glxgears&amp;lt;/code&amp;gt; as follows&lt;br /&gt;
&lt;br /&gt;
  vglrun glxgears&lt;br /&gt;
&lt;br /&gt;
Note that VGL uses a number of threads. If you have trouble with &amp;lt;code&amp;gt;vglrun&amp;lt;/code&amp;gt; crashing with a message about &amp;lt;code&amp;gt;Thread::Start()&amp;lt;/code&amp;gt; make sure you haven't set your stack size too large (remove any &amp;lt;code&amp;gt;ulimit -s&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ulimit -n&amp;lt;/code&amp;gt; calls from your shell start scripts).&lt;br /&gt;
&lt;br /&gt;
NOTE ALSO:  The primary purpose for &amp;lt;code&amp;gt;viz00x&amp;lt;/code&amp;gt; is for visualization and for debugging.  Production runs should be done elsewhere.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting == &lt;br /&gt;
&lt;br /&gt;
If you have used vncserver (It doesn't matter which version) before, you will need to clear your vnc settings for the script to work. You can do this by running rm -rf ~/.vnc&lt;br /&gt;
&lt;br /&gt;
stop_vnc.sh may display some errors; this is normal.&lt;br /&gt;
&lt;br /&gt;
If you have trouble deleting ~/.vnc send an email to Benjamin.A.Matthews@colorado.edu&lt;br /&gt;
&lt;br /&gt;
If any of these commands fail, you may need to source /etc/profile to get the necessary environment variables (this should be fixed soon)&lt;br /&gt;
&lt;br /&gt;
VirtualGL has trouble with some threaded programs. If your OpenGL program exhibits segmentation faults or other issues, this could be the problem. Check back for the solution later. &lt;br /&gt;
&lt;br /&gt;
If the given password is rejected you can run stop_vnc.sh and restart to get a new one. Occasionally the random password generator may generate passwords which VNC doesn't like.&lt;br /&gt;
&lt;br /&gt;
If VirtualGL complains about not being able to get a 24bit FB config either vglconnect to another VirtualGL enabled server or complain to Benjamin.A.Matthews@Colorado.edu&lt;br /&gt;
&lt;br /&gt;
If your VNC connection is very slow, you might want to try changing the compression and encoding options. See your vncviewer's documentation or try this&lt;br /&gt;
  vncviewer -encodings tight -quality 6 -compresslevel 6&lt;br /&gt;
If you have trouble with text distortion try adding &lt;br /&gt;
  -nojpeg&lt;br /&gt;
&lt;br /&gt;
If you're running OSX and see an error about Zlib, try changing your compression settings (maximum quality usually works) or use a different client. RealVNC and certain versions of ChickenOfTheVNC both exhibit this issue. The latest build of TigerVNC should work reliably, as does the Java based TightVNC client.&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=VNC&amp;diff=2012</id>
		<title>VNC</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=VNC&amp;diff=2012"/>
				<updated>2023-09-21T18:00:08Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Start VNC Server (Step 1) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Virtual Network Computing (VNC)''' is a tool which projects a GUI session over the network. If may be useful if you want to use GUI tools remotely when X forwarding performs poorly. &lt;br /&gt;
&lt;br /&gt;
VNC works on a client-server architecture, where a remote system (server) runs the programs and sends the virtual screen output to the local system (client). Here, the local system would be your laptop/desktop, while the server is located on the [[PHASTA Group Machines]].&lt;br /&gt;
&lt;br /&gt;
'''For On Ramp purposes, you only need to follow the sub sections identified with steps 1 through 3: Start VNC Server, Clients, and Starting a VNC Viewer'''&lt;br /&gt;
&lt;br /&gt;
== VNC on PHASTA Machines ==&lt;br /&gt;
'''Warning: The VNC password is transmitted in clear text over the network and should not be considered secure'''&lt;br /&gt;
&lt;br /&gt;
== Server-Side Setup for PHASTA Machines ==&lt;br /&gt;
=== Start VNC Server (Step 1) ===&lt;br /&gt;
&amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; is designated to host VNC sessions.&lt;br /&gt;
&lt;br /&gt;
First connect to jumpgate via ssh in a terminal on your personal machine (If following the On Ramp you should already have this terminal opened). To start a VNC session on portal1 type the following in your jumpgate terminal with a return after each line:&lt;br /&gt;
 ssh portal1&lt;br /&gt;
 source /etc/profile.d/vncscript.sh&lt;br /&gt;
 start_vnc.sh&lt;br /&gt;
&lt;br /&gt;
This will setup the VNC viewer for your session on the PHASTA machine side of things. Read through the output from &amp;lt;code&amp;gt;start_vnc.sh&amp;lt;/code&amp;gt; as it contains crucial information and some tips which are elaborated on in this wiki. &lt;br /&gt;
&lt;br /&gt;
IMPORTANT: Make sure to remember the generated password and port number (&amp;quot;You should connect to 59zw on portal1&amp;quot;, &amp;quot;Your password is abcd1234ExamplePW&amp;quot;) so that you can reuse the session you just started. Hint: take a screenshot of the output of &amp;lt;code&amp;gt;start_vnc.sh&amp;lt;/code&amp;gt; and store it somewhere safe.&lt;br /&gt;
&lt;br /&gt;
It is common practice to leave your VNC session running on &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. Next time you want to access your desktop, just ssh into jumpgate with a tunnel between portal1's VNC port (59**) and some port on your machine. Then use a VNC client to connect to the port on your machine. See the Client (Step 2) section below for an explanation of this process.&lt;br /&gt;
&lt;br /&gt;
=== Killing a VNC Server ===&lt;br /&gt;
If for some reason you want to end your session and kill your virtual desktop, run&lt;br /&gt;
&lt;br /&gt;
 source /etc/profile&lt;br /&gt;
 stop_vnc.sh&lt;br /&gt;
&lt;br /&gt;
ONLY run this if you want to kill your virtual desktop. Most users will never need to do this as the idea is to create one session and continue to use that one for all future usage.&lt;br /&gt;
&lt;br /&gt;
=== Changing the VNC Password ===&lt;br /&gt;
While ssh'd into your session on &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;, type the following command in your terminal:&lt;br /&gt;
  /opt/tigervnc/bin/vncpasswd&lt;br /&gt;
&lt;br /&gt;
Follow the on screen instructions.&lt;br /&gt;
&lt;br /&gt;
=== View Only Mode ===&lt;br /&gt;
&lt;br /&gt;
To share your desktop with another user in view only mode set a view only password &lt;br /&gt;
by running&lt;br /&gt;
  vncpasswd&lt;br /&gt;
&lt;br /&gt;
Have the other user connect in the same way you would but have them set their viewer to be in view only mode and use your view only password. Typically this is done as follows:&lt;br /&gt;
  vncviewer -viewonly&lt;br /&gt;
&lt;br /&gt;
=== Changing the Size (Resolution) of an Existing Session ===&lt;br /&gt;
''Note: In most modern VNC clients, this can (possibly should) be done via the locally running client. See your VNC client's documentation for details. The below is kept for posterity''&lt;br /&gt;
&lt;br /&gt;
You can usually use the &amp;lt;code&amp;gt;xrandr&amp;lt;/code&amp;gt; tool to change the resolution of a running VNC session. First you'll need to know your session's display number (this should be the last digit or two of the port number). For example, if your VNC session is running on port 5902, then your screen number should be :2. For this example, we'll use screen 2. &lt;br /&gt;
&lt;br /&gt;
Once you know your screen number, you can see the list of supported modes as follows:&lt;br /&gt;
  xrandr -display :2&lt;br /&gt;
&lt;br /&gt;
Once you pick the one you want (generally the same size or smaller than the native resolution of your client), you can choose it by running a command like&lt;br /&gt;
  xrandr -s 1400x1050 -display :2&lt;br /&gt;
&lt;br /&gt;
(this example will set the resolution to 1400 pixels by 1050 pixels)&lt;br /&gt;
&lt;br /&gt;
You'll probably be disconnected at this point, but when you reconnect your screen size should be changed (hopefully without crashing your running programs).&lt;br /&gt;
&lt;br /&gt;
=== Finding an Existing Session ===&lt;br /&gt;
SSH to portal1 and then run:&lt;br /&gt;
  /opt/vnc_script/findsession.sh&lt;br /&gt;
&lt;br /&gt;
Which will return the shortened port number of each of your currently running sessions.&lt;br /&gt;
&lt;br /&gt;
== Client-Side Setup for PHASTA Machines ==&lt;br /&gt;
=== Clients (Step 2) === &lt;br /&gt;
&lt;br /&gt;
First you need to have a VNC viewer installed on your personal machine. &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; uses TurboVNC from the VirtualGL project, available from [http://www.virtualgl.org/Downloads/TurboVNC their website]&lt;br /&gt;
&lt;br /&gt;
Other VNC viewers will also work, such as [https://www.tightvnc.com/download.php TightVNC] and [https://www.realvnc.com/en/connect/download/viewer/ RealVNC]. Download and install the one you like best for your personal machine (RealVNC seems to be the go to for Mac users in the group).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The instructions given when you started the session on &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; (the ones you should have taken a screen shot of in Step 1 above) are OK, but it always tells you to start a session (in a terminal on your mac or linux machine command line) with the following command&lt;br /&gt;
&lt;br /&gt;
 ssh -L5905:portal1:59zw jumpgate-phasta.colorado.edu&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; will be different for each user. That suggestion is OK if you never plan to connect to anyone else's session, but since we often collaborate by sharing VNC sessions, the better practice we adopt is to use &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; in place of the suggested 05 (which just an arbitrary local port on your laptop). For example, when I created a session the last four numbers of the connection were &amp;lt;code&amp;gt;5923&amp;lt;/code&amp;gt;, thus &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; for me is &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; and the best practice is to ignore the script suggestion in favor of:&lt;br /&gt;
&lt;br /&gt;
 ssh -L5923:portal1:5923 jumpgate-phasta.colorado.edu&lt;br /&gt;
&lt;br /&gt;
The easiest way to set up the portal from the get-go (after you have created the VNC session on the PHASTA Machien side of things and left it open, AKA Step 1 above) is to close out of the terminal on your personal machine, reopen it, and run only this command where &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; is your assigned port number:&lt;br /&gt;
&lt;br /&gt;
 ssh -L59zw:portal1:59zw USERNAME@jumpgate-phasta.colorado.edu&lt;br /&gt;
&lt;br /&gt;
 '''Windows 8'''&lt;br /&gt;
 Close the terminal that was established with PuTTY. Start a new one using PuTTY and entering the following in the Host Name, replacing zw with your assigned port number:&lt;br /&gt;
 &amp;lt;code&amp;gt;-L59zw:portal1:59zw USERNAME@jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
 Again ensuring connection type is set to SSH. In the &amp;quot;Port&amp;quot; field, enter the &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; assigned port number. Click on &amp;quot;Open&amp;quot;. You now have an established VNC connection with &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. Remaining steps are the same as non-Windows 8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will then be prompted to enter your password (not the one that was just created for the VNC, but the one that you usually use to connect to jumpgate). After entering your password you will be ready for &amp;quot;Starting a VNC Viewer (Step 3)&amp;quot; in the next section. The reason that you must exit and reopen the command prompt is because you cannot connect to the VNC portal zw if you are already connected to jumpgate or portal1; you must connect to jumpgate and your session zw simultaneously for the VNC portal to work correctly.&lt;br /&gt;
&lt;br /&gt;
=== Starting a VNC viewer (Step 3) ===&lt;br /&gt;
&lt;br /&gt;
Whether you followed the Mac or Linux or Windows instructions above, successful completion will have established a tunnel from your laptop to &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. The last step is to start a VNC viewer (graphical windowing program) that uses this tunnel to display your &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; session on the screen of your laptop. There are a variety of choices for each platform and they evolve but their operation seems, thankfully, pretty universal. &lt;br /&gt;
&lt;br /&gt;
The most basic input is that they provide a box that says &amp;quot;VNC Server&amp;quot;. You will want to type &amp;lt;code&amp;gt;localhost:zw&amp;lt;/code&amp;gt; in that box and then apply start (or whatever the particular applications action button is). The VNC Viewer will them prompt you for the password that was generated for this &amp;quot;zw&amp;quot; numbered session (Your version of the generated &amp;quot;abcd1234ExamplePW&amp;quot; from previous steps. Note if you changed that VNC password already, use the one you created). &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; here will need to be whatever you used for the &amp;lt;code&amp;gt;-L59zw:portal1:59zw&amp;lt;/code&amp;gt; part of the tunnel. What the number is actually doing is telling this local VNC viewer on which port you have established a tunnel with the session for which you are starting the VNC viewer. Note it is possible to have several different simultaneous sessions. Each needs its own tunnel (established by repeating the process above with a unique &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt;) and then a corresponding &amp;quot;new&amp;quot; VNC viewer. In this way we might continue to work in our own session but then take a break to look at a collaborator's session without having to close out the tunnel and viewer pair.&lt;br /&gt;
&lt;br /&gt;
Now that you've connected to the PHASTA machines, it's time to learn a bit mroe about using a UNIX based system (Linux). To continue with the On Ramp click [[UNIX|here]]&lt;br /&gt;
&lt;br /&gt;
=== Web Based Viewer ===&lt;br /&gt;
&lt;br /&gt;
If you can't or don't want to install a VNC viewer you can use a Java based one. You will need a JVM and a Java browser plugin. You will also need the port that the start_vnc script assigned you to be free on your local computer&lt;br /&gt;
&lt;br /&gt;
Forward your session through jumpgate as before before, adding a second port, 580n. For example, if the script tells you to &lt;br /&gt;
&lt;br /&gt;
ssh -L5905:portal1:5902 jumpgate-phasta.colorado.edu you should&lt;br /&gt;
  ssh -L5902:portal1:5902 -L5802:portal1:5802 jumpgate-phasta.colorado.edu&lt;br /&gt;
Then point your browser to http://localhost:5802 and log in with the password specified by the script when prompted. (Replace 2 with the value specified by the script)&lt;br /&gt;
&lt;br /&gt;
== OpenGL == &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; is equipped with a VirtualGL install which will allow you to use OpenGL programs (which do not use pthreads)&lt;br /&gt;
&lt;br /&gt;
Simply wrap your OpenGL program with the &amp;lt;code&amp;gt;vglrun&amp;lt;/code&amp;gt; command&lt;br /&gt;
  vlgrun glxgears&lt;br /&gt;
&lt;br /&gt;
Our lab has 2 VirtualGL servers you can connect to from &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. You must connect to one of them for large memory and/or computationally intensive processes.&lt;br /&gt;
The names of the servers are &amp;lt;code&amp;gt;viz002&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;viz003&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;viz001&amp;lt;/code&amp;gt; is probably never coming back to life). &lt;br /&gt;
&amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; doesn't have a particularly fast graphics processor and MUST NOT be used for large memory or computationally intensive process)&lt;br /&gt;
&lt;br /&gt;
  vglconnect -s viz002&lt;br /&gt;
or&lt;br /&gt;
  vglconnect -s viz003&lt;br /&gt;
&lt;br /&gt;
from this connection you will want to run graphic applications (e.g., SimModeler or ParaView) prefaced by the command &amp;lt;code&amp;gt;vglrun&amp;lt;/code&amp;gt;.  You can test that you have it setup right&lt;br /&gt;
with the toy-app &amp;lt;code&amp;gt;glxgears&amp;lt;/code&amp;gt; as follows&lt;br /&gt;
&lt;br /&gt;
  vglrun glxgears&lt;br /&gt;
&lt;br /&gt;
Note that VGL uses a number of threads. If you have trouble with &amp;lt;code&amp;gt;vglrun&amp;lt;/code&amp;gt; crashing with a message about &amp;lt;code&amp;gt;Thread::Start()&amp;lt;/code&amp;gt; make sure you haven't set your stack size too large (remove any &amp;lt;code&amp;gt;ulimit -s&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ulimit -n&amp;lt;/code&amp;gt; calls from your shell start scripts).&lt;br /&gt;
&lt;br /&gt;
NOTE ALSO:  The primary purpose for &amp;lt;code&amp;gt;viz00x&amp;lt;/code&amp;gt; is for visualization and for debugging.  Production runs should be done elsewhere.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting == &lt;br /&gt;
&lt;br /&gt;
If you have used vncserver (It doesn't matter which version) before, you will need to clear your vnc settings for the script to work. You can do this by running rm -rf ~/.vnc&lt;br /&gt;
&lt;br /&gt;
stop_vnc.sh may display some errors; this is normal.&lt;br /&gt;
&lt;br /&gt;
If you have trouble deleting ~/.vnc send an email to Benjamin.A.Matthews@colorado.edu&lt;br /&gt;
&lt;br /&gt;
If any of these commands fail, you may need to source /etc/profile to get the necessary environment variables (this should be fixed soon)&lt;br /&gt;
&lt;br /&gt;
VirtualGL has trouble with some threaded programs. If your OpenGL program exhibits segmentation faults or other issues, this could be the problem. Check back for the solution later. &lt;br /&gt;
&lt;br /&gt;
If the given password is rejected you can run stop_vnc.sh and restart to get a new one. Occasionally the random password generator may generate passwords which VNC doesn't like.&lt;br /&gt;
&lt;br /&gt;
If VirtualGL complains about not being able to get a 24bit FB config either vglconnect to another VirtualGL enabled server or complain to Benjamin.A.Matthews@Colorado.edu&lt;br /&gt;
&lt;br /&gt;
If your VNC connection is very slow, you might want to try changing the compression and encoding options. See your vncviewer's documentation or try this&lt;br /&gt;
  vncviewer -encodings tight -quality 6 -compresslevel 6&lt;br /&gt;
If you have trouble with text distortion try adding &lt;br /&gt;
  -nojpeg&lt;br /&gt;
&lt;br /&gt;
If you're running OSX and see an error about Zlib, try changing your compression settings (maximum quality usually works) or use a different client. RealVNC and certain versions of ChickenOfTheVNC both exhibit this issue. The latest build of TigerVNC should work reliably, as does the Java based TightVNC client.&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=VNC&amp;diff=2011</id>
		<title>VNC</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=VNC&amp;diff=2011"/>
				<updated>2023-09-21T17:55:08Z</updated>
		
		<summary type="html">&lt;p&gt;Jeffhadley: /* Clients (Step 2) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Virtual Network Computing (VNC)''' is a tool which projects a GUI session over the network. If may be useful if you want to use GUI tools remotely when X forwarding performs poorly. &lt;br /&gt;
&lt;br /&gt;
VNC works on a client-server architecture, where a remote system (server) runs the programs and sends the virtual screen output to the local system (client). Here, the local system would be your laptop/desktop, while the server is located on the [[PHASTA Group Machines]].&lt;br /&gt;
&lt;br /&gt;
'''For On Ramp purposes, you only need to follow the sub sections identified with steps 1 through 3: Start VNC Server, Clients, and Starting a VNC Viewer'''&lt;br /&gt;
&lt;br /&gt;
== VNC on PHASTA Machines ==&lt;br /&gt;
'''Warning: The VNC password is transmitted in clear text over the network and should not be considered secure'''&lt;br /&gt;
&lt;br /&gt;
== Server-Side Setup for PHASTA Machines ==&lt;br /&gt;
=== Start VNC Server (Step 1) ===&lt;br /&gt;
&amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; is designated to host VNC sessions.&lt;br /&gt;
&lt;br /&gt;
First connect to jumpgate via ssh in a terminal on your personal machine (If following the On Ramp you should already have this terminal opened). To start a VNC session on portal1 type the following in your jumpgate terminal with a return after each line:&lt;br /&gt;
 ssh portal1&lt;br /&gt;
 source /etc/profile.d/vncscript.sh&lt;br /&gt;
 start_vnc.sh&lt;br /&gt;
&lt;br /&gt;
This will setup the VNC viewer for your session on the PHASTA machine side of things. Read through the output from &amp;lt;code&amp;gt;start_vnc.sh&amp;lt;/code&amp;gt; as it contains crucial information and some tips which are elaborated on in this wiki. &lt;br /&gt;
&lt;br /&gt;
IMPORTANT: Make sure to remember the generated password and port number (&amp;quot;You should connect to 59** on portal1&amp;quot;, &amp;quot;Your password is abcd1234ExamplePW&amp;quot;) so that you can reuse the session you just started. Hint: take a screenshot of the output of &amp;lt;code&amp;gt;start_vnc.sh&amp;lt;/code&amp;gt; and store it somewhere safe.&lt;br /&gt;
&lt;br /&gt;
It is common practice to leave your VNC session running on &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. Next time you want to access your desktop, just ssh into jumpgate with a tunnel between portal1's VNC port (59**) and some port on your machine. Then use a VNC client to connect to the port on your machine. See the Client (Step 2) section below for an explanation of this process.&lt;br /&gt;
&lt;br /&gt;
=== Killing a VNC Server ===&lt;br /&gt;
If for some reason you want to end your session and kill your virtual desktop, run&lt;br /&gt;
&lt;br /&gt;
 source /etc/profile&lt;br /&gt;
 stop_vnc.sh&lt;br /&gt;
&lt;br /&gt;
ONLY run this if you want to kill your virtual desktop. Most users will never need to do this as the idea is to create one session and continue to use that one for all future usage.&lt;br /&gt;
&lt;br /&gt;
=== Changing the VNC Password ===&lt;br /&gt;
While ssh'd into your session on &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;, type the following command in your terminal:&lt;br /&gt;
  /opt/tigervnc/bin/vncpasswd&lt;br /&gt;
&lt;br /&gt;
Follow the on screen instructions.&lt;br /&gt;
&lt;br /&gt;
=== View Only Mode ===&lt;br /&gt;
&lt;br /&gt;
To share your desktop with another user in view only mode set a view only password &lt;br /&gt;
by running&lt;br /&gt;
  vncpasswd&lt;br /&gt;
&lt;br /&gt;
Have the other user connect in the same way you would but have them set their viewer to be in view only mode and use your view only password. Typically this is done as follows:&lt;br /&gt;
  vncviewer -viewonly&lt;br /&gt;
&lt;br /&gt;
=== Changing the Size (Resolution) of an Existing Session ===&lt;br /&gt;
''Note: In most modern VNC clients, this can (possibly should) be done via the locally running client. See your VNC client's documentation for details. The below is kept for posterity''&lt;br /&gt;
&lt;br /&gt;
You can usually use the &amp;lt;code&amp;gt;xrandr&amp;lt;/code&amp;gt; tool to change the resolution of a running VNC session. First you'll need to know your session's display number (this should be the last digit or two of the port number). For example, if your VNC session is running on port 5902, then your screen number should be :2. For this example, we'll use screen 2. &lt;br /&gt;
&lt;br /&gt;
Once you know your screen number, you can see the list of supported modes as follows:&lt;br /&gt;
  xrandr -display :2&lt;br /&gt;
&lt;br /&gt;
Once you pick the one you want (generally the same size or smaller than the native resolution of your client), you can choose it by running a command like&lt;br /&gt;
  xrandr -s 1400x1050 -display :2&lt;br /&gt;
&lt;br /&gt;
(this example will set the resolution to 1400 pixels by 1050 pixels)&lt;br /&gt;
&lt;br /&gt;
You'll probably be disconnected at this point, but when you reconnect your screen size should be changed (hopefully without crashing your running programs).&lt;br /&gt;
&lt;br /&gt;
=== Finding an Existing Session ===&lt;br /&gt;
SSH to portal1 and then run:&lt;br /&gt;
  /opt/vnc_script/findsession.sh&lt;br /&gt;
&lt;br /&gt;
Which will return the shortened port number of each of your currently running sessions.&lt;br /&gt;
&lt;br /&gt;
== Client-Side Setup for PHASTA Machines ==&lt;br /&gt;
=== Clients (Step 2) === &lt;br /&gt;
&lt;br /&gt;
First you need to have a VNC viewer installed on your personal machine. &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; uses TurboVNC from the VirtualGL project, available from [http://www.virtualgl.org/Downloads/TurboVNC their website]&lt;br /&gt;
&lt;br /&gt;
Other VNC viewers will also work, such as [https://www.tightvnc.com/download.php TightVNC] and [https://www.realvnc.com/en/connect/download/viewer/ RealVNC]. Download and install the one you like best for your personal machine (RealVNC seems to be the go to for Mac users in the group).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The instructions given when you started the session on &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; (the ones you should have taken a screen shot of in Step 1 above) are OK, but it always tells you to start a session (in a terminal on your mac or linux machine command line) with the following command&lt;br /&gt;
&lt;br /&gt;
 ssh -L5905:portal1:59zw jumpgate-phasta.colorado.edu&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; will be different for each user. That suggestion is OK if you never plan to connect to anyone else's session, but since we often collaborate by sharing VNC sessions, the better practice we adopt is to use &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; in place of the suggested 05 (which just an arbitrary local port on your laptop). For example, when I created a session the last four numbers of the connection were &amp;lt;code&amp;gt;5923&amp;lt;/code&amp;gt;, thus &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; for me is &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; and the best practice is to ignore the script suggestion in favor of:&lt;br /&gt;
&lt;br /&gt;
 ssh -L5923:portal1:5923 jumpgate-phasta.colorado.edu&lt;br /&gt;
&lt;br /&gt;
The easiest way to set up the portal from the get-go (after you have created the VNC session on the PHASTA Machien side of things and left it open, AKA Step 1 above) is to close out of the terminal on your personal machine, reopen it, and run only this command where &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; is your assigned port number:&lt;br /&gt;
&lt;br /&gt;
 ssh -L59zw:portal1:59zw USERNAME@jumpgate-phasta.colorado.edu&lt;br /&gt;
&lt;br /&gt;
 '''Windows 8'''&lt;br /&gt;
 Close the terminal that was established with PuTTY. Start a new one using PuTTY and entering the following in the Host Name, replacing zw with your assigned port number:&lt;br /&gt;
 &amp;lt;code&amp;gt;-L59zw:portal1:59zw USERNAME@jumpgate-phasta.colorado.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
 Again ensuring connection type is set to SSH. In the &amp;quot;Port&amp;quot; field, enter the &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; assigned port number. Click on &amp;quot;Open&amp;quot;. You now have an established VNC connection with &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. Remaining steps are the same as non-Windows 8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will then be prompted to enter your password (not the one that was just created for the VNC, but the one that you usually use to connect to jumpgate). After entering your password you will be ready for &amp;quot;Starting a VNC Viewer (Step 3)&amp;quot; in the next section. The reason that you must exit and reopen the command prompt is because you cannot connect to the VNC portal zw if you are already connected to jumpgate or portal1; you must connect to jumpgate and your session zw simultaneously for the VNC portal to work correctly.&lt;br /&gt;
&lt;br /&gt;
=== Starting a VNC viewer (Step 3) ===&lt;br /&gt;
&lt;br /&gt;
Whether you followed the Mac or Linux or Windows instructions above, successful completion will have established a tunnel from your laptop to &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. The last step is to start a VNC viewer (graphical windowing program) that uses this tunnel to display your &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; session on the screen of your laptop. There are a variety of choices for each platform and they evolve but their operation seems, thankfully, pretty universal. &lt;br /&gt;
&lt;br /&gt;
The most basic input is that they provide a box that says &amp;quot;VNC Server&amp;quot;. You will want to type &amp;lt;code&amp;gt;localhost:zw&amp;lt;/code&amp;gt; in that box and then apply start (or whatever the particular applications action button is). The VNC Viewer will them prompt you for the password that was generated for this &amp;quot;zw&amp;quot; numbered session (Your version of the generated &amp;quot;abcd1234ExamplePW&amp;quot; from previous steps. Note if you changed that VNC password already, use the one you created). &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt; here will need to be whatever you used for the &amp;lt;code&amp;gt;-L59zw:portal1:59zw&amp;lt;/code&amp;gt; part of the tunnel. What the number is actually doing is telling this local VNC viewer on which port you have established a tunnel with the session for which you are starting the VNC viewer. Note it is possible to have several different simultaneous sessions. Each needs its own tunnel (established by repeating the process above with a unique &amp;lt;code&amp;gt;zw&amp;lt;/code&amp;gt;) and then a corresponding &amp;quot;new&amp;quot; VNC viewer. In this way we might continue to work in our own session but then take a break to look at a collaborator's session without having to close out the tunnel and viewer pair.&lt;br /&gt;
&lt;br /&gt;
Now that you've connected to the PHASTA machines, it's time to learn a bit mroe about using a UNIX based system (Linux). To continue with the On Ramp click [[UNIX|here]]&lt;br /&gt;
&lt;br /&gt;
=== Web Based Viewer ===&lt;br /&gt;
&lt;br /&gt;
If you can't or don't want to install a VNC viewer you can use a Java based one. You will need a JVM and a Java browser plugin. You will also need the port that the start_vnc script assigned you to be free on your local computer&lt;br /&gt;
&lt;br /&gt;
Forward your session through jumpgate as before before, adding a second port, 580n. For example, if the script tells you to &lt;br /&gt;
&lt;br /&gt;
ssh -L5905:portal1:5902 jumpgate-phasta.colorado.edu you should&lt;br /&gt;
  ssh -L5902:portal1:5902 -L5802:portal1:5802 jumpgate-phasta.colorado.edu&lt;br /&gt;
Then point your browser to http://localhost:5802 and log in with the password specified by the script when prompted. (Replace 2 with the value specified by the script)&lt;br /&gt;
&lt;br /&gt;
== OpenGL == &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; is equipped with a VirtualGL install which will allow you to use OpenGL programs (which do not use pthreads)&lt;br /&gt;
&lt;br /&gt;
Simply wrap your OpenGL program with the &amp;lt;code&amp;gt;vglrun&amp;lt;/code&amp;gt; command&lt;br /&gt;
  vlgrun glxgears&lt;br /&gt;
&lt;br /&gt;
Our lab has 2 VirtualGL servers you can connect to from &amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt;. You must connect to one of them for large memory and/or computationally intensive processes.&lt;br /&gt;
The names of the servers are &amp;lt;code&amp;gt;viz002&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;viz003&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;viz001&amp;lt;/code&amp;gt; is probably never coming back to life). &lt;br /&gt;
&amp;lt;code&amp;gt;portal1&amp;lt;/code&amp;gt; doesn't have a particularly fast graphics processor and MUST NOT be used for large memory or computationally intensive process)&lt;br /&gt;
&lt;br /&gt;
  vglconnect -s viz002&lt;br /&gt;
or&lt;br /&gt;
  vglconnect -s viz003&lt;br /&gt;
&lt;br /&gt;
from this connection you will want to run graphic applications (e.g., SimModeler or ParaView) prefaced by the command &amp;lt;code&amp;gt;vglrun&amp;lt;/code&amp;gt;.  You can test that you have it setup right&lt;br /&gt;
with the toy-app &amp;lt;code&amp;gt;glxgears&amp;lt;/code&amp;gt; as follows&lt;br /&gt;
&lt;br /&gt;
  vglrun glxgears&lt;br /&gt;
&lt;br /&gt;
Note that VGL uses a number of threads. If you have trouble with &amp;lt;code&amp;gt;vglrun&amp;lt;/code&amp;gt; crashing with a message about &amp;lt;code&amp;gt;Thread::Start()&amp;lt;/code&amp;gt; make sure you haven't set your stack size too large (remove any &amp;lt;code&amp;gt;ulimit -s&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ulimit -n&amp;lt;/code&amp;gt; calls from your shell start scripts).&lt;br /&gt;
&lt;br /&gt;
NOTE ALSO:  The primary purpose for &amp;lt;code&amp;gt;viz00x&amp;lt;/code&amp;gt; is for visualization and for debugging.  Production runs should be done elsewhere.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting == &lt;br /&gt;
&lt;br /&gt;
If you have used vncserver (It doesn't matter which version) before, you will need to clear your vnc settings for the script to work. You can do this by running rm -rf ~/.vnc&lt;br /&gt;
&lt;br /&gt;
stop_vnc.sh may display some errors; this is normal.&lt;br /&gt;
&lt;br /&gt;
If you have trouble deleting ~/.vnc send an email to Benjamin.A.Matthews@colorado.edu&lt;br /&gt;
&lt;br /&gt;
If any of these commands fail, you may need to source /etc/profile to get the necessary environment variables (this should be fixed soon)&lt;br /&gt;
&lt;br /&gt;
VirtualGL has trouble with some threaded programs. If your OpenGL program exhibits segmentation faults or other issues, this could be the problem. Check back for the solution later. &lt;br /&gt;
&lt;br /&gt;
If the given password is rejected you can run stop_vnc.sh and restart to get a new one. Occasionally the random password generator may generate passwords which VNC doesn't like.&lt;br /&gt;
&lt;br /&gt;
If VirtualGL complains about not being able to get a 24bit FB config either vglconnect to another VirtualGL enabled server or complain to Benjamin.A.Matthews@Colorado.edu&lt;br /&gt;
&lt;br /&gt;
If your VNC connection is very slow, you might want to try changing the compression and encoding options. See your vncviewer's documentation or try this&lt;br /&gt;
  vncviewer -encodings tight -quality 6 -compresslevel 6&lt;br /&gt;
If you have trouble with text distortion try adding &lt;br /&gt;
  -nojpeg&lt;br /&gt;
&lt;br /&gt;
If you're running OSX and see an error about Zlib, try changing your compression settings (maximum quality usually works) or use a different client. RealVNC and certain versions of ChickenOfTheVNC both exhibit this issue. The latest build of TigerVNC should work reliably, as does the Java based TightVNC client.&lt;/div&gt;</summary>
		<author><name>Jeffhadley</name></author>	</entry>

	</feed>