<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://helpwiki.sharcnet.ca/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jhqin</id>
	<title>SHARCNETHelp - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://helpwiki.sharcnet.ca/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jhqin"/>
	<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/Special:Contributions/Jhqin"/>
	<updated>2026-04-04T06:47:25Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=Online_Seminars&amp;diff=1225</id>
		<title>Online Seminars</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=Online_Seminars&amp;diff=1225"/>
		<updated>2026-03-30T14:51:18Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* 2026 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please check our [https://www.sharcnet.ca/my/news/calendar Events calendar] for the links for our upcoming webinars.&lt;br /&gt;
&lt;br /&gt;
Recordings of our webinars can be found on SHARCNET youtube channel, http://youtube.sharcnet.ca .&lt;br /&gt;
&lt;br /&gt;
==General Interest Webinars==&lt;br /&gt;
===2026=== &lt;br /&gt;
* 2026/04/08 - Mixing diverse workloads within a single job: a heterogeneous scheduling primer, Sergey Mashchenko, [[Webinar 2026 Mixing diverse workloads within a single job: a heterogeneous scheduling primer|Abstract]]&lt;br /&gt;
* 2026/03/25 - [https://youtu.be/Nk08qeTO9qY?si=mt9B4xZVevDFWFno Getting started with MLflow for machine learning and AI development], Jinhui Qin, [[Webinar 2026 Getting started with MLflow for machine learning and AI development|Abstract]]&lt;br /&gt;
* 2026/03/11 - [https://youtu.be/tfxeN2kOKI8 Know your cluster: ways that national systems vary in performance], Mark Hahn, [[Webinar 2026 Know your cluster: ways that national systems vary in performance|Abstract]]&lt;br /&gt;
* 2026/02/25 - [https://training.computeontario.ca/courses/course/view.php?id=202 Launching a Virtual Machine Using Nibi OpenStack Cloud], Ed Armstrong, [[Webinar 2026 Launching a Virtual Machine Using Nibi OpenStack Cloud|Abstract]]&lt;br /&gt;
* 2026/02/11 - [https://youtu.be/-1trpCl2GOs Running Gaussian16 and NBO7 effectively on Nibi and Fir: Performance Issues], Jemmy Hu, [[Webinar 2026 Running Gaussian16 and NBO7 effectively on Nibi and Fir: Performance Issues|Abstract]], [[Media:Gauss_NBO_2026_02.pdf|slides]]&lt;br /&gt;
* 2026/01/28 - [https://youtu.be/SgRKWKwQbQE Too Big to Train 2: PyTorch&amp;#039;s Upgraded Interface for Fully Sharded Data Parallel], Collin Wilson, [[Webinar 2026 Too Big to Train 2: PyTorch&amp;#039;s Upgraded Interface for Fully Sharded Data Parallel|Abstract]]&lt;br /&gt;
* 2026/01/14 - [https://youtu.be/KDYQ8lKjlnI Floating-point Numbers Aren&amp;#039;t Mathematical Real Numbers], Paul Preney, [[Webinar 2026 Floating-point Numbers Aren&amp;#039;t Mathematical Real Numbers|Abstract]], [[Media:Floating_point_slides.pdf|slides]]&lt;br /&gt;
&lt;br /&gt;
===2025=== &lt;br /&gt;
* 2025/12/17 - [https://youtu.be/34sFhPhl2oI Illuminating the Black Box: Understanding AI Models with Integrated Gradients], Weiguang Guan, [[Webinar 2025 Illuminating the Black Box: Understanding AI Models with Integrated Gradients|Abstract]]&lt;br /&gt;
* 2025/12/03 - [https://youtu.be/sMZ13XJQiWo Serial Farms: Package options and when to switch to farming], Tyler Collins, [[Webinar 2025 Serial Farms: Package options and when to switch to farming|Abstract]]&lt;br /&gt;
* 2025/11/19 - [https://youtu.be/vZzM8ko_d-0 High-Performance Data Science with Modern C++: Ranx], Armin Sobhani, [[Webinar 2025 High-Performance Data Science with Modern C++: Ranx|Abstract]]&lt;br /&gt;
* 2025/11/05 - [https://www.youtube.com/watch?v=yXsPAcyeOUU Running Engineering Related Packages Interactively on Nibi], Doug Roberts, [[Webinar 2025 Running Engineering Related Packages Interactively on Nibi|Abstract]]&lt;br /&gt;
* 2025/10/22 - [https://youtu.be/J6vBWEhW2e8 What exactly is a Resource Allocation Competition (RAC) Compute Award?], James Desjardins, [[Webinar 2025 What exactly is a Resource Allocation Competition (RAC) Compute Award?|Abstract]], [[Media:SNGIW_RAC_Usage_2025-10.pdf|slides]]&lt;br /&gt;
* 2025/10/08 - [https://youtu.be/AANsHQ0QbDk Running Linux on Windows and taking it with you anywhere], Ge Baolai, [[Webinar 2025 Running Linux on Windows and taking it with you anywhere|Abstract]], [[Media:Gis_wsl2.pdf|slides]]&lt;br /&gt;
* 2025/09/24 - [https://youtu.be/iO0hCNlV5c4 Running JupyterLab on Nibi], Jinhui Qin, [[Webinar 2025 Running JupyterLab on Nibi|Abstract]], [[Media:RunningJupyterLabOnNibi.pdf|slides]]&lt;br /&gt;
* 2025/09/10 - [https://youtu.be/MFbNN9FeKr4 Installing your software packages with Spack], Pawel Pomorski, [[Webinar 2025 Installing your software packages with Spack|Abstract]], [[Media:Spack_slides_16x9.pdf|slides]]&lt;br /&gt;
* 2025/08/27 - [https://youtu.be/SohpYZPbCmg The Nibi&amp;#039;s web interface], Tyson Whitehead, [[Webinar 2025 The Nibi&amp;#039;s web interface|Abstract]]&lt;br /&gt;
* 2025/08/13 - [https://youtu.be/PU3nf47wIpo Interactive Interfaces for Machine Learning Using Gradio], Nastaran Shahparian, [[Webinar 2025 Interactive Interfaces for Machine Learning Using Gradio|Abstract]]&lt;br /&gt;
* 2025/07/30 - [https://youtu.be/nRX8zTIVEXk Migrating to the upgraded national systems], Sergey Mashchenko, [[Webinar 2025 Migrating to the upgraded national systems|Abstract]], [[Media:Migration_webinar_2025.pdf|slides]]&lt;br /&gt;
* 2025/07/16 - [https://youtu.be/ymq5ywgukiw Effortless Parallelism: Leveraging Julia Threads for High-Performance Scientific Computing], Ed Armstrong, [[Webinar 2025 Effortless Parallelism: Leveraging Julia Threads for High-Performance Scientific Computing|Abstract]], [[Media:Julia_threads_2025.pdf|slides]]&lt;br /&gt;
* 2025/07/02 - [https://youtu.be/g_pWAXkvlug Practical Multidimensional Arrays and Linear Algebra in C++], Paul Preney, [[Webinar 2025 Practical Multidimensional Arrays and Linear Algebra in C++|Abstract]], [[Media:Practical_Multidimensional_Arrays_and_Linear_Algebra_in_Cpp.pdf|slides]]&lt;br /&gt;
* 2025/05/07 - [https://youtu.be/as89Os7LWAU Checkpoints: why, when and how], Weiguang Guan, [[Colloquium 2025 Checkpoints: why, when and how|Abstract]], [[Media:Checkpoint.pdf|slides]], [https://staff.sharcnet.ca/guanw/2025/coco.tar.gz the code]&lt;br /&gt;
* 2025/04/23 - [https://youtu.be/qIA46x5xzeg Parallel Programming: MPI I/O Advanced Features], Jemmy Hu, [[Colloquium 2025 Parallel Programming: MPI I/O Advanced Features|Abstract]], [[Media:MPI_IO_Advanced_2025.pdf|slides]]&lt;br /&gt;
* 2025/04/09 - [https://youtu.be/T13tYOGcclk Too Big to Train: Large model training in PyTorch with Fully Sharded Data Parallel], Collin Wilson, [[Colloquium 2025 Too Big to Train: Large model training in PyTorch with Fully Sharded Data Parallel|Abstract]], [[Media:CO_Colloquium_-_FSDP.pdf|slides]]&lt;br /&gt;
* 2025/03/26 - [https://youtu.be/n-T_8dSqd-s Revisiting Cython: Is it still effective?], Tyler Collins, [[Colloquium 2025 Revisiting Cython: Is it still effective?|Abstract]]&lt;br /&gt;
* 2025/03/12 - [https://youtu.be/wPJpy4X9Maw Preview of the &amp;#039;Job Scheduling and Monitoring&amp;#039; self-paced course], James Desjardins, [[Colloquium 2025 Preview of the &amp;quot;Job Scheduling and Monitoring&amp;quot; self-paced course|Abstract]]&lt;br /&gt;
* 2025/02/26 - [https://www.youtube.com/watch?v=z6BdbKvjZNU Reduction of errors, or the pursuit of correctness], Ge Baolai, [[Colloquium 2025 Reduction of errors, or the pursuit of correctness|Abstract]], [[Media:Coco_errors.pdf|slides]]&lt;br /&gt;
* 2025/02/12 - [https://youtu.be/YPQUIkSIFhw High-Performance Data Science with Modern C++: Xeus-Cling and G3P], Armin Sobhani, [[Colloquium 2025 High-Performance Data Science with Modern C++: Xeus-Cling and G3P|Abstract]]&lt;br /&gt;
* 2025/01/29 - [https://youtu.be/XZ3jvB-8g0Q Converting Python code with NumPy to run on the GPU], Pawel Pomorski, [[Colloquium 2025 Converting Python code with NumPy to run on the GPU|Abstract]], [[Media:Slides_jan29.pdf|slides]]&lt;br /&gt;
&lt;br /&gt;
===2024=== &lt;br /&gt;
* 2024/12/18 - [https://youtu.be/_mcC7bdP2RE Unlocking the Power of Comet: Streamlining Machine Learning Experimentation], Nast Shahparian, [[Colloquium 2024 Unlocking the Power of Comet: Streamlining Machine Learning Experimentation|Abstract]]&lt;br /&gt;
* 2024/12/04 - [https://youtu.be/-aTWuh9JjR0 Data Wrangling with Tidyverse (part 3)], Tyson Whitehead, [[Colloquium 2024 Data Wrangling with Tidyverse (part 3)|Abstract]]&lt;br /&gt;
* 2024/11/27 - [https://youtu.be/WXS1GBtbBqE Causal Inference using Probabilistic Variational Causal Effect in Observational Studies], Usef Faghihi, Université du Québec à Trois-Rivières, [[Colloquium 2024 Causal Inference using Probabilistic Variational Causal Effect in Observational Studies|Abstract]], [[Media:Multivariable-PEACE_-_English.pdf|slides]], [https://github.com/joseffaghihi/Multivariable-PEACE github link]&lt;br /&gt;
* 2024/11/20 - [https://youtu.be/pxY3G3BhwyA Survival guide for the upcoming GPU upgrades (more total power, but fewer GPUs)], Sergey Mashchenko, [[Colloquium 2024 Survival guide for the upcoming GPU upgrades (more total power, but fewer GPUs)|Abstract]], [[Media:MIG_MPS.pdf|slides]]&lt;br /&gt;
* 2024/11/06 - [https://youtu.be/EX57wUhXH9I Git Part 3: Managing Workflows], Ed Armstrong, [[Colloquium 2024 Git Part 3: Managing Workflows|Abstract]]&lt;br /&gt;
* 2024/10/23 - [https://youtu.be/ZKy2WLmgsZc Parallel Programming: MPI I/O Basics], Jemmy Hu, [[Parallel Programming: MPI I/O Basics|Abstract]], [[Media:MPI_IO_Basics_2024.pdf|slides]]&lt;br /&gt;
* 2024/10/09 - [https://www.youtube.com/watch?v=Ua4qXbxcHcU Introspection for Jobs: in-job monitoring of performance], Mark Hahn, [[Introspection for Jobs: in-job monitoring of performance|Abstract]]&lt;br /&gt;
* 2024/09/25 - [https://youtu.be/0z5goffgIe4 Multidimensional Arrays in C++], Paul Preney, [[Multidimensional Arrays in C++|Abstract]], [[Media:Multidimensional_Arrays_in_Cpp.pdf|slides]]&lt;br /&gt;
* 2024/09/11 - [https://youtu.be/BhGprcuU5NI Debugging and Optimization of PyTorch Models], Collin Wilson, [[Colloquium 2024 Debugging and Optimization of PyTorch Models|Abstract]], [[Media:Pytorch_profiling.pdf|slides]], [https://github.com/cwilson51/CO-Colloquium-Pytorch-profiler Code]&lt;br /&gt;
* 2024/08/28 - [https://youtu.be/gYkgnha68DI Using machine learning to predict rare events], Weiguang Guan, [[Colloquium 2024 Using machine learning to predict rare events|Abstract]], [[Media:COCO_Train_machine_learning_models_to_predict_rare_events.pdf|slides]]&lt;br /&gt;
* 2024/08/14 - [https://www.youtube.com/watch?v=RQaXX2yrED0 Diagnosing Wasted Resources from User Facing Portals on the National Clusters], Tyler Collins, [[Colloquium 2024 Diagnosing Wasted Resources from User Facing Portals on the National Clusters|Abstract]], [[Media:DiagnosingWaste.pdf|slides]]&lt;br /&gt;
* 2024/08/07 - [https://www.youtube.com/watch?v=c4MZPuLog28 The Emergence of WebAssembly (Wasm) in Scientific Computing], Armin Sobhani, [[Colloquium 2024 The Emergence of WebAssembly (Wasm) in Scientific Computing|Abstract]], [[Media:The_Emergence_of_WebAssembly_in_Scientific_Computing.pdf|slides]]&lt;br /&gt;
* 2024/07/17 - [https://youtu.be/MXff0iaoWhs Exploring Compute Usage from User Facing Portals on the National Clusters], James Desjardins, [[Colloquium 2024 Exploring Compute Usage from User Facing Portals on the National Clusters|Abstract]], [[Media:COCO_2024-07.pdf|slides]]&lt;br /&gt;
* 2024/05/08 - [https://youtu.be/1P383m0ddPc Compute Ontario Summer School 2024], Pawel Pomorski, [[Colloquium 2024 Compute Ontario Summer School 2024|Abstract]], [[Media:Preview_Compute_Ontario_Summer_School_2024.pdf|slides]]&lt;br /&gt;
* 2024/04/24 - [https://youtu.be/0ZXqqGpbIWo Data Wrangling with Tidyverse (part 2)], Tyson Whitehead, [[Colloquium 2024 Data Wrangling with Tidyverse (part 2)|Abstract]]&lt;br /&gt;
* 2024/04/10 - [https://youtu.be/pJYdBzb6zkI Accelerating data analytics with RAPIDS cuDF], Nastaran Shahparian, [[Colloquium 2024 Accelerating data analytics with RAPIDS cuDF|Abstract]], [[Media:CuDF.pandas.pdf|slides]]&lt;br /&gt;
* 2024/03/27 - [https://www.youtube.com/watch?v=piNP2LbfMFk Accelerating Graph Analysis on GPUs], Jinhui Qin, [[Colloquium 2024 Accelerating Graph Analysis on GPUs|Abstract]], [[Media:CuGraph-Slides.pdf|slides]]&lt;br /&gt;
* 2024/03/13 - [https://youtu.be/RuZx9TFXFPE Make: a declarative, lazy, parallel workload manager.  Elegant or obsolete?], Mark Hahn, [[Colloquium 2024 Make: obsolete or elegant?|Abstract]]&lt;br /&gt;
* 2024/02/28 - [https://youtu.be/Q8HwLg22BpY Debugging your code with DDT], Sergey Mashchenko, [[Colloquium 2024 Debugging your code with DDT|Abstract]], [[Media:DDT3.pdf|slides]]&lt;br /&gt;
* 2024/02/14 - [https://youtu.be/BjocqqYwVww MySQL Part 3: Constraints and Joins], Ed Armstrong, [[Colloquium 2024 MySQL Part 3: Constraints and Joins|Abstract]], [[Media:Sql_part3.pdf|slides]]&lt;br /&gt;
* 2024/01/31 - [https://youtu.be/0GKWxQROsPM Introduction to GPU programming with OpenMP], Jemmy Hu, [[Colloquium 2024 Introduction to GPU programming with OpenMP|Abstract]], [[Media:OpenMP_GPU_GIS2024_Jemmy.pdf|slides]]&lt;br /&gt;
* 2024/01/17 - [https://youtu.be/FmKxYqpbgaM False Sharing and Contention in Parallel Codes], Paul Preney, [[Colloquium 2024 False Sharing and Contention in Parallel Codes|Abstract]], [[Media:False_Sharing_and_Contention_in_Parallel_Codes.pdf|slides]]&lt;br /&gt;
&lt;br /&gt;
===2023===&lt;br /&gt;
* 2023/11/29 - [https://youtu.be/VhBa9dXfWiI Skorch: Training PyTorch models with scikit-learn], Collin Wilson, [[Colloquium 2023 Skorch: Training PyTorch models with scikit-learn|Abstract]]&lt;br /&gt;
* 2023/11/15 - [https://youtu.be/KT7NxwIwJD0 Squeeze more juice out of a single GPU in deep learning], Weiguang Guan, [[Colloquium 2023 Squeeze more juice out of a single GPU in deep learning|Abstract]], [[Media:Squeeze_more_juice_out_of_a_single_GPU_in_deep_learning.pdf|slides]], [https://staff.sharcnet.ca/guanw/2023/logicalGPUs.tar.gz code]&lt;br /&gt;
* 2023/11/01 - [https://youtu.be/iFygWrM0NJg Generalized End to End Python and Neuroscience Workflows on a Compute Cluster], Tyler Collins, [[Colloquium 2023 Generalized End to End Python and Neuroscience Workflows on a Compute Cluster|Abstract]]&lt;br /&gt;
* 2023/10/18 - [https://youtu.be/nyOH8nvHBss p2rng – A C++ Parallel Random Number Generator Library for the Masses], Armin Sobhani, [[Colloquium 2023 p2rng – A C++ Parallel Random Number Generator Library for the Masses|Abstract]], [[Media:P2rng_-_A_C++_Parallel_Random_Number_Generator_Library_for_the_Masses.pdf|slides]]&lt;br /&gt;
* 2023/10/04 - [https://youtu.be/loy43pdwYl0 Exploring job wait times on Alliance compute clusters: a holistic view], James Desjardins, [[Colloquium 2023 Exploring job wait times on Alliance compute clusters: a holistic view|Abstract]], [[Media:Job_priority_giw_2023-10.pdf|slides]]&lt;br /&gt;
* 2023/09/20 - [https://youtu.be/8_Q-WwqY_Og Data Wrangling with Tidyverse], Tyson Whitehead, [[Colloquium 2023 Data Wrangling with Tidyverse|Abstract]], [[Media:Tidyverse.pdf|slides]]&lt;br /&gt;
* 2023/08/09 - [https://youtu.be/t6kNLwkGMP0 Automating scientific workflows with AiiDA], Pawel Pomorski, [[Colloquium 2023 Automating scientific workflows with AiiDA|Abstract]], [[Media:Aiida_seminar_aug9_2023.pdf|slides]]&lt;br /&gt;
* 2023/07/26 - [https://youtu.be/cf4c7_2lEN0 DIY job monitoring, from cache misses to CO2 footprint], Mark Hahn, [[Colloquium 2023 DIY job monitoring, from cache misses to CO2 footprint|Abstract]]&lt;br /&gt;
* 2023/07/12 - [https://youtu.be/efHBV3b1Ylg Leveraging the power of Linux on Windows with WSL], Edward Armstrong, [[Colloquium 2023 Leveraging the power of Linux on Windows with WSL|Abstract]], [[Media:WSL.pdf|slides]]&lt;br /&gt;
* 2023/05/17 - [https://youtu.be/gxmceLPQC8A Contrastive learning], Weiguang Guan, [[Colloquium 2023 Contrastive learning|Abstract]], [[Media:Contrastivelearning.pdf|slides]], [https://staff.sharcnet.ca/guanw/2023/contrastivelearning.tar.gz code]&lt;br /&gt;
* 2023/05/03 - [https://youtu.be/Uq60vknROcM Modern Approaches to Profiling in Python with Scalene], Tyler Collins, [[Colloquium 2023 Modern Approaches to Profiling in Python with Scalene|Abstract]], [https://github.com/Andesha/sharcnet-cython code and slides]&lt;br /&gt;
* 2023/04/19 - [https://www.youtube.com/watch?v=RYtdiOhrv0Q CUDA, ROCm, oneAPI – All for One or One for All?], Armin Sobhani, [[Colloquium 2023 CUDA, ROCm, oneAPI – All for One or One for All?|Abstract]], [[Media:CUDA,_ROCm,_oneAPI_–_All_for_One_or_One_for_All.pdf|slides]], [https://github.com/arminms/one4all repository]&lt;br /&gt;
* 2023/04/05 - [https://youtu.be/4UTlftKKdko Running MATLAB on Alliance&amp;#039;s Clusters], Jemmy Hu, [[Colloquium 2023 Running MATLAB on Alliance&amp;#039;s Clusters|Abstract]], [[Media:Running_MATLAB_on_Alliance_Clusters.pdf|slides]]&lt;br /&gt;
* 2023/03/22 - [https://youtu.be/NjcQYEXvKpc Before and after submitting Octave/Matlab jobs on the clusters], James Desjardins, [[Colloquium 2023 Before and after submitting Octave/Matlab jobs on the clusters|Abstract]]&lt;br /&gt;
* 2023/03/08 - [https://www.youtube.com/watch?v=DnjwZfHeu90 Plotnine: R&amp;#039;s Grammar of Graphics in Python], Tyson Whitehead, [[Colloquium 2023 plotnine: R&amp;#039;s Grammar of Graphics in Python|Abstract]]&lt;br /&gt;
* 2023/02/22 - [https://www.youtube.com/watch?v=4xIdxwwbbic Accelerated DataFrame with Dask-cuDF on multiple GPUs], Jinhui Qin, [[Colloquium 2023 Accelerated DataFrame with Dask-cuDF on multiple GPUs|Abstract]], [[Media:Dask-cuDF-slides.pdf|slides]]&lt;br /&gt;
* 2023/02/08 - [https://www.youtube.com/watch?v=M76wHwckNPU An introduction to MPLAPACK, a multi-precision linear algebra library], Ge Baolai, [[Colloquium 2023 An introduction to MPLAPACK, a multi-precision linear algebra library|Abstract]], [[Media:Coco_mplapack.pdf|slides]]&lt;br /&gt;
* 2023/01/25 - [https://www.youtube.com/watch?v=LPyHrUBuE6Q How Research Data Management (RDM) Intersects with ARC and Why Should I Care?], Jeff Moon (Compute Ontario), [[Colloquium 2023 How Research Data Management (RDM) Intersects with ARC and Why Should I Care?|Abstract]], [[Media:HPC-RDM-Interactions-CO-Colloquium-2023-01-25.pdf|slides]] (CC-BY licensing)&lt;br /&gt;
* 2023/01/11 - [https://youtu.be/KmdCwHycZPE Performance: current and upcoming systems], Mark Hahn, [[Colloquium 2023 Performance: current and upcoming systems|Abstract]], [[Media:Performance current and coming.pdf|slides]]&lt;br /&gt;
&lt;br /&gt;
===2022=== &lt;br /&gt;
* 2022/12/14 - [https://youtu.be/x_RfyVkGBvg Which GPU should I use?], Pawel Pomorski, [[Webinar 2022 Which GPU should I use?|Abstract]], [[Media:Which_GPU_should_I_use.pdf|slides]]&lt;br /&gt;
* 2022/11/30 - [https://www.youtube.com/watch?v=PWL_d13dPfs Deploying a simple Express.js Web App], Ed Armstrong, [[Webinar 2022 Deploying a simple Express.js Web App|Abstract]]&lt;br /&gt;
* 2022/11/16 - [https://www.youtube.com/watch?v=-lbxW-VtcQE Video Editing with KDEnLive], Sergey Mashchenko, [[Webinar 2022 Video Editing with KDEnLive|Abstract]], [[Media:Kdenlive_webinar.pdf|slides]]&lt;br /&gt;
* 2022/11/02 - [https://www.youtube.com/watch?v=FSqhaO6oWYc Profiling &amp;amp; Performance Tuning CPU Programs], Paul Preney, [[Webinar 2022 Profiling &amp;amp; Performance Tuning CPU Programs|Abstract]], [[Media:Perftuning.pdf|slides]]&lt;br /&gt;
* 2022/10/19 - [https://youtu.be/3nIa6MzKw00 Strategies For Managing Filesystem Quotas], Doug Roberts, [[Webinar 2022 Strategies For Managing Filesystem Quotas|Abstract]]&lt;br /&gt;
* 2022/10/05 - [https://youtu.be/mwTMZtCQtZg Transfer Learning with Tensorflow Hub], Weiguang Guan, [[Webinar 2022 Transfer Learning with Tensorflow Hub|Abstract]], [[Media:TransferLearning.pdf|slides]], [https://staff.sharcnet.ca/guanw/2022/transferLearning.tar.gz Code]&lt;br /&gt;
* 2022/09/21 - [https://youtu.be/fa6mQ2gXk1g Creating and Distributing Python Packages], Tyler Collins, [[Webinar 2022 Creating and Distributing Python Packages|Abstract]], [[Media:CreatingandDistributingPythonPackages.pdf|slides]]&lt;br /&gt;
* 2022/09/07 - [https://youtu.be/CsgBGpampvc Remote Development on Clusters with VSCode - Part II], Armin Sobhani, [[Webinar 2022 Remote Development on Clusters with VSCode - Part II|Abstract]], [[Media:Remote_Development_on_HPC_Clusters_with_VSCode.pdf|slides]]&lt;br /&gt;
* 2022/08/10 - [https://www.youtube.com/watch?v=Zir3NAS8p-4 Debugging with ParaView], Tyson Whitehead, [[Webinar 2022 Debugging with ParaView|Abstract]]&lt;br /&gt;
* 2022/07/27 - [https://www.youtube.com/watch?v=Qk3Le5HBxeg Visualizing job properties for wait time assessment], James Desjardins, [[Webinar 2022 Visualizing job properties for wait time assessment|Abstract]]&lt;br /&gt;
* 2022/07/13 - [https://www.youtube.com/watch?v=Qk3Le5HBxeg Working with Jupyter on Clusters], Jinhui Qin, [[Webinar 2022 Working with Jupyter on Clusters|Abstract]], [[Media:JupyterOnCluster-Qin.pdf|slides]]&lt;br /&gt;
* 2022/07/06 - [https://youtu.be/fkQTIi2lkAI Running PyTorch codes with multi-GPU/nodes on national systems], Isaac Ye, [[Webinar 2022 Running PyTorch codes with multi-GPU/nodes on national systems|Abstract]], [[Media:PyTorch_2022.pdf|slides]]&lt;br /&gt;
* 2022/06/15 - [https://youtu.be/A9YPibAEXEE Realtime display with Gnuplot], Ge Baolai, [[Webinar 2022 Realtime display with Gnuplot|Abstract]], [[Media:dirt.pdf|slides]]&lt;br /&gt;
* 2022/06/01 - [https://youtu.be/svlg08wTbt8 Speeding up Python code with Numba], Pawel Pomorski, [[Webinar 2022 Speeding up Python code with Numba|Abstract]], [[Media:Numba_webinar.pdf|slides]]&lt;br /&gt;
* 2022/05/18 - [https://youtu.be/51K5EqGqzCM Profiling GPU codes with Nsight], Sergey Mashchenko, [[Webinar 2022 Profiling GPU codes with Nsight|Abstract]], [[Media:Nsight_2022.pdf|slides]]&lt;br /&gt;
* 2022/05/04 - [https://youtu.be/Q1JXZ_zBeEY Demystifying Web Portals], Ed Armstrong, [[Webinar 2022 Demystifying Web Portals|Abstract]], [[Media:web_literacy.pdf|slides]]&lt;br /&gt;
* 2022/04/20 - [https://youtu.be/vrkCJagaF9U 10 ways to optimize your workflow], Mark Hahn, [[Webinar 2022 10 ways to optimize your workflow|Abstract]], [[Media:10_ways_to_improve_your_work.pdf|slides]]&lt;br /&gt;
* 2022/04/06 - [https://www.youtube.com/watch?v=bpmrfVqBowY Apptainer], Paul Preney, [[Webinar 2022 Apptainer|Abstract]], [[Media:Apptainer.pdf|slides]]&lt;br /&gt;
* 2022/03/23 - [https://youtu.be/oY4vZrKrMf0 Using Tensorboard to debug and profile neural network models], Weiguang Guan, [[Webinar 2022 Using Tensorboard to debug and profile neural network models|Abstract]], [[Media:Using_Tensorboard_to_debug_and_optimize.pdf|slides]], [https://staff.sharcnet.ca/guanw/2022/2022.tar.gz code]&lt;br /&gt;
* 2022/03/16 - [https://www.youtube.com/watch?v=I6rf8i2b-qE More Options for Solving Jobs with Many Tasks], Doug Roberts, [[Webinar 2022 More Options for Solving Jobs with Many Tasks|Abstract]]&lt;br /&gt;
* 2022/02/23 - [https://www.youtube.com/watch?v=xpBhPnRbeQo Gaussian16 and NBO7 on Graham and Cedar], Jemmy Hu, [[Webinar 2022 Gaussian16 and NBO7 on Graham and Cedar|Abstract]], [[Media:Gaussian16_NBO7.pdf|slides]]&lt;br /&gt;
* 2022/02/09 - [https://www.youtube.com/watch?v=lPsp97ZGoF8 Conquering the Scheduler], Tyler Collins, [[Webinar 2022 Conquering the Scheduler|Abstract]], [[Media:ConqSched-1.pdf|slides]]&lt;br /&gt;
* 2022/01/27 - [https://youtu.be/0tpsMak-jSY From histograms to dashboards: An introduction to data visualization with Python], Jose Sergio Hleap, [[Webinar 2022 From histograms to dashboards: An introduction to data visualization with Python|Abstract]], [https://jshleap.github.io/programming/writting-jDataViz/ blog], [https://jshleap.github.io/assets/notebooks/DataViz-doc.ipynb notebook]&lt;br /&gt;
* 2022/01/12 - [https://youtu.be/u9k6HikDyqk Remote Development on Clusters with VSCode], Armin Sobhani, [[Webinar 2022 Remote Development on Clusters with VSCode|Abstract]], [[Media:Remote_Development_on_HPC_Clusters_with_VSCode.pdf|slides]]&lt;br /&gt;
&lt;br /&gt;
===2021=== &lt;br /&gt;
* 2021/12/15 - [https://www.youtube.com/watch?v=9WGiT8uiDWI Tips for identifying when job wait times can be reduced by job submission parameter changes], James Desjardins, [[Webinar 2021 Tips for identifying when job wait times can be reduced by job submission parameter changes|Abstract]], [[Media:SNGIW_job_wait_assess.pdf|slides]]&lt;br /&gt;
* 2021/12/01 - [https://youtu.be/ETgeUo5T6Og Introduction to Eclipse Part 3 - Debugging MPI code], Ge Baolai, [[Webinar 2021 Introduction to Eclipse Part 3 - Debugging MPI code|Abstract]], [[Media:Eclipse3.pdf|slides]]&lt;br /&gt;
* 2021/11/17 - [https://youtu.be/PR2Rs0W4zYg The Layered Grammar of Graphics (ggplot2/plotnine)], Tyson Whitehead, [[Webinar 2021 The Layered Grammar of Graphics (ggplot2/plotnine)|Abstract]], [[Media:Ggplot.pdf|slides]]&lt;br /&gt;
* 2021/11/03 - [https://youtu.be/SaBoCikLyd8 Running machine learning example (MNIST) on multi-cores/nodes in Graham], Isaac Ye, [[Webinar 2021 Running machine learning example (MNIST) on multi-cores/nodes in Graham|Abstract]], [[Media:Using_multiple_GPUs_for_Machine_Learning_Nov_3.pdf|slides]]&lt;br /&gt;
* 2021/10/20 - [https://youtu.be/i01RyTscrR0 Scaling Hyperparameter Tuning with Dask-ML on Clusters], Jinhui Qin, [[Webinar 2021 Scaling Hyperparameter Tuning with Dask-ML on Clusters|Abstract]], [[Media:Dask_ML.pdf|slides]]&lt;br /&gt;
* 2021/10/06 - [https://www.youtube.com/watch?v=GcYbaPClwGE META: running a large number of jobs conveniently], Sergey Mashchenko, [[Webinar 2021 META: running a large number of jobs conveniently|Abstract]], [[Media:META_2021.pdf|slides]]&lt;br /&gt;
* 2021/09/22 - [https://youtu.be/oq-StJbODY8 ROCm: AMD&amp;#039;s platform for GPU computing], Pawel Pomorski, [[Webinar 2021 ROCm: AMD&amp;#039;s platform for GPU computing|Abstract]], [[Media:gis_rocm.pdf|slides]]&lt;br /&gt;
* 2021/09/08 - [https://youtu.be/nERp0krcTbw Introduction to Eclipse, Part 2 - Developing and debugging MPI code], Ge Baolai, [[Webinar 2021 Introduction to Eclipse, Part 2 - Developing and debugging MPI code|Abstract]], [[Media:Eclipse_2021.pdf|slides]]&lt;br /&gt;
* 2021/08/11 - [https://youtu.be/I72u4S8Wgj4 Git Part 2 – Common Git Commands], Ed Armstrong, [[Webinar 2021 Git Part 2 – Common Git Commands|Abstract]], [[Media:Git_part_2_desc.pdf|slides]]&lt;br /&gt;
* 2021/07/28 - [https://youtu.be/qiEoxpm5XZI Comparing CPU, GPU, memory, interconnect and filesystem performance across National systems], Mark Hahn, [[Webinar 2021 Comparing CPU, GPU, memory, interconnect and filesystem performance across National systems|Abstract]]&lt;br /&gt;
* 2021/07/14 - [https://youtu.be/gjDndrwAVRE Hybrid MPI], Paul Preney, [[Webinar 2021 Hybrid MPI|Abstract]], [[Media:Hybridmpi.pdf|slides]]&lt;br /&gt;
* 2021/06/16 - [https://www.youtube.com/watch?v=kKWnB2F-N5U Learning from competition], Weiguang Guan, [[Webinar 2021 Learning from competition|Abstract]], [[Media:Learn_from_competition.pdf|slides]]&lt;br /&gt;
* 2021/05/19 - [https://www.youtube.com/watch?v=U28PvqVR7sc DIY Local Program Installation], Doug Roberts, [[Webinar 2021 DIY Local Program Installation|Abstract]]&lt;br /&gt;
* 2021/05/05 - [https://www.youtube.com/watch?v=bDaWrH38XMA Pandas Recipes for New Python Users], Tyler Collins, [[Webinar 2021 Pandas Recipes for New Python Users|Abstract]], [[Media:Pandas_Recipes.pdf|slides]]&lt;br /&gt;
* 2021/04/21 - [https://www.youtube.com/watch?v=t5eNtewYgJw Debugging your code with DDT], Sergey Mashchenko, [[Webinar 2021 Debugging your code with DDT|Abstract]], [[Media:Debugging_your_code_with_DDT_2021.pdf|slides]], [https://git.sharcnet.ca/syam/Debugging_exercises code examples]&lt;br /&gt;
* 2021/04/07 - [https://www.youtube.com/watch?v=lvJv_aN-wQU An Update on ADF/AMS software on Graham], Jemmy Hu, [[Webinar 2021 An Update on ADF/AMS software on Graham|Abstract]], [[Media:ADF_AMS_2021.pdf|slides]]&lt;br /&gt;
* 2021/03/24 - [https://www.youtube.com/watch?v=yF3-FkXe2LI FauxConda: ways to use Conda without conda], Jose Sergio Hleap, [[Webinar 2021 FauxConda: ways to use Conda without conda|Abstract]], [[Media:FauxConda.pdf|slides]]&lt;br /&gt;
* 2021/03/17 - [https://www.youtube.com/watch?v=1UGwixrLQGU Scalable Memory Allocation for Parallel Algorithms], Armin Sobhani, [[Webinar 2021 Scalable Memory Allocation for Parallel Algorithms|Abstract]], [[Media:Scalable_Memory_Allocation_for_Parallel_Algorithms.pdf|slides]]&lt;br /&gt;
* 2021/02/24 - [https://www.youtube.com/watch?v=n_rNjvafkxY Generating interactive visualizations with Plotly on Graham], James Desjardins, [[Webinar 2021 Generating interactive visualizations with Plotly on Graham|Abstract]], [[Media:Generating_interactive_visualizaiton_with_plotly_on_graham.pdf|slides]]&lt;br /&gt;
* 2021/02/10 - [https://www.youtube.com/watch?v=i-DaDcCPRLI Using multiple GPUs for Machine Learning], Isaac Ye, [[Webinar 2021 Using multiple GPUs for Machine Learning|Abstract]], [[Media:Using_multiple_GPUs_for_Machine_Learning.pdf|slides]]&lt;br /&gt;
* 2021/02/03 - [https://www.youtube.com/watch?v=GHlls6bQZ5o Computing in arbitrary precision], Ge Baolai, [[Webinar 2021 Computing in arbitrary precision|Abstract]], [[Media:Mpfun_2021w.pdf|slides]]&lt;br /&gt;
* 2021/01/13 - [https://www.youtube.com/watch?v=COjvWNpxnxc Programming GPUs with Fortran], Pawel Pomorski, [[Webinar 2021 Programming GPUs with Fortran|Abstract]], [[Media:Using_multiple_GPUs_for_Machine_Learning.pdf|slides]]&lt;br /&gt;
&lt;br /&gt;
===2020=== &lt;br /&gt;
* 2020/12/16 - [https://www.youtube.com/watch?v=aCPJ37BoVGc Accelerate Python Analytics on GPUs with RAPIDS], Jinhui Qin, [[Webinar 2020 Accelerate Python Analytics on GPUs with RAPIDS|Abstract]], [[Media:Rapids_ongrahamgpus.pdf|slides]]&lt;br /&gt;
* 2020/12/02 - [https://www.youtube.com/watch?v=3C7OQSvsLq4 Practical Singularity], Paul Preney, [[Webinar 2020 Practical Singularity|Abstract]], [[Media:Singularity_2021.pdf|slides]]&lt;br /&gt;
* 2020/11/18 - [https://www.youtube.com/watch?v=yp3Iu4Cpfyk NixOS: The second largest and the most up-to-date Linux distribution], Tyson Whitehead, [[Webinar 2020 NixOS: The second largest and the most up-to-date Linux distribution|Abstract]], [[Media:Nixos_2020.pdf|slides]]&lt;br /&gt;
* 2020/11/04 - [https://www.youtube.com/watch?v=xTLFz-5a5Ec Julia: Parallel computing revisited], Ge Baolai, [[Webinar 2020 Julia: Parallel computing revisited|Abstract]], [[Media:Julia_parallel2.pdf|slides]]&lt;br /&gt;
* 2020/10/21 - [https://youtu.be/LEdtD-QInGU Introduction to Git], Ed Armstrong, [[Webinar 2020 Introduction to Git|Abstract]], [[Media:GIT_Introduction_Slides.pdf|slides]]&lt;br /&gt;
* 2020/10/14 - [https://youtu.be/017v0RsXLjA Preparing for RAC 2021 applications], Ge Baolai, [[Webinar 2020 Preparing for RAC 2021 applications|Abstract]], [[Media:Preparing_for_RAC_2021_applications.pdf|slides]]&lt;br /&gt;
* 2020/10/07 - [https://youtu.be/qZ2WLyVg_MA Introduction to HPC Programming Language Chapel: Parallel Approaches], Jemmy Hu, [[Webinar 2020 Introduction to HPC Programming Language Chapel: Parallel Approaches|Abstract]], [[Media:HPC_Chapel_2.pdf|slides]]&lt;br /&gt;
* 2020/09/23 - [https://youtu.be/iPwgM3asXK8 Is my neural network too big to fit into GPU?], Weiguang Guan, [[Webinar 2020 Is my neural network too big to fit into GPU?|Abstract]], [[Media:IsmyNNtoobigforGPU.pdf|slides]], [http://www.sharcnet.ca/~guanw/GIS-2020-09-23/tf-gpu.tar.gz Code]&lt;br /&gt;
* 2020/09/09 - [https://youtu.be/A4mn2LzEZEw Options for Solving Jobs with Many Tasks], Doug Roberts, [[Webinar 2020 Options for Solving Jobs with Many Tasks|Abstract]]&lt;br /&gt;
* 2020/08/12 - [https://youtu.be/m9gJD64Hsc8 Bioinformatics in the terminal: Tips and tricks to make your life easier], Jose Sergio Hleap, [[Webinar 2020 Bioinformatics in the terminal: Tips and tricks to make your life easier|Abstract]], [[Media:Bioinf_tips_tricks.pdf|slides]]&lt;br /&gt;
* 2020/07/29 - [https://youtu.be/H1LGxHN7Bqk How to Use C++ Parallel Algorithms in a Distributed Memory Setup (i.e. MPI)], Armin Sobhani, [[Webinar 2020 How to Use C++ Parallel Algorithms in a Distributed Memory Setup (i.e. MPI)|Abstract]], [[Media:How_to_Use_C++_Parallel_Algorithms_in_a_Distributed_Memory_Setup.pdf|slides]]&lt;br /&gt;
* 2020/07/15 - [https://youtu.be/MiRWsICsi8g Visualizing job usage on the Compute Canada systems with the ViewClust Python package], James Desjardins, [[Webinar 2020 Visualizing job usage on the Compute Canada systems with the ViewClust Python package|Abstract]], [[Media:2020-07-14-SNGIW_job_use_viewclust.pdf|slides]]&lt;br /&gt;
* 2020/07/08 - [https://youtu.be/y6bKDKFavPA Cython: A First Look], Tyler Collins, [[Webinar 2020 Cython: A First Look|Abstract]], [[Media:cython.pdf|slides]]&lt;br /&gt;
* 2020/04/27 - [https://youtu.be/rOUaco3w7mU Collaborative Groups in CUDA], Pawel Pomorski, [[Webinar 2020 Collaborative Groups in CUDA|Abstract]], [[Media:Cooperative_groups_seminar_2020.pdf|slides]]&lt;br /&gt;
* 2020/04/08 - [https://youtu.be/OjuCECXhSNo Using SSHFS to make CC storage more accessible], Mark Hahn, [[Webinar 2020 Using SSHFS to make CC storage more accessible|Abstract]]&lt;br /&gt;
* 2020/03/11 - [https://youtu.be/HWLV6oTmfO8 Julia: A third perspective - parallel computing explained], Ge Baolai, [[Webinar 2020 Julia: A third perspective - parallel computing explained|Abstract]], [[Media:Julia3.pdf|slides]]&lt;br /&gt;
* 2020/02/26 - [https://youtu.be/IQT6eiFCifg How to run AI programs in Graham], Isaac Ye, [[Webinar 2020 How to run AI programs in Graham|Abstract]], [[Media:How_to_run_AI_programs_on_graham.pdf|slides]]&lt;br /&gt;
* 2020/02/12 - [https://youtu.be/q1umm9fYD0g New User Seminar, Part II], Sergey Mashchenko, [[Webinar 2020 New User Seminar, Part II|Abstract]], [[Media:New_User_Seminar_Part_II.pdf|slides]]&lt;br /&gt;
* 2020/01/29 - [https://youtu.be/kYb0aXS5DEE Singularity 3.5], Paul Preney, [[Webinar 2020 Singularity 3.5|Abstract]], [[Media:2020-01-29-Singularity.pdf|slides]]&lt;br /&gt;
&lt;br /&gt;
===2019===&lt;br /&gt;
* 2019/12/18 - [https://youtu.be/FG0L4XmkmI4 HPC Programming Language Chapel: Base Language Overview], Jemmy Hu, [[Webinar 2019 HPC Programming Language Chapel: Base Language Overview|Abstract]], [[Media:HPC_Chapel_1_Jemmy_2019.pdf|slides]]&lt;br /&gt;
* 2019/12/04 - [https://youtu.be/OIsi4wHHy98 Docker], Ed Armstrong, [[Webinar 2019 Docker|Abstract]]&lt;br /&gt;
* 2019/11/27 - [https://youtu.be/-QuqSOUbY6Q Julia: A second perspective], Ge Baolai, [[Webinar 2019 Julia: A second perspective|Abstract]]&lt;br /&gt;
* 2019/11/06 - [https://youtu.be/Mv7qCM3eprs Using Multiple GPUs in Tensorflow], Weiguang Guan, [[Webinar 2019 Using Multiple GPUs in Tensorflow|Abstract]], [[Media:Leveraging_HPC_for_Machine_Learning.pdf|slides]]&lt;br /&gt;
* 2019/10/23 - [https://youtu.be/8nI-r3o1cqw Leveraging Compiler Optimization Reports], Doug Roberts, [[Webinar 2019 Leveraging Compiler Optimization Reports|Abstract]]&lt;br /&gt;
* 2019/10/09 - [https://youtu.be/FwhtHOKU8Jk Introduction to scalable computing with Dask in Python], Jinhui Qin, [[Webinar 2019 Introduction to scalable computing with Dask in Python|Abstract]]&lt;br /&gt;
* 2019/09/26 - [https://youtu.be/ixHliisysQk Using reduced numerical precision on Pascal, Volta and Turing GPUs], Pawel Pomorski, [[Webinar 2019 Using reduced numerical precision on Pascal, Volta and Turing GPUs|Abstract]]&lt;br /&gt;
* 2019/06/05 - [https://youtu.be/gKxs0L2Ac4I Julia - A first perspective], Ed Armstrong, [[Webinar 2019 Julia - A first perspective|Abstract]]&lt;br /&gt;
* 2019/05/22 - [https://youtu.be/pFmzZLDEv8I New developments in OpenMP], Jemmy Hu, [[Webinar 2019 New developments in OpenMP|Abstract]], [[Media:GIS-2019-OpenMP.pdf|slides]]&lt;br /&gt;
* 2019/05/08 - [https://youtu.be/RVgiIBuwpPQ Pull your own data into ParaView], Weiguang Guan, [[Webinar 2019 Pull your own data into ParaView|Abstract]]&lt;br /&gt;
* 2019/04/24 - [https://www.youtube.com/watch?v=IUu58TbRCv0 PRE and POST production on Graham], James Desjardins, [[Webinar 2019 PRE and POST production on Graham|Abstract]]&lt;br /&gt;
* 2019/04/10 - [https://www.youtube.com/watch?v=cZ9hs10DFNU Exploring Octave package dataframe], Ge Baolai, [[Webinar 2019 Exploring Octave package dataframe|Abstract]], [[Media:octave-dataframe.pdf|slides]]&lt;br /&gt;
* 2019/03/27 - [https://www.youtube.com/watch?v=36nCgG40DJo Introduction to parallel programming with MPI and Python], Pawel Pomorski, [[Webinar 2019 Introduction to parallel programming with MPI and Python|Abstract]], [[Media:python_mpi_gis.pdf|slides]]&lt;br /&gt;
* 2019/02/27 - [https://www.youtube.com/watch?v=yU645WpDcuM Dipping into C++17 Parallel Algorithms with Intel&amp;#039;s Parallel STL], Armin Sobhani, [[Webinar 2019 Dipping into C++17 Parallel Algorithms with Intel&amp;#039;s Parallel STL|Abstract]], [[Media:dipping_into_CPP17_Parallel_Algorithms_with_Intel_Parallel_STL.pdf|slides]], [https://git.sharcnet.ca/asobhani/parallelstl_tutorial examples]&lt;br /&gt;
* 2019/02/13 - [https://www.youtube.com/watch?v=DmTph9FL_Do What Happened To My Job?], Mark Hahn, [[Webinar 2019 What Happened To My Job?|Abstract]]&lt;br /&gt;
* 2019/01/30 - [https://www.youtube.com/watch?v=j_Mh0UP0V60 Best practices on Graham], Isaac Ye, [[Webinar 2019 Best practices on Graham|Abstract]]* 2019/01/30 - [https://www.youtube.com/watch?v=j_Mh0UP0V60 Best practices on Graham], Isaac Ye, [[Webinar 2019 Best practices on Graham|Abstract]]&lt;br /&gt;
* 2019/01/16 - [https://www.youtube.com/watch?v=aFw7jsNRIts The Monad Understanding Hurdle], Tyson Whitehead, [[Webinar 2019 The Monad Understanding Hurdle|Abstract]]&lt;br /&gt;
&lt;br /&gt;
===2018===&lt;br /&gt;
* 2018/12/19 - [https://www.youtube.com/watch?v=YsF5KMr9uEQ Code profiling on Graham], Sergey Mashchenko, [[Webinar 2018 Code profiling on Graham|Abstract]], [[Media:Profiling_2018.pdf|slides]]&lt;br /&gt;
* 2018/12/05 - [https://www.youtube.com/watch?v=tjP5juz3O1Q Using Pseudorandom Number Sequences in C++], Paul Preney, [[Webinar 2018 Using Pseudorandom Number Sequences in C++|Abstract]], [[Media:Random_numbers_webinar.pdf|slides]]&lt;br /&gt;
* 2018/11/21 - [https://www.youtube.com/watch?v=9AtmCCClM1k MySQL Part 2: Relations and Joins], Edward Armstrong, [[Webinar 2018 MySQL Part 2: Relations and Joins|Abstract]], [[Media:SQL_Joins.pdf|slides]]&lt;br /&gt;
* 2018/11/07 - [https://www.youtube.com/watch?v=yC7gP2ecCsA Using MATLAB effectively on Graham and Cedar], Jemmy Hu, [[Webinar 2018 Using MATLAB effectively on Graham and Cedar|Abstract]], [[Media:Using_MATLAB_effectively_on_Graham_and_Cedar.pdf|slides]]&lt;br /&gt;
* 2018/10/24 - [https://www.youtube.com/watch?v=SkCnE-VazbA Stock Prediction Using Recurrent Neural Network], Weiguang Guan, [[Webinar 2018 Stock Prediction Using Recurrent Neural Network|Abstract]], [[Media:ss-2019-LSTM.pdf|slides]]&lt;br /&gt;
* 2018/10/10 - [https://www.youtube.com/watch?v=ktWGbwYPkPs Understand (and potentially reduce) job wait times], James Desjardins, [[Webinar 2018 Understand (and potentially reduce) job wait times|Abstract]], [[Media:2018-10-10-SNGIW_queue_monitoring.pdf|slides]]&lt;br /&gt;
* 2018/09/26 - [https://www.youtube.com/watch?v=shKqq5ytzRQ The Benefits of GLOST for Many Jobs], Doug Roberts, [[Webinar 2018 The Benefits of GLOST for Many Jobs|Abstract]]&lt;br /&gt;
* 2018/09/12 - [https://www.youtube.com/watch?v=3s-dBEopfwQ Concurrent File I/O by Multiple Processes], Ge Baolai, [[Webinar 2018 Concurrent File I/O by Multiple Processes|Abstract]], [[Media:Concio.pdf|slides]]&lt;br /&gt;
* 2018/08/15 - [https://www.youtube.com/watch?v=OWzCJn7WMKI Harnessing the Power of Heterogeneous Computing using Boost.Compute + OpenCL], Armin Sobhani, [[Webinar 2018 Harnessing the Power of Heterogeneous Computing using Boost.Compute + OpenCL|Abstract]], [[Media:Harnessing_the_Power_of_Heterogeneous_Computing_using_Boost_Compute_OpenCL.pdf|slides]]&lt;br /&gt;
* 2018/08/01 - [https://www.youtube.com/watch?v=CI2DfdwL4Eo Introduction to MySQL on Graham], Ed Armstrong, [[Webinar 2018 Introduction to MySQL on Graham|Abstract]], [[Media:Introduction_to_SQL_on_GRAHAM.3.pdf|slides]]&lt;br /&gt;
* 2018/07/04 - [https://www.youtube.com/watch?v=KfPtkpsiUVc Debugging on Graham with DDT], Sergey Mashchenko, [[Webinar 2018 Debugging on Graham with DDT|Abstract]], [[Media:DDT2.pdf|slides]]&lt;br /&gt;
* 2018/06/20 - [https://www.youtube.com/watch?v=CuuiD5YdrYI Fundamentals of working at the command line at Graham], Isaac Ye, [[Webinar 2018 Fundamentals of working at the command line at Graham|Abstract]], [[Media:Fundamentals_of_working_at_the_command_line_at_Graham.pdf|slides]]&lt;br /&gt;
* 2018/05/09 - [https://www.youtube.com/watch?v=d37zDXzrP_Y Summer School preview], Tyson Whitehead, [[Webinar 2018 Summer School preview|Abstract]], [[Media:summer_school_2018_preview.pdf|slides]]&lt;br /&gt;
* 2018/04/25 - [https://www.youtube.com/watch?v=5ZMQiRsKFR4 All about job wait times in the Graham queue],  James Desjardins, [[Webinar 2018 All about job wait times in the Graham queue|Abstract]], [[Media:SNGIW_queue_wait_times_2018.pdf|slides]]&lt;br /&gt;
* 2018/04/11 - [https://www.youtube.com/watch?v=LGyeId_bHTs Improving your Python programs with NumPy and SciPy], Pawel Pomorski, [[Webinar 2018 Improving your Python programs with NumPy and SciPy|Abstract]], [[Media:Numpy_and_scipy.pdf|slides]]&lt;br /&gt;
* 2018/03/28 - [https://www.youtube.com/watch?v=jjqHEMokO5I Using Computational Chemistry software effectively on Graham], Jemmy Hu, [[Webinar 2018 Using Computational Chemistry software effectively on Graham|Abstract]], [[Media:CompChem.pdf|slides]]&lt;br /&gt;
* 2018/03/14 - [https://www.youtube.com/watch?v=JX7fIpEBxI0 Using SSH for Good, not Evil], Mark Hahn, [[Webinar 2018 Using SSH for Good, not Evil|Abstract]], [[Media:SSH_for_good_not_evil.pdf|slides]]&lt;br /&gt;
* 2018/02/28 - [https://www.youtube.com/watch?v=aR2L-UVmNXA Visual Studio Code – Your Next Coding Companion for Advanced Research Computing], Armin Sobhani, [[Webinar 2018 Visual Studio Code – Your Next Coding Companion for Advanced Research Computing|Abstract]], [[Media:Visual_Studio_Code_--_Your_Next_Coding_Companion_for_Advanced_Research_Computing.pdf|slides]]&lt;br /&gt;
* 2018/02/14 - [https://www.youtube.com/watch?v=C4va7d7GxjM Singularity], Paul Preney, [[Webinar 2018 Singularity|Abstract]], [[Media:2018-02-14-SHARCNET-singularity-webinar.pdf|slides]]&lt;br /&gt;
* 2018/01/31 - [https://www.youtube.com/watch?v=lrK8_GYeTak Deploying a Full Stack Web Solution on the Cloud for Cluster Access], Ed Armstrong, [[Webinar 2018 Deploying a Full Stack Web Solution on the Cloud for Cluster Access|Abstract]], [[Media:LAMP_2018.pdf|slides]]&lt;br /&gt;
* 2018/01/17 - [https://www.youtube.com/watch?v=cNWllxSS82k Intro to Intel Performance Tools], Doug Roberts, [[Webinar 2018 Intro to Intel Performance Tools|Abstract]], [[Media:IntroIntelPerfToolsPt1.pdf|slides]]&lt;br /&gt;
&lt;br /&gt;
===2017=== &lt;br /&gt;
* 2017/12/06 - [https://www.youtube.com/watch?v=pw1J8tGqp4g Introduction to Eclipse for debugging – Part I], Ge Baolai, [[Webinar 2017 Introduction to Eclipse for debugging – Part I|Abstract]]&lt;br /&gt;
* 2017/11/22 - [https://www.youtube.com/watch?v=49dC4bmBCic Serial farming on Graham], Sergey Mashchenko, [[Webinar 2017 Serial farming on Graham|Abstract]], [[Media:Serial_farming_on_Graham.pdf|slides]]&lt;br /&gt;
* 2017/11/08 - [https://www.youtube.com/watch?v=I9W94BT6tXY Introduction to LINUX/SHELL programming in SHARCNET], Isaac Ye, [[Webinar 2017 Introduction to LINUX/SHELL programming in SHARCNET|Abstract]], [[Media:GI_Intro_LINUX_SHELL.pdf|slides]]&lt;br /&gt;
* 2017/10/25 - [https://www.youtube.com/watch?v=5yCUDqAbBUk Machine Learning using Jupyter Notebooks on Graham], Jose Nandez, [[Webinar 2017 Machine Learning using Jupyter Notebooks on Graham|Abstract]], [[Media:Machine_learning_graham.pdf|slides]], [https://github.com/JNandez/jupyter_sharcnet_graham demo code]&lt;br /&gt;
* 2017/10/11 - [https://www.youtube.com/watch?v=7rkucJiw_TE Linear Algebra on GPU], Pawel Pomorski, [[Webinar 2017 Linear Algebra on GPU|Abstract]], [[Media:Linear_algebra_gpu_2017_sharcnet.pdf|slides]]&lt;br /&gt;
* 2017/09/27 - [https://www.youtube.com/watch?v=sGHM8YNza9Q Introduction to SHARCNET Cloud], Mohamed Elsakhawy, [[Webinar 2017 Introduction to SHARCNET Cloud|Abstract]], [[Media:SHARCNET_Cloud_2017.pdf|slides]]&lt;br /&gt;
* 2017/09/20 - [https://www.youtube.com/watch?v=678zbVRSrcQ Training Neural Networks with hundreds of GPUs on Graham and Cedar], Fei Mao, [[Webinar 2017 Training Neural Networks with hundreds of GPUs on Graham and Cedar|Abstract]], [[Media:DL-largescale-webinar.pdf|slides]]&lt;br /&gt;
* 2017/09/13 - [https://www.youtube.com/watch?v=xNwGRvxq9F8 Partitions and scheduling, running jobs effectively on Graham and Cedar], Kamil Marcinkowski, [[Webinar 2017 Partitions and scheduling, running jobs effectively on Graham and Cedar|Abstract]], [[Media:Partitions_Kamil.pdf|slides]]&lt;br /&gt;
* 2017/08/16 - [https://www.youtube.com/watch?v=Ndn5xM1FgrY Packaging with Nix], Tyson Whitehead, [[Webinar 2017 Packaging with Nix|Abstract]], [[Media:Packaging_with_Nix.pdf|slides]]&lt;br /&gt;
* 2017/08/02 - [https://www.youtube.com/watch?v=X7XETPPhuKo Intel MPI Library Cluster Edition on Graham], Doug Roberts, [[Webinar 2017 Intel MPI Library Cluster Edition on Graham|Abstract]], [[Media:IntelMPI_Cluster_Webinar_2aug2017.pdf|slides]]&lt;br /&gt;
* 2017/07/19 - [https://www.youtube.com/watch?v=G0QANByJ9rY How jobs are scheduled to run on Graham and Cedar], James Desjardins, [[Webinar How jobs are scheduled to run on Graham and Cedar|Abstract]], [[Media:Slurm_National_Systems_2017.pdf|slides]]&lt;br /&gt;
* 2017/07/05 - [https://www.youtube.com/watch?v=oT_zNwN_ld4 Train models to recognize hand-written digits using Tensorflow], Weiguang Guan, [[Webinar 2017 Train models to recognize hand-written digits using Tensorflow|Abstract]], [[Media:SummerSchool2017-deeplearning.pdf|slides]], [http://guanw.sharcnet.ca/ss2017-deeplearning.tar.gz code and data]&lt;br /&gt;
* 2017/06/21 - [https://www.youtube.com/watch?v=T_WXhveNJYY What’s new and exciting about Graham’s GPUs], Sergey Mashchenko, [[Webinar What’s new and exciting about Graham’s GPU|Abstract]], [[Media:Graham_GPUs_webinar.pdf|slides]]&lt;br /&gt;
* 2017/05/10 - [https://www.youtube.com/watch?v=VUAGiM2gkEg OpenMP 4.x: New features and Protocols], Jemmy Hu, [[Webinar 2017 OpenMP 4.x: New features and Protocols|Abstract]], [[Media:GIS-2017-OpenMP.pdf|slides]]&lt;br /&gt;
* 2017/04/26 - [https://www.youtube.com/watch?v=Tsd6bAW8uLg Automating Software Build Process using CMake – Part II], Armin Sobhani, [[Webinar 2017 Automating Software Build Process using CMake – Part II|Abstract]]&lt;br /&gt;
* 2017/04/19 - [https://www.youtube.com/watch?v=tdjo1OI-30g Modern Fortran: Concurrency and Parallelism], Ge Baolai, [[Webinar 2017 Modern Fortran: Concurrency and Parallelism|Abstract]], [[Media:Fortran_2008.pdf|slides]]&lt;br /&gt;
* 2017/03/15 - [https://www.youtube.com/watch?v=AT53PVwLVNs High Performance Computing with Python], Pawel Pomorski, [[Webinar 2017 High Performance Computing with Python|Abstract]], [[Media:Hpc_python_seminar_2017.pdf|slides]]&lt;br /&gt;
* 2017/03/01 - [https://www.youtube.com/watch?v=V1tjYzSTrjw Machine Learning with Spark at SHARCNET], Jose Nandez, [[Webinar 2017 Machine Learning with Spark at SHARCNET|Abstract]], [[Media:Ml_spark_jnandez.pdf|slides]]&lt;br /&gt;
* 2017/02/15 - [https://www.youtube.com/watch?v=i9iG5u36XIY Git and SHARCNET (part 2)], Tyson Whitehead, [[Webinar 2017 Git and SHARCNET (part 2)|Abstract]]&lt;br /&gt;
* 2017/02/01 - [https://www.youtube.com/watch?v=NhHIHUUuHjo Deep Learning on SHARCNET: Best Practices], Fei Mao, [[Webinar 2017 Deep Learning on SHARCNET: Best Practices|Abstract]], [[Media:Deep_Learning_on_SHARCNET-Best_Practices.pdf|slides]]&lt;br /&gt;
* 2017/01/18 - [https://www.youtube.com/watch?v=VYaLlQ4Q8pI Navigating the Research Computing Resource Renewals Coming in 2017], James Desjardins, [[Webinar 2017 Navigating the Research Computing Resource Renewals Coming in 2017|Abstract]], [[Media:SN_GIW_nav_2017_refresh.pdf|slides]]&lt;br /&gt;
* 2017/01/04 - [https://www.youtube.com/watch?v=yexB3W2FYM0 Introduction to ParaView], Weiguang Guan, [[Webinar 2017 Introduction to ParaView|Abstract]], [[Media:Webinar-04-01-2017.pdf|slides]]&lt;br /&gt;
&lt;br /&gt;
===2016===&lt;br /&gt;
* 2016/12/07 - [https://www.youtube.com/watch?v=Fc4cFsY38BA Defensive Programming : Best Practices], Ed Armstrong, [[Webinar 2016 Defensive Programming : Best Practices|Abstract]], [[Media:BestPractices_161207.pdf|slides]]&lt;br /&gt;
* 2016/11/09 - [https://www.youtube.com/watch?v=ENerb1HO6zs Debugging CUDA programs], Sergey Mashchenko, [[Webinar 2016 Debugging CUDA programs|Abstract]], [[Media:CUDA_debugging_webinar_2016.pdf|slides]]&lt;br /&gt;
* 2016/10/26 - [https://www.youtube.com/watch?v=_Si1nXfTuyA Introduction to Python], Isaac Ye, [[Webinar 2016 Introduction to Python|Abstract]], [[Media:Introduction_to_Python_2016.pdf|slides]]&lt;br /&gt;
* 2016/10/12 - [https://www.youtube.com/watch?v=_Wiy1tS2wWM What Happened to My Job? Cluster Scheduling In Detail], Mark Hahn, [[Webinar 2016 What Happened to My Job? Cluster Scheduling In Detail|Abstract]], [[Media:What-happened-to-my-job_2016.pdf|slides]]&lt;br /&gt;
* 2016/09/28 - [https://www.youtube.com/watch?v=Hp9bi6xZE1g Introduction to The Unix Shell – Automating Your Work], Ge Baolai, [[Webinar 2016 Introduction to The Unix Shell – Automating Your Work|Abstract]], [[Media:Bash_baolai_2016.pdf|slides]]&lt;br /&gt;
* 2016/09/14 - [https://www.youtube.com/watch?v=7wxzoAdZcKE Automating Software Build Process using CMake], Armin Sobhani, [[Webinar 2016 Automating Software Build Process using CMake|Abstract]], [[Media: Automating_Software_Build_Process_using_CMake.pdf|slides]]&lt;br /&gt;
* 2016/08/17 - [https://www.youtube.com/watch?v=-Aqfnj5QQCQ Introduction to Jupyter], Paul Preney, [[Webinar 2016 Introduction to Jupyter|Abstract]], [[Media:2016-08-17-preney-general-interest-talk-intro-to-jupyter.pdf |slides]]&lt;br /&gt;
* 2016/08/03 - [https://www.youtube.com/watch?v=vtT3S-47Zig Introduction to MPI – Part III], Pawel Pomorski, [[Webinar 2016 Introduction to MPI - Part III|Abstract]], [[Media:Gis_mpi_part3.pdf |slides]]&lt;br /&gt;
* 2016/07/20 - [https://www.youtube.com/watch?v=vvMB3nmr608 Hybrid MPI and OpenMP Parallel Programming], Jemmy Hu, [[Webinar 2016 Hybrid MPI and OpenMP Parallel Programming|Abstract]], [[Media:MPI+OpenMP_2016.pdf |slides]]&lt;br /&gt;
* 2016/06/08 - [https://www.youtube.com/watch?v=wrAapa3KvUk Introduction to Apache Spark on SHARCNET], Jose Nandez, [[Webinar 2016 Introduction to Apache Spark on SHARCNET|Abstract]], [[Media:Intro_spark_jnandez.pdf |slides]]&lt;br /&gt;
* 2016/05/11 - [https://www.youtube.com/watch?v=meFv-GDTkjE Git and SHARCNET], Tyson Whitehead, [[Webinar 2016 Git and SHARCNET|Abstract]]&lt;br /&gt;
* 2016/04/27 - [https://www.youtube.com/watch?v=bNrdvxZQK1s Deep Learning at SHARCNET: Tools you can use], Fei Mao, [[Webinar 2016 Deep Learning at SHARCNET: Tools you can use|Abstract]], [[Media:Deep-learning-tool-webinar-fei-2016.pdf |slides]]&lt;br /&gt;
* 2016/04/13 - [https://www.youtube.com/watch?v=jOjMnNkVkOs Quick tips for getting the most out of SHARCNET], James Desjardins, [[Webinar 2016 Quick tips for getting the most out of SHARCNET|Abstract]], [[Media:sngiw_quick_tips_intro.pdf |slides]]&lt;br /&gt;
* 2016/03/30 - [https://www.youtube.com/watch?v=QeaJ7Vpns4w How to get started with OpenFOAM at SHARCNET], Isaac Ye, [[Webinar 2016 How to get started with OpenFOAM at SHARCNET|Abstract]], [[Media:OpenFoam_at_SHARCNET_2016.pdf |slides]]&lt;br /&gt;
* 2016/03/16 - [https://www.youtube.com/watch?v=Sha7rladJeo Debugging OpenMP programs], Sergey Mashchenko, [[Webinar 2016 Debugging OpenMP programs|Abstract]], [[Media:OpenMP_debugging.pdf |slides]], [http://syam.sharcnet.ca/OpenMP_debugging.tgz code examples]&lt;br /&gt;
* 2016/03/02 - [https://www.youtube.com/watch?v=KCm31D0r_B4 Raphaël – a vector graphics library for web development], Weiguang Guan, [[Webinar 2016 Raphaël – a vector graphics library for web development|Abstract]], [[Media:Introduction_to_Raphaël_JS.pdf  |slides]]&lt;br /&gt;
* 2016/02/17 - [https://www.youtube.com/watch?v=NWgOkKorFH4 Parallel and high performance computing with R], Ge Baolai, [[Webinar 2016 Parallel and high performance computing with R|Abstract]], [[Media:Webinar2016-parallel-hpc-R.pdf  |slides]]&lt;br /&gt;
* 2016/02/03 - [https://www.youtube.com/watch?v=GXu1bZptwf4 UNIX shell expansion: proper use and advanced forms], Tyson Whitehead, [[Webinar 2016 UNIX shell expansion: proper use and advanced forms|Abstract]], [[Media:Tyson_shell_webinar_2016.pdf |slides]]&lt;br /&gt;
* 2016/01/20 - [https://www.youtube.com/watch?v=__xs0sr6gWc Introduction to OpenMP Parallel Programming], Jemmy Hu, [[Webinar 2016 Introduction to OpenMP Parallel Programming|Abstract]], [[Media:Jemmy_openmp_2016.pdf |slides]]&lt;br /&gt;
* 2016/01/06 - Automating Software Build Process using CMake, Armin Sobhani, [[Webinar 2016 Automating Software Build Process using CMake|Abstract]], [[Media:Automating_Software_Build_Process_using_CMake.pdf |slides]]&lt;br /&gt;
&lt;br /&gt;
===2015===&lt;br /&gt;
* 2015/12/09 - [https://www.youtube.com/watch?v=L7sinmKkbJA Parallel Design Patterns], Edward Armstrong, [[Webinar 2015 Parallel Design Patterns|Abstract]], [[Media:PDP151209.pdf |slides]]&lt;br /&gt;
* 2015/11/25 - [https://www.youtube.com/watch?v=tqTX8nBM774 Introduction to MPI – Part II], Pawel Pomorski, [[Webinar 2015 Introduction to MPI|Abstract]], [[Media:Mpi_part_II.pdf |slides]]&lt;br /&gt;
* 2015/11/11 - [https://www.youtube.com/watch?v=RoQJNx5npF4 Introduction to MPI – Part I], Paul Preney, [[Webinar 2015 Introduction to MPI|Abstract]], [[Media:2015-11-11-preney-general-interest-talk-mpi-part1.pdf |slides]]&lt;br /&gt;
* 2015/10/28 - [https://www.youtube.com/watch?v=O0X7WEA_eiI Fundamentals of working at the command line at SHARCNET], Hugh Merz, [[Webinar 2015 Fundamentals of working at the command line at SHARCNET|Abstract]], [[Media:Fundamentals_of_working_at_the_command_line_at_SHARCNET.pdf |slides]]&lt;br /&gt;
* 2015/10/14 - [https://www.youtube.com/watch?v=l8T28EfuREA CUDA Profiling and Tuning], Fei Mao, [[Webinar 2015 CUDA Profiling and Tuning|Abstract]], [[Media:CUDA_PROFILING_TUNING_2015.pdf |slides]]&lt;br /&gt;
* 2015/09/30 - [https://www.youtube.com/watch?v=JAts2FeQCGc Profiling function vectorization in Matlab/Octave], James Desjardins, [[Webinar 2015 Profiling function vectorization in Matlab/Octave|Abstract]]&lt;br /&gt;
* 2015/09/16 - [https://www.youtube.com/watch?v=fSIO706RxuQ Scientific Visualization with ParaView], Weiguang Guan, [[Webinar 2015 Scientific Visualization with ParaView|Abstract]], [[Media:Paraview_2015a.pdf |slides]]&lt;br /&gt;
* 2015/08/19 - [https://www.youtube.com/watch?v=DbIrMCOiyBs Introduction to Parallel I/O], Isaac Ye, [[Webinar 2015 Introduction to Parallel I/O|Abstract]], [[Media:Parallel_IO_2015.pdf |slides]]&lt;br /&gt;
* 2015/08/05 - [https://www.youtube.com/watch?v=tGSoCvTLfkw Parallel programming without MPI – Using coarrays in Fortran], Ge Baolai, [[Webinar 2015 Parallel programming without MPI – Using coarrays in Fortran|Abstract]], [[Media:coarray_2015_08_05_final.pdf |slides]]&lt;br /&gt;
* 2015/07/22 - [https://www.youtube.com/watch?v=Y3Pnw3lZtcI Debugging and profiling of MPI programs], Sergey Mashchenko, [[Webinar 2015 Debugging and profiling of MPI programs|Abstract]], [[Media:MPI_debugging.pdf |slides]], [http://syam.sharcnet.ca/MPI_debugging.tgz code examples]&lt;br /&gt;
* 2015/07/08 - Hybrid MPI and OpenMP Parallel Programming, Jemmy Hu, [[Webinar 2015 Hybrid MPI and OpenMP Parallel Programming|Abstract]], [[Media:Jemmy_MPI_OpenMP.pdf|slides]]&lt;br /&gt;
* 2015/06/24 - [https://youtu.be/qDc_s8hy3cY Programming with Wt - a C++ library for developing stateful and highly interactive web applications], Armin Sohani, [[Webinar 2015 Programming with Wt - a C++ library for developing stateful and highly interactive web applications|Abstract]], [[Media:Programming_with_Wt_2015.pdf |slides]]&lt;br /&gt;
* 2015/06/10 - [https://youtu.be/GOjLT33c6VU Get the most out of SharcNET], Mark Hahn, [[Webinar 2015 Get the most out of SharcNET|Abstract]], [[Media:Getting_the_most_from_sharcnet_2015.pdf|slides]]&lt;br /&gt;
* 2015/05/14 - [https://www.youtube.com/watch?v=pQE9WTLAPHQ Exploring a new approach to package management], Tyson Whitehead, [[Webinar 2015 Exploring a new approach to package management|Abstract]], [[Media:tyson_nix_2015.pdf|slides]]&lt;br /&gt;
* 2015/04/29 - [https://www.youtube.com/watch?v=gLN33Pp58CE High Performance Computing with Python], Pawel Pomorski, [[Webinar 2015 High Performance Computing with Python|Abstract]], [[Media:Hpc_python_beamer.pdf|slides]]&lt;br /&gt;
* 2015/04/15 - [https://www.youtube.com/watch?v=CnscHT9KJ-w An Update on MATLAB at SHARCNET], Jemmy Hu, [[Webinar 2015 An Update on MATLAB at SHARCNET|Abstract]], [[Media:An_Update_on_MATLAB_at_SHARCNET.pdf|slides]]&lt;br /&gt;
* 2015/04/01 - [https://www.youtube.com/watch?v=dP3_CZOTwQ8&amp;amp;feature=youtu.be A brief look at numerical libraries: The tools you can use], Ge Baolai, [[Webinar 2015 A brief look at numerical libraries: The tools you can use|Abstract]], [[Media:Bge_numlibs_2015.pdf|slides]]&lt;br /&gt;
* 2015/03/18 - [https://www.youtube.com/watch?v=Wz78VY7O_iQ Programming, best practices], Ed Armstrong, [[Webinar 2015 Programming, best practices|Abstract]], [[Media:BestPractices_150317.pdf|slides]]&lt;br /&gt;
* 2015/03/04 - [https://www.youtube.com/watch?v=6TSNKE_4znM The Relevance of OpenCL to HPC], Paul Preney, [[Webinar 2015 The Relevance of OpenCL to HPC|Abstract]], [[Media:2015-03-04-the-relevance-of-opencl-to-hpc-talk.pdf|slides]]&lt;br /&gt;
* 2015/02/18 - [https://www.youtube.com/watch?v=ovVrc5FJRfs Serial and parallel farming from A to Z], Sergey Mashchenko, [[Webinar 2015 Serial and parallel farming from A to Z|Abstract]], [[Media:serial_farming_a_to_z_2015.pdf|slides]]&lt;br /&gt;
* 2015/02/04 - [https://www.youtube.com/watch?v=el1iSlP1uOs Deep Learning on SHARCNET: From CPU to GPU cluster], Fei Mao, [[Webinar 2015 Deep Learning on SHARCNET: From CPU to GPU cluster|Abstract]], [[Media:DeepLearningonSHARCNET_2015.pdf|slides]]&lt;br /&gt;
* 2015/01/21 - [https://www.youtube.com/watch?v=fhGjeFQE-LM New User Seminar - Part 2], Hugh Merz, [[Webinar 2015 New User Seminar - Part 2|Abstract]], [[Media:New_user_part_2_2015.pdf|slides]]&lt;br /&gt;
* 2015/01/07 - [https://www.youtube.com/watch?v=xIejqFhD8HI SHARCNet file management], James Desjardins, [[Webinar 2015 SHARCNet file management|Abstract]], [[Media:SN_GIW_file_management.pdf|slides]]&lt;br /&gt;
&lt;br /&gt;
===2014===&lt;br /&gt;
* 2014/12/10 - [https://www.youtube.com/watch?v=Ln_kDFpMnVw Programming with VTK - a high-level visualization library], Weiguang Guan, [[Webinar 2014 Programming with VTK - a high-level visualization library|Abstract]], [[Media:programming_with_VTK_webinar2014.pdf|slides]]&lt;br /&gt;
* 2014/11/26 - [https://www.youtube.com/watch?v=Cq7XcTCwQwk The SHARCNET Desktop], Tyson Whitehead, [[Webinar 2014 The SHARCNET Desktop|Abstract]], [[Media:the_sharcnet_desktop.pdf|slides]]&lt;br /&gt;
* 2014/11/12 - [https://www.youtube.com/watch?v=-uP2kcy_UXY Linear Algebra on GPU], Pawel Pomorski, [[Webinar 2014 Linear Algebra on GPU|Abstract]], [[Media:Linear_algebra_gpu_2014_sharcnet_general.pdf|slides]]&lt;br /&gt;
* 2014/10/29 - [https://www.youtube.com/watch?v=AcCB8KsGw_0 Is the Intel Xeon Phi right for me?], Fei Mao, [[Webinar 2014 Is the Intel Xeon Phi right for me|Abstract]], [[Media:Phi_webinar_fei_2014.pdf|slides]]&lt;br /&gt;
* 2014/10/15 - [https://youtu.be/Wd6KAHWeV-4 CUDA Basics and how to], Isaac Ye, [[Webinar 2014 CUDA Basics and how to|Abstract]], [[Media:GPU_Basics_2014.pdf|slides]]&lt;br /&gt;
* 2014/10/01 - [https://www.youtube.com/watch?v=G1E-q_IPdFU An Introduction to Java Threads], Ed Armstrong, [[Webinar 2014 An Introduction to Java Threads|Abstract]], [[Media:Java_Threads_Introduction_-_141001.pdf|slides]]&lt;br /&gt;
* 2014/09/17 - [https://youtu.be/Y_K4Lm4aXEA Advanced Message Passing in MPI: Using MPI Datatypes with Opaque C++ Types], Paul Preney, [[Webinar 2014 Advanced Message Passing in MPI: Using MPI Datatypes with Opaque C++ Types|Abstract]], [[Media:MPI_Datatypes_with_Opaque_Types_seminar_2014.pdf|slides]]&lt;br /&gt;
* 2014/06/18 - [https://youtu.be/7kpIXuD5HG0 Debugging at SHARCNET], Hugh Merz, [[Webinar 2014 Debugging at SHARCNET|Abstract]], [[Media:Debugging_general_interest_seminar_2014.pdf|slides]]&lt;br /&gt;
* 2014/05/21 - [https://youtu.be/rchRB4ar4OI Running MATLAB in SHARCNET], Jemmy Hu, [[Webinar 2014 Running MATLAB in SHARCNET|Abstract]], [[Media:Running_MATLAB_at_SHARCNET_2014.pdf|slides]]&lt;br /&gt;
* 2014/04/16 - [https://youtu.be/F0Wzsr8zKQs My code doesn’t crash -- why should I still use Valgrind?], Tyson Whitehead, [[Webinar 2014 My code doesn’t crash -- why should I still use Valgrind|Abstract]], [[Media:seminar-2014-04-16-slides.pdf|slides]]&lt;br /&gt;
* 2014/03/19 - [https://youtu.be/sN1od6J_xYw Managing your files effectively at SHARCNET with SVN], Baolai Ge, [[Webinar 2014 Managing your files effectively at SHARCNET with SVN|Abstract]]&lt;br /&gt;
* 2014/02/19 - [https://youtu.be/HtBXZUf2708 Profiling MPI codes with Allinea&amp;#039;s MAP], Sergey Mashchenko, [[Webinar 2014 Profiling MPI codes with Allinea&amp;#039;s MAP]], [http://www.sharcnet.ca/~syam/MAP_webinar_02.2014.pdf slides]&lt;br /&gt;
* 2014/01/27 - [https://youtu.be/xYySnkPsHuo New User Seminar 2014-Jan-27], Baolai Ge&lt;br /&gt;
* 2014/01/15 - [https://youtu.be/Ddv0Xxzdlh8 Webinar 2015 Using parallel I/O in SHARCNET], Alex Razoumov, [http://bit.ly/1ksxxja slides]&lt;br /&gt;
&lt;br /&gt;
===2013===&lt;br /&gt;
* 2013/12/18 - [https://youtu.be/PfbplY-87p4 Why Would I Use GPUs?], Pawel Pomorski, [[Webinar 2013 Why Would I Use GPUs?|Abstract]], [http://ppomorsk.sharcnet.ca/gpu_general_interest_dec2013.pdf slides]&lt;br /&gt;
* 2013/11/20 - [https://youtu.be/SgNgxGxkGZ4 Introduction to Linux], Isaac Ye, [[Webinar 2013 Introduction for Linux Abstract|Abstract]], [http://www.sharcnet.ca/~isaac/intro_linux_nov_2013.pdf slides]&lt;br /&gt;
* 2013/05/01 - Quick-n-dirty Ways to Run Serial Code Faster, in Parallel, Sergey Mashchenko, [http://www.sharcnet.ca/~syam/quick_parallel.pdf slides]&lt;br /&gt;
* 2013/02/11 - [https://youtu.be/OyxlW8UffN0 New user seminar], Ge Baolai&lt;br /&gt;
* 2013/01/23 - [https://youtu.be/aUufc91sfeM Bash shell scripting], Isaac Ye&lt;br /&gt;
&lt;br /&gt;
===2012===&lt;br /&gt;
* 2012/11/21 - [https://youtu.be/szASgA39ZMI New user seminar, part 2], Hugh Merz&lt;br /&gt;
* 2012/10/24 - [https://youtu.be/MCZTeUDbw08 Introduction to Valgrind], Tyson Whitehead&lt;br /&gt;
* 2012/09/26 - [https://youtu.be/75u3u3qGg_g Why would I use GPUs?], Pawel Pomorski&lt;br /&gt;
* 2012/05/29 - [https://youtu.be/DXkKyo7Mzd4 Introduction to SHARCNET environment], Alex Razoumov&lt;br /&gt;
* 2012/05/29 - [https://youtu.be/zEZsAAgddZ4 Introduction to Linux], Isaac Ye&lt;br /&gt;
* 2012/05/29 - [https://youtu.be/FjZB7y4FuHA HPC architecture overview], Hugh Merz&lt;br /&gt;
* 2012/05/29 - [https://youtu.be/m9O6OoAuCDs Appraising your programming skills], David McCaughan&lt;br /&gt;
* 2012/04/04 - [https://youtu.be/GvwMFZng-O4 Optimizing tools], Nick Chepurny&lt;br /&gt;
&lt;br /&gt;
===2011===&lt;br /&gt;
* 2011/11/23 - [https://youtu.be/v0M02K8uuT8 Subversion], Ge Baolai&lt;br /&gt;
* 2011/11/02 - [https://youtu.be/x9bQKe4NfdE Visualizing data with Paraview], Alex Razoumov&lt;br /&gt;
* 2011/10/12 - [https://youtu.be/mgBUebB78Bc Matlab parallel computing toolbox], Jemmy Hu&lt;br /&gt;
* 2011/09/21 - [https://youtu.be/3kxjQdDelm4 Linear algebra on GPU], Pawel Pomorski&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=Getting_started_with_MLflow_for_machine_learning_and_AI_development&amp;diff=1207</id>
		<title>Getting started with MLflow for machine learning and AI development</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=Getting_started_with_MLflow_for_machine_learning_and_AI_development&amp;diff=1207"/>
		<updated>2026-02-27T14:01:34Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: Created page with &amp;quot;Reproducibility and experiment tracking are essential in machine learning workflows. MLflow is an open-source platform for experiment tracking and model management in machine...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reproducibility and experiment tracking are essential in machine learning workflows. MLflow is an open-source platform for experiment tracking and model management in machine learning and AI development. This webinar introduces MLflow with quickstart examples running on the clusters, focusing on a lightweight setup with local storage. The examples will be demonstrated in Jupyter notebooks and in batch jobs.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=General_Interest_Seminars&amp;diff=1206</id>
		<title>General Interest Seminars</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=General_Interest_Seminars&amp;diff=1206"/>
		<updated>2026-02-27T14:01:25Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* Round 13 (Starting October 2025) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page organizing/archiving general interest seminars (became a part of Compute Ontario Colloquia weekly series starting January 2023).&lt;br /&gt;
&lt;br /&gt;
== Round 1 (Starting May 2011) ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Dates !! Att&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || Serial farming and Monte Carlo for SHARCNET || 2011/05/18 || 15&lt;br /&gt;
|-&lt;br /&gt;
|David || Automating Tasks with bash || 2011/06/08 || 8&lt;br /&gt;
|-&lt;br /&gt;
|HughM || [[Debugging at SHARCNET]] || 2011/06/29 || 11&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || Introduction to Linux || 2011/07/20 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || Linear Algebra on GPU || 2011/09/21 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[MATLAB Parallel Computing Toolbox on SHARCNET]]|| 2011/10/12 || 7&lt;br /&gt;
|-&lt;br /&gt;
|Alex || Visualizing Data with Paraview || 2011/11/02 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || Managing your files effectively at SHARCNET with SVN || 2011/11/23 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || Introduction to Valgrind || 2012/03/14 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Nick ||Optimizing Tools for Development and Execution of Programs || 2012/04/04 || 14&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 2 (Starting Sept. 2012) ==&lt;br /&gt;
&lt;br /&gt;
Note: henceforth, there is expected to be a General Interest Seminar every month, on the third Wednesday at noon.  Please be responsible about this and plan for your month.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Month !! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
| SEP || Pawel || Why Would I Use GPUs? || 2012/09/26 || 12&lt;br /&gt;
|-&lt;br /&gt;
| OCT || Tyson  || Introduction to Valgrind || 2012/10/17 || 5&lt;br /&gt;
|-&lt;br /&gt;
| NOV || HughM || [[New User Seminar - Part 2]] || 2012/11/21 || 15&lt;br /&gt;
|-&lt;br /&gt;
| DEC || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| JAN || Isaac || Shell scripting || 2013/01/23 || 18&lt;br /&gt;
|-&lt;br /&gt;
| FEB || Jemmy || SHARCNET Software Support Updates || 2013/02/27 || 7&lt;br /&gt;
|-&lt;br /&gt;
| MAY || Sergey || Quick-n-dirty ways to run your serial code faster, in parallel || 2013/05/01 || 15&lt;br /&gt;
|-&lt;br /&gt;
| JUNE || David || Parallel programming patterns || 2013/06/ || &lt;br /&gt;
|-&lt;br /&gt;
| JUL || Alex || || 2013/07/ || &lt;br /&gt;
|-&lt;br /&gt;
| AUG || Baolai || || 2013/08/ || &lt;br /&gt;
|-&lt;br /&gt;
| SEP || Nick || || 2013/09/ ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 3 (Starting Sept. 2013) ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Month !! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
| NOV || Isaac || [[Introduction to Linux]] || 2013/11/20 || 32&lt;br /&gt;
|-&lt;br /&gt;
| DEC || Pawel || [[Why Would I Use GPUs?]] || 2013/12/18 || 22&lt;br /&gt;
|-&lt;br /&gt;
| JAN || Alex || [[Using parallel I/O in SHARCNET]] || 2014/01/15 || 10&lt;br /&gt;
|-&lt;br /&gt;
| FEB || Sergey || [[Profiling MPI codes with Allinea&amp;#039;s MAP]] || 2014/02/19 || 10&lt;br /&gt;
|-&lt;br /&gt;
| MAR || Baolai || [[Managing your files effectively at SHARCNET with SVN]] || 2014/03/19 || 8&lt;br /&gt;
|-&lt;br /&gt;
| APR || Tyson  || [[My code doesn&amp;#039;t crash -- why should I still use Valgrind?]] || 2014/04/16  || 17&lt;br /&gt;
|-&lt;br /&gt;
| MAY || Jemmy || [[Running MATLAB in SHARCNET]] || 2014/05/21 || 34&lt;br /&gt;
|-&lt;br /&gt;
| JUNE || Hugh || [[Webinar 2014 Debugging at SHARCNET|Debugging at SHARCNET]] || 2014/06/18 || 20&lt;br /&gt;
|-&lt;br /&gt;
| JUL || James || [[Webinar 2014 Transitioning from Matlab to Octave|Transitioning from Matlab to Octave]] || 2014/07/16 || ?&lt;br /&gt;
|-&lt;br /&gt;
| AUG ||  || || 2014/08/20 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Round 4 (Starting Sept. 2014) ==&lt;br /&gt;
&lt;br /&gt;
Note: with the new (biweekly) schedule, full time HPTC will have to give 2 seminars per year. &amp;#039;&amp;#039;&amp;#039;Please make at least one of these two seminars a new one&amp;#039;&amp;#039;&amp;#039; (the other one can be an old recycled one).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att !! Reg&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[webinar 2014 Advanced Message Passing in MPI: Using MPI Datatypes with Opaque C++ Types|Advanced Message Passing in MPI: Using MPI Datatypes with Opaque C++ Types]] || 2014/09/17 || 7 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[webinar 2014 An Introduction to Java Threads|An Introduction to Java Threads]] || 2014/10/01 || 9 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[webinar 2014 CUDA Basics and how to in SHARCNET|CUDA Basics and how to]] || 2014/10/15 || 20 || 31&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[webinar 2014 Is the Intel Xeon Phi right for me?|Is the Intel Xeon Phi right for me?]] || 2014/10/29 || 11 || 15&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Linear Algebra on GPU]] || 2014/11/12 || 11 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2014 The SHARCNET Desktop|The SHARCNET Desktop]] || 2014/11/26 || 17 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Weiguan || [[webinar 2014 Programming with VTK - a high-level visualization library |Programming with VTK - a high-level visualization library]] || 2014/12/10 || 18 || 14&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2015 SHARCNet file management|SHARCNet file management]] || 2015/01/07 || 15 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Hugh || [[webinar 2015 New User Seminar - Part 2|New User Seminar - Part 2]] || 2015/01/21 || 10 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[webinar 2015 Deep Learning on SHARCNET: From CPU to GPU cluster|Deep Learning on SHARCNET: From CPU to GPU cluster]] || 2015/02/04 || 40 || 22&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2015 Serial and parallel farming from A to Z|Serial and parallel farming from A to Z]] || 2015/02/18 || 30 || 23&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[The Relevance of OpenCL to HPC]] || 2015/03/04 || 15+20 live || 12&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[webinar 2015 Programming, best practices| Programming, best practices]] || 2015/03/18 || 23 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2015 Numerical libraries for scientific computing|A brief look at numerical libraries: The tools you can use]] || 2015/04/01 || 8 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[webinar 2015 An Update on MATLAB at SHARCNET| An Update on MATLAB at SHARCNET]] || 2015/04/15 || 7 || 13&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2015 High Performance Computing with Python| High Performance Computing with Python]] || 2015/04/29 || 39 || 29&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2015 Exploring a new approach to package management| Exploring a new approach to package management]] || 2015/05/14 || 6 || 3&lt;br /&gt;
|-&lt;br /&gt;
| || [[]] || 2015/05/27 || canceled&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[webinar 2015 Get the most out of SharcNET|Get the most out of SharcNET]] || 2015/06/10 || 25 || 23&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2015 Programming with Wt - A C++ library for developing stateful and highly interactive web applications|Programming with Wt - A C++ library for developing stateful and highly interactive web applications]] || 2015/06/24 || 7 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[Hybrid MPI and OpenMP Parallel Programming]] || 2015/07/08 || 17 || 13&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2015 Debugging and profiling of MPI programs| Debugging and profiling of MPI programs]] [[]] || 2015/07/22 || 15 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Baolai|| [[webinar 2015 Parallel programming without MPI - Using coarrays in Fortran|Parallel programming without MPI - Using coarrays in Fortran]] || 2015/08/05 || 10 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Isaac|| [[webinar 2015 Introduction to Parallel I/O| Introduction to Parallel I/O]] || 2015/08/19 || 18 || 16&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 5 (Starting Sept. 2015) ==&lt;br /&gt;
&lt;br /&gt;
Note: with the new (biweekly) schedule, full time HPTC will have to give 2 seminars per year. &amp;#039;&amp;#039;&amp;#039;Please make at least one of these two seminars a new one&amp;#039;&amp;#039;&amp;#039; (the other one can be an old recycled one).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att !! Reg&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[webinar 2015 cientific Visualization with ParaView| Scientific Visualization with ParaView]] || 2015/9/16 || 23 || 15&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2015 Profiling function vectorization in Matlab/Octave | Profiling function vectorization in Matlab/Octave ]] || 2015/9/30 || 11 || 4&lt;br /&gt;
|-&lt;br /&gt;
|Fei ||  [[webinar 2015 CUDA Profiling and Tuning| CUDA Profiling and Tuning]]  || 2015/10/14 || 18 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Hugh || [[webinar 2015 Fundamentals of working at the command line at SHARCNET| Fundamentals of working at the command line at SHARCNET]] || 2015/10/28 || 35 || 16&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[webinar 2015 Introduction to MPI - Part I| Introduction to MPI - Part I]]|| 2015/11/11 || 20 || 25&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2015 Introduction to MPI - Part II| Introduction to MPI - Part II]]|| 2015/11/25 || 10 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[webinar 2015 Parallel Design Patterns| Parallel Design Patterns]] || 2015/12/9 || 10 || 15&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2016 Automating Software Build Process using CMake| Automating Software Build Process using CMake]] || 2016/1/6 || 16 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[webinar 2016 Introduction to OpenMP Parallel Programming| Introduction to OpenMP Parallel Programming]]|| 2016/1/20 || 5 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2016 UNIX shell expansion: proper use and advanced forms| UNIX shell expansion: proper use and advanced forms]] || 2016/2/3 || 17 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2016 Parallel and high performance computing with R| Parallel and high performance computing with R]] || 2016/2/17 || 24 || 21&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[webinar 2016 Raphaël - a vector graphics library for web development|Raphaël - a vector graphics library for web development]] || 2016/3/2 || 6 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2016 Debugging OpenMP programs| Debugging OpenMP programs]] || 2016/3/16 || 1 || 3&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[webinar 2016 How to get started with OpenFOAM at SHARCNET|How to get started with OpenFOAM at SHARCNET]] || 2016/3/30 || 14 || 7&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2016 Quick tips for getting the most out of SHARCNET|Quick tips for getting the most out of SHARCNET]] || 2016/4/13 || 17 || 13&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[webinar 2016 Deep Learning on SHARCNET: Tools you can use|Deep Learning on SHARCNET: Tools you can use]] || 2016/4/27 || 38 || 23&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2016 Git and SHARCNET|Git and SHARCNET ]] || 2016/5/11 || 14 || 10&lt;br /&gt;
|-&lt;br /&gt;
|Doug || Canceled || 2016/5/25 || &lt;br /&gt;
|-&lt;br /&gt;
|Jose || [[webinar 2016 Introduction to Apache Spark on SHARCNET|Introduction to Apache Spark on SHARCNET]] || 2016/6/8 || 15 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Hugh || Canceled || 2016/6/22 || &lt;br /&gt;
|-&lt;br /&gt;
|Ed || Canceled || 2016/7/6 || &lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[Hybrid MPI and OpenMP Parallel Programming]] || 2016/7/20 || 7 || 10&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2016 Introduction to MPI - Part III|Introduction to MPI - Part III]] || 2016/8/3 || 0 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[webinar 2016 Introduction to Jupyter| Introduction to Jupyter]] || 2016/8/17 || 14 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2016 Automating Software Build Process using CMake| Automating Software Build Process using CMake]] || 2016/9/14 || 6 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2016 Introduction to The Shell|Introduction to The Unix Shell - Automating Your Work]] || 2016/9/28 || 23 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[webinar 2016 What Happened to My Job?  Cluster Scheduling In Detail|What Happened to My Job?  Cluster Scheduling In Detail]] || 2016/10/12 || 17 || 11&lt;br /&gt;
|-&lt;br /&gt;
|Isaac ||[[webinar 2016 Introduction To Python|Introduction To Python: simple practise of data analysis]] || 2016/10/26 || 24 || 30&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[webinar 2016 Debugging CUDA programs| Debugging CUDA programs]] || 2016/11/9 || 3 || 1&lt;br /&gt;
|-&lt;br /&gt;
|Doug || Canceled || 2016/11/23 || 0 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[webinar 2016 Defensive Programming : Best Practices|Defensive Programming : Best Practices]] || 2016/12/7 || 8 || 15&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 6 (Starting January 2017) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att !! Reg&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[webinar 2017 Introduction to ParaView|Introduction to ParaView]] || 2017/1/4 || 12 || 13&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2017 Navigating the research computing resource renewals coming in 2017|Navigating the research computing resource renewals coming in 2017]] || 2017/1/18 || 11 || 10&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[webinar 2017 Deep Learning on SHARCNET: Best Practices |Deep Learning on SHARCNET: Best Practices]] || 2017/2/1 || 23 || 24&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2017 Git and SHARCNET (part 2)|Git and SHARCNET (part 2)]]|| 2017/2/15 || 5 || 13&lt;br /&gt;
|-&lt;br /&gt;
|Jose || [[webinar 2017 Machine Learning with Spark at SHARCNET|Machine Learning with Spark at SHARCNET ]]  || 2017/3/1 || 12 || 28&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2017 High Performance Computing with Python|High Performance Computing with Python]]|| 2017/3/15 || 27 || 37&lt;br /&gt;
|-&lt;br /&gt;
|Paul || CANCELED (speaker not ready) || 2017/3/29 || || &lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2017 Modern Fortran: Concurrency |Modern Fortran: Concurrency and Parallelism]] || 2017/4/12 || 18 || 22&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||  [[webinar 2017 Automating Software Build Process using CMake – Part II|Automating Software Build Process using CMake – Part II]] || 2017/4/26 || 2 || 1&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[OpenMP 4.x: New features and Protocols]] || 2017/5/10 || 9 || 3&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[Webinar 2017 How to compile/run OpenFOAM in SHARCNET |How to compile/run OpenFOAM in SHARCNET]] || 2017/5/24 || 10 || 7&lt;br /&gt;
|-&lt;br /&gt;
|Ed || CANCELED (one attendee)|| 2017/6/7 || 1 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2017 What&amp;#039;s new and exciting about Graham&amp;#039;s GPUs| What&amp;#039;s new and exciting about Graham&amp;#039;s GPUs]] || 2017/6/21 || 27 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Webinar 2017 Train models to recognize hand-written digits using Tensorflow|Train models to recognize hand-written digits using Tensorflow]] || 2017/7/5 || 24 || 23&lt;br /&gt;
|-&lt;br /&gt;
|James || [[Webinar 2017 How jobs are scheduled to run on Graham and Cedar|How jobs are scheduled to run on Graham and Cedar]] || 2017/7/19 || 55 || 34&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2017 Intel MPI Library Cluster Edition on Graham|Intel MPI Library Cluster Edition on Graham]] || 2017/8/2 || 6 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Webinar 2017 Packaging with Nix|Packaging with Nix]] || 2017/8/16 || 6 || 4&lt;br /&gt;
|-&lt;br /&gt;
|Kamil || [[Webinar 2017 Partitions and scheduling, running jobs effectively on Graham and Cedar | Partitions and scheduling, running jobs effectively on Graham and Cedar]] || 2017/9/13 || 34 || 24&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[Webinar 2017 Training Neural Networks with hundreds of GPUs on Graham and Cedar | Training Neural Networks with hundreds of GPUs on Graham and Cedar]] || 2017/9/20 || 46 || 36&lt;br /&gt;
|-&lt;br /&gt;
|Mohamed|| [[Webinar 2017 Introduction to SHARCNET Cloud|Introduction to SHARCNET Cloud]] || 2017/9/27 || 19 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Webinar 2017 Linear Algebra on GPU| Linear Algebra on GPU]] || 2017/10/11 || 20 || 16&lt;br /&gt;
|-&lt;br /&gt;
|Jose || [[Webinar 2017 Machine Learning using Jupyter Notebooks on Graham|Machine Learning using Jupyter Notebooks on Graham]]  || 2017/10/25 || 36  || 34&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[Webinar 2017 Introduction to LINUX/SHELL programming in SHARCNET|Introduction to LINUX/SHELL programming in SHARCNET]] || 2017/11/8 || 31 || 33&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2017 Serial farming on Graham|Serial farming on Graham]] || 2017/11/22 || 22 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[Webinar 2017 Introduction to Eclipse for debugging - Part I|Introduction to Eclipse for debugging - Part I]] || 2017/12/6 || 10 || 4&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2018 Intro to Intel Performance Tools|Intro to Intel Performance Tools]] || 2018/1/17 || 8 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[Webinar 2018 Deploying a Full Stack Web Solution on the Cloud for Cluster Access|Deploying a Full Stack Web Solution on the Cloud for Cluster Access]] || 2018/1/31 || 22 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[Webinar 2018 Singularity|Singularity]] || 2018/2/14 || 13 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[Webinar 2018 Visual Studio Code - Your Next Coding Companion for Advanced Research Computing|Visual Studio Code - Your Next Coding Companion for Advanced Research Computing]] || 2018/2/28 || 14 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[Webinar 2018 Using SSH for Good, not Evil|Using SSH for Good, not Evil]] || 2018/3/14 || 17 || 16&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 7 (Starting March 2018) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att !! Reg&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Using Computational Chemistry software effectively on Graham]] || 2018/3/28 || 14 || 4&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2018 Improving your Python programs with NumPy and SciPy|Improving your Python programs with NumPy and SciPy]] || 2018/4/11 || 24 || 22&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2018 All about job wait times in the Graham queue|All about job wait times in the Graham queue ]] || 2018/4/25 || 31 || 22&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2018 Summer School preview|Summer School preview]] || 2018/5/9 || 18 || 14&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || CANCELED || 2018/5/23 || 0 || &lt;br /&gt;
|-&lt;br /&gt;
|Jose || CANCELED || 2018/6/6 || 0 || &lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[webinar 2018 Fundamentals of working at the command line at Graham|Fundamentals of working at the command line at Graham]] || 2018/6/20 || 30 || 28&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2018 Debugging on Graham with DDT|Debugging on Graham with DDT]] || 2018/7/4 || 6 || 7&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||  [[webinar 2018 Mixed Source C, C++, and Fortran Programs|Mixed Source C, C++, and Fortran Programs]] || 2018/7/18 || 18 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||  [[webinar 2018 Introduction to MySQL on Graham|Introduction to MySQL on Graham]]|| 2018/8/1 || 15 || 14&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||  [[webinar 2018 Harnessing the Power of Heterogeneous Computing using Boost.Compute + OpenCL|Harnessing the Power of Heterogeneous Computing using Boost.Compute + OpenCL ]] || 2018/8/15 || 7 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2018 Concurrent File I/O by Multiple Processes|Concurrent File I/O by Multiple Processes]] || 2018/9/12 || 13 || 7&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[webinar 2018 The Benefits of GLOST for Many Jobs|The Benefits of GLOST for Many Jobs]] || 2018/9/26 || 9 || 9&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2018 Understand (and potentially reduce) job wait times by examining scheduler configuration, load in the queue and account usage|Understand (and potentially reduce) job wait times by examining scheduler configuration, load in the queue and account usage]] || 2018/10/10 || 23 || 18&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[webinar 2018 Stock Prediction Using Recurrent Neural Network|Stock Prediction Using Recurrent Neural Network]] || 2018/10/24 || 33 || 29&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[webinar 2018 Using MATLAB effectively on Graham and Cedar|Using MATLAB effectively on Graham and Cedar]] || 2018/11/7 || 33 || -&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[webinar 2018 MySQL Part 2:  Relations and Joins|MySQL Part 2:  Relations and Joins]] || 2018/11/21 || 5 || -&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[webinar 2018 Using Pseudorandom Number Sequences in C++|Using Pseudorandom Number Sequences in C++]]  || 2018/12/5 || 7 || -&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2018 Code profiling on Graham|Code profiling on Graham]]|| 2018/12/19 || 26 || -&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2018 The Monad Understanding Hurdle|The Monad Understanding Hurdle]]|| 2019/1/16 || 9 || -&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[webinar 2018 Best practices for newbies on Graham|Best practices for newbies on Graham]]|| 2019/1/30 || 35 || -&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[webinar 2019 What Happened To My Job?|What Happened To My Job? ]]|| 2019/2/13 || 15 || &lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2019 Dipping into C++17 Parallel Algorithms with Intel&amp;#039;s Parallel STL|Dipping into C++17 Parallel Algorithms with Intel&amp;#039;s Parallel STL]] || 2019/2/27 || 14 || &lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[webinar 2019 Exploring the Use of Application Software on Grahams Visualization Machine|Exploring the Use of Application Software on Grahams Visualization Machine]] || 2019/3/13 || 35 || &lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2019 Introduction to parallel programming with MPI and Python|Introduction to parallel programming with MPI and Python]] || 2019/3/27 || 25 || - &lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2019 Exploring Octave package dataframe|Exploring Octave package dataframe]] || 2019/4/10 || 2 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 8 (Starting April 2019) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James || [[Webinar 2019 PRE and POST production on Graham|PRE and POST production on Graham]] || 2019/4/24 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Webinar 2019 Pull your own data into ParaView|Pull your own data into ParaView]] || 2019/5/8 || 31&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[The New Development of OpenMP]] || 2019/5/22 || 22&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[Webinar 2019 Julia - A first perspective|Julia - A first perspective]] || 2019/6/5 || 45&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[Webinar 2019 Using C++&amp;#039;s Parallel Algorithms|Using C++&amp;#039;s Parallel Algorithms]]|| 2019/6/19 || 14&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || CANCELED || 2019/7/3 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Webinar 2019 The Monad Understanding Hurdle (Part 2)|The Monad Understanding Hurdle (Part 2)]] || 2019/7/17 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[Webinar 2019 Fundamentals of working at the command line at Graham| Fundamentals of working at the command line at Graham ]] || 2019/7/31 || 54&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[Webinar 2019 Is It Possible to Use C++ Parallel Algorithms in a Distributed Memory Setup (i.e. MPI)?|Is It Possible to Use C++ Parallel Algorithms in a Distributed Memory Setup (i.e. MPI)?]] || 2019/8/14 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Doug || CANCELED || 2019/9/11 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[Webinar 2019 Using reduced numerical precision on Pascal, Volta and Turing GPUs|Using reduced numerical precision on Pascal, Volta and Turing GPUs]] || 2019/9/25 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui || [[Webinar 2019 Introduction to scalable computing with Dask in Python| Introduction to scalable computing with Dask in Python ]] || 2019/10/9 || 40&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2019 Leveraging Compiler Optimization Reports|Leveraging Compiler Optimization Reports ]] || 2019/10/23 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Webinar 2019 Using Multiple GPUs in Tensorflow|Using Multiple GPUs in Tensorflow]] || 2019/11/6 || 18&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[Webinar 2019 Julia: A second perspective|Julia: A second perspective]]  || 2019/11/20 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[Webinar 2019 Docker|Docker]]|| 2019/12/4 || 27&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Webinar 2019 Introduction to HPC Programming Language Chapel: Base Language Overview |Introduction to HPC Programming Language Chapel: Base Language Overview ]] || 2019/12/18 || 10&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Webinar 2019 The Monad Understanding Hurdle (Part 3)|The Monad Understanding Hurdle (Part 3)]] || 2020/1/15 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[Webinar 2019 Singularity 3.5|Singularity 3.5]]|| 2020/1/29 || 27&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2019 New User Seminar, Part II|New User Seminar, Part II]] || 2020/2/12 || 23&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[Webinar_2020_how_to_run_AI_programs_in_Graham| How to Run AI programs in Graham]]|| 2020/2/26 || 44&lt;br /&gt;
|-&lt;br /&gt;
|Baolai|| [[Julia: A third perspective - parallel computing explained]] || 2020/3/11 || 18&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[Webinar_2020_Introduction_to_scalable_computing_with_Dask_in_Python_(Continued)|Introduction to scalable computing with Dask in Python (Continued)]] || 2020/3/25 || 15&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||  [[Webinar 2020 Using SSHFS to make CC storage more accessible|Using SSHFS to make CC storage more accessible]] || 2020/4/8 || 21&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Webinar 2020 Collaborative Groups in CUDA|Collaborative Groups in CUDA]] || 2020/4/22 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Doug||CANCELED || 2020/5/6 || &lt;br /&gt;
|-&lt;br /&gt;
|Armin ||CANCELED || 2020/5/20 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 9 (Starting July 2020) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Webinar 2020 Cython: A First Look|Cython: A First Look]] || 2020/7/8 || 60&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Webinar 2020 Visualizing job usage on the Compute Canada systems with the ViewClust Python package|Visualizing job usage on the Compute Canada systems with the ViewClust Python package]] || 2020/7/15 || 33&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Webinar 2020 How to Use C++ Parallel Algorithms in a Distributed Memory Setup (i.e. MPI)|How to Use C++ Parallel Algorithms in a Distributed Memory Setup (i.e. MPI)]] || 2020/7/29 || 15 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergio ||[[Webinar 2020 Bioinformatics in the terminal: Tips and tricks to make your life easier|Bioinformatics in the terminal: Tips and tricks to make your life easier]] || 2020/8/12 || 47 ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2020 Options for Solving Jobs with Many Tasks|Options for Solving Jobs with Many Tasks]]|| 2020/9/9 || 13 || 30&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[Webinar 2020 Is my neural network too big to fit into GPU?|Is my neural network too big to fit into GPU?]] || 2020/9/23 || 59 || 93&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Webinar 2020 Introduction to HPC Programming Language Chapel: Parallel Approaches|Introduction to HPC Programming Language Chapel: Parallel Approaches ]]|| 2020/10/7 || 7 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[Webinar 2020 Introduction to Git|Introduction to Git]] || 2020/10/21 || 50 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[Webinar 2020 Julia - Parallel computing revisited|Julia: Parallel computing revisited]] || 2020/11/4 || 8 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[Webinar 2020 NixOS: The second largest and the most up-to-date Linux distribution|NixOS: The second largest and the most up-to-date Linux distribution]] || 2020/11/18 || 18 ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Webinar 2020 Practical Singularity|Practical Singularity]] || 2020/12/2 || 28 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[Webinar 2020 Offload Analytics Workload in Python to GPUs with RAPIDS|Offload Analytics Workload in Python to GPUs with RAPIDS]]  || 2020/12/16 || 46 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[Webinar 2021 Programming GPUs with Fortran|Programming GPUs with Fortran]] || 2021/1/13 || 25 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[Webinar 2021 Computing in arbitrary precision|Computing in arbitrary precision]] || 2021/1/27 || 13 ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Isaac&amp;#039;&amp;#039;&amp;#039; || [[Webinar 2021 Some ML practices running GPUs in Compute Canada system|Using multiple GPUs for Machine Learning]] || 2021/2/10 || &amp;#039;&amp;#039;&amp;#039;63&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|James || [[Webinar 2021 Generating interactive visualizations with Plotly on Graham|Generating interactive visualizations with Plotly on Graham]]|| 2021/2/24 || 47 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Webinar 2021 Scalable Memory Allocation for Parallel Algorithms| Scalable Memory Allocation for Parallel Algorithms]] || &amp;#039;&amp;#039;&amp;#039;2021/3/17&amp;#039;&amp;#039;&amp;#039; || 7 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergio ||[[Webinar 2021 FauxConda: ways to use Conda without conda|FauxConda: ways to use Conda without conda]] || 2021/3/24 || 27 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[An Update to ADF/AMS software on Graham]]|| 2021/4/7 || 14 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2021 Debugging your code with DDT|Debugging your code with DDT]] || 2021/4/21 || 15 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler || [[Webinar 2021 Pandas Recipes for New Python Users|Pandas Recipes for New Python Users]] || 2021/5/5 || 53 ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2021 DIY Local Program Installation|DIY Local Program Installation]] || 2021/5/19 || 15 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||CANCELED  || 2021/6/2 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Webinar 2021 Learning from competition|Learning from competition]] || 2021/6/16 || 103 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || CANCELED || 2021/6/30 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[Webinar 2021 Hybrid MPI|Hybrid MPI]] || 2021/7/14 || 41 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[Webinar 2021 Comparing CPU, GPU, memory, interconnect and filesystem performance across National systems|Comparing CPU, GPU, memory, interconnect and filesystem performance across National systems]]|| 2021/7/28 || 22 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[Webinar 2021 Git Part 2 – Common Git Commands|Git Part 2 – Common Git Commands]] || 2021/8/11 || 41 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[Webinar 2021 Eclipse Part2|Introduction to Eclipse Part 2 - Developing and debugging MPI code]] || 2021/9/8 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Webinar 2021 ROCm: AMD&amp;#039;s platform for GPU computing|ROCm: AMD&amp;#039;s platform for GPU computing]] || 2021/9/22 || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2021 META: running a large number of jobs conveniently|META: running a large number of jobs conveniently]]|| 2021/10/6 || 74 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[Webinar 2021 Scaling Hyperparameter Tuning with Dask-ML on Clusters|Scaling Hyperparameter Tuning with Dask-ML on Clusters]] || 2021/10/20 || 51 ||&lt;br /&gt;
|-&lt;br /&gt;
|Isaac ||[[Webinar 2021 Running machine learning example (MNIST) on multi-cores/nodes in Graham |Running machine learning example (MNIST) on multi-cores/nodes in Graham]] || 2021/11/3 || 96 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Webinar 2021 The Layered Grammar of Graphics (gglot2/plotnine)|The Layered Grammar of Graphics (gglot2/plotnine)]] || 2021/11/17 || 59 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[Webinar 2021 Eclipse Part3|Introduction to Eclipse Part 3 - Debugging MPI code]] || 2021/12/1 || 9 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 10 (Starting December 2021) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[webinar 2021 Tips for identifying when job wait times can be reduced by job submission parameter changes|Tips for identifying when job wait times can be reduced by job submission parameter changes]] || 2021/12/15 || 68 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2022 Remote Development on Clusters with VSCode|Remote Development on Clusters with VSCode]] || 2022/1/12 || 62 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergio || [[webinar 2022 From histograms to dashboards: An introduction to data visualization with Python|From histograms to dashboards: An introduction to data visualization with Python]]|| 2022/1/26 || &amp;#039;&amp;#039;&amp;#039;116&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[webinar 2022 Conquering the Scheduler|Conquering the Scheduler]] || 2022/2/9 || 49 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[webinar 2022 Gaussian16 and NBO7 on Graham and Cedar|Gaussian16 and NBO7 on Graham and Cedar]] || 2022/2/23 || 50 ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug ||[[webinar 2022 More Options for Solving Jobs with Many Tasks|More Options for Solving Jobs with Many Tasks]] || 2022/3/9 || 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[webinar 2022 Using Tensorboard to debug and profile neural network models|Using Tensorboard to debug and profile neural network models]] || 2022/3/23 || 35 ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[webinar 2022 Apptainer|Apptainer]] || 2022/4/6 || 39 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[webinar 2022 10 ways to optimize your workflow|10 ways to optimize your workflow]]|| 2022/4/20 || 39 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||  [[webinar 2022 Demystifying Web Portals|Demystifying Web Portals]] || 2022/5/4 || 29 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[webinar 2022 Profiling GPU codes with Nsight|Profiling GPU codes with Nsight]] || 2022/5/18 || 23 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[webinar 2022 Speeding up Python code with Numba|Speeding up Python code with Numba]] || 2022/6/1 || &amp;#039;&amp;#039;&amp;#039;58&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[webinar 2022 Realtime display with Gnuplot|Realtime display with Gnuplot]] || 2022/6/15 || 24 ||&lt;br /&gt;
|-&lt;br /&gt;
|Isaac ||[[webinar 2022 Running PyTorch codes with multi-GPU/nodes on national systems|Running PyTorch codes with multi-GPU/nodes on national systems]] || 2022/6/29 || 54 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[webinar 2022 Working with Jupyter on Clusters|Working with Jupyter on Clusters]] || 2022/7/13 || 56 ||&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[webinar 2022 Visualizing job properties for wait time assessment|Visualizing job properties for wait time assessment]] || 2022/7/27 || 31 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[webinar 2022 Debugging with ParaView|Debugging with ParaView]] || 2022/8/10 || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[webinar 2022 Remote Development on Clusters with VSCode - Part II|Remote Development on Clusters with VSCode - Part II]] || 2022/9/7 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[webinar 2022 Creating and Distributing Python Packages|Creating and Distributing Python Packages]] || 2022/9/21 ||  45||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[webinar 2022 Transfer Learning with Tensorflow Hub|Transfer Learning with Tensorflow Hub]] || 2022/10/5 ||  26||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[webinar 2022 Strategies For Managing Filesystem Quotas|Strategies For Managing Filesystem Quotas]]|| 2022/10/19 || 24 ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[webinar 2022 Profiling &amp;amp; Performance Tuning CPU Programs| Profiling &amp;amp; Performance Tuning CPU Programs]] || 2022/11/2 ||  19||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2022 Video Editing with KDEnLive|Video Editing with KDEnLive]]   || 2022/11/16 ||21||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[webinar 2022 Deploying a simple Express.js Web App|Deploying a simple Express.js Web App]] || 2022/11/30 ||  12||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[webinar 2022 Which GPU should I use?|Which GPU should I use?]] || 2022/12/14 || 24 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||[[colloquium 2023 Performance: current and upcoming systems|Performance: current and upcoming systems ]] || 2023/1/11 || 31 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jeff Moon ||[[colloquium 2023 How Research Data Management (RDM) Intersects with ARC and Why Should I Care?|How Research Data Management (RDM) Intersects with ARC and Why Should I Care?]] || 2023/1/25 || 49 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[colloquium 2023 An introduction to MPLAPACK, a multi-precision linear algebra library| An introduction to MPLAPACK, a multi-precision linear algebra library]] || 2023/2/8 || 15 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[colloquium 2023 Accelerated DataFrame with Dask-cuDF on multiple GPUs|Accelerated DataFrame with Dask-cuDF on multiple GPUs]] || 2023/2/22 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[colloquium 2023 plotnine: R&amp;#039;s Grammar of Graphics in Python|plotnine: R&amp;#039;s Grammar of Graphics in Python]]|| 2023/3/8 || 29 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 11 (Starting March 2023) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James || [[colloquium 2023 Before and after submitting Octave/Matlab jobs on the clusters|Before and after submitting Octave/Matlab jobs on the clusters]] || 2023/3/22 || 10 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[colloquium 2023 Running MATLAB on Alliance&amp;#039;s Clusters|Running MATLAB on Alliance&amp;#039;s Clusters]] || 2023/4/5 || 27 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[colloquium 2023 CUDA, ROCm, oneAPI – All for One or One for All?|CUDA, ROCm, oneAPI – All for One or One for All?]] || 2023/4/19 || 33 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[colloquium 2023 Modern Approaches to Profiling in Python with Scalene|Modern Approaches to Profiling in Python with Scalene]] || 2023/5/3 || 29 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[colloquium 2023 Contrastive learning|Contrastive learning]] || 2023/5/17 || &amp;#039;&amp;#039;&amp;#039;63&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul || CANCELED   || 2023/5/31 || ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || CANCELED || 2023/6/14 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || CANCELED || 2023/6/28 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[colloquium 2023 Leveraging the power of Linux on Windows with WSL|Leveraging the power of Linux on Windows with WSL]]|| 2023/7/12 || 40 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||[[colloquium 2023 DIY job monitoring, from cache misses to CO2 footprint|DIY job monitoring, from cache misses to CO2 footprint]] || 2023/7/26 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[colloquium 2023 Automating scientific workflows with AiiDA|Automating scientific workflows with AiiDA]] || 2023/8/9 || 33 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || CANCELED || 2023/8/23 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul || CANCELED || 2023/9/6 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Colloquium 2023 Data Wrangling with Tidyverse|Data Wrangling with Tidyverse]]|| 2023/9/20 || 27 ||&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Colloquium 2023 Exploring job wait times on Alliance compute clusters: a holistic view| Exploring job wait times on Alliance compute clusters: a holistic view]] || 2023/10/4 || 27 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Colloquium 2023 p2rng – A C++ Parallel Random Number Generator Library for the Masses|p2rng – A C++ Parallel Random Number Generator Library for the Masses]] || 2023/10/18 || 7 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Colloquium 2023 Generalized End to End Python and Neuroscience Workflows on a Compute Cluster| Generalized End to End Python and Neuroscience Workflows on a Compute Cluster]] || 2023/11/1 || 17 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[Colloquium 2023 Squeeze more juice out of a single GPU in deep learning| Squeeze more juice out of a single GPU in deep learning]] || 2023/11/15 || 54 ||&lt;br /&gt;
|-&lt;br /&gt;
|Collin ||[[Colloquium 2023 Skorch: Training PyTorch models with scikit-learn|Skorch: Training PyTorch models with scikit-learn]] || 2023/11/29 || 34 ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || CANCELED || 2023/12/13 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Colloquium 2024 False Sharing and Contention in Parallel Codes|False Sharing and Contention in Parallel Codes]] || 2024/1/17 || 17 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Colloquium 2024 Introduction to GPU programming with OpenMP|Introduction to GPU programming with OpenMP]]|| 2024/1/31 || 30 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[Colloquium 2024 MySQL Part 3: Constraints and Joins|MySQL Part 3: Constraints and Joins]] || 2024/2/14 || 11 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[Colloquium 2024 Debugging your code with DDT|Debugging your code with DDT]] || 2024/2/28 || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||[[Colloquium 2024 Make: obsolete or elegant?|Make: obsolete or elegant?]] || 2024/3/13 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui || [[Colloquium 2024 Accelerating Graph Analysis on GPUs|Accelerating Graph Analysis on GPUs]]|| 2024/3/27 || 25 ||&lt;br /&gt;
|-&lt;br /&gt;
|Nastaran || [[Colloquium 2024 Accelerating data analytics with RAPIDS cuDF|Accelerating data analytics with RAPIDS cuDF]]|| 2024/4/10 || 17 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[Colloquium 2024 Data Wrangling with Tidyverse (part 2)|Data Wrangling with Tidyverse (part 2)]] || 2024/4/24 || 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Colloquium 2024 Compute Ontario Summer School 2024|Compute Ontario Summer School 2024]] || 2024/5/8 || 25 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 12 (Starting July 2024) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Colloquium 2024 Exploring Compute Usage from User Facing Portals on the National Clusters|Exploring Compute Usage from User Facing Portals on the National Clusters]] || 2024/7/17 || 13 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Colloquium 2024 The Emergence of WebAssembly (Wasm) in Scientific Computing|The Emergence of WebAssembly (Wasm) in Scientific Computing]] || 2024/8/7 || 12 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Colloquium 2024 Diagnosing Wasted Resources from User Facing Portals on the National Clusters|Diagnosing Wasted Resources from User Facing Portals on the National Clusters]] || 2024/8/14 || 21 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Colloquium 2024 Using machine learning to predict rare events|Using machine learning to predict rare events]]|| 2024/8/28 || &amp;#039;&amp;#039;&amp;#039;51&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|Collin ||[[Colloquium 2024 Debugging and Optimization of PyTorch Models|Debugging and Optimization of PyTorch Models]] || 2024/9/11 || 42 ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Colloquium 2024 Multidimensional Arrays in C++|Multidimensional Arrays in C++]] || 2024/9/25 || 13 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||[[Colloquium 2024 Introspection for Jobs: in-job monitoring of performance|Introspection for Jobs: in-job monitoring of performance]] || 2024/10/9 || 18 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Colloquium 2024 Parallel Programming: MPI I/O Basics|Parallel Programming: MPI I/O Basics]] || 2024/10/23 || 12 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[Colloquium 2024 Git Part 3: Managing Workflows|Git Part 3: Managing Workflows]] || 2024/11/6 || 10 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[Colloquium 2024 Survival guide for the upcoming GPU upgrades (more total power, but fewer GPUs)|Survival guide for the upcoming GPU upgrades (more total power, but fewer GPUs)]]  || 2024/11/20 || 30 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[Colloquium 2024 Data Wrangling with Tidyverse (part 3)|Data Wrangling with Tidyverse (part 3)]] || 2024/12/4 || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
|Nast ||[[Colloquium 2024 Unlocking the Power of Comet: Streamlining Machine Learning Experimentation|Unlocking the Power of Comet: Streamlining Machine Learning Experimentation]] || 2024/12/18 || 9 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||Canceled || 2025/1/15 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[Colloquium 2025 Converting Python code with NumPy to run on the GPU|Converting Python code with NumPy to run on the GPU]] || 2025/1/29 || 30 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Colloquium 2025 High-Performance Data Science with Modern C++: Xeus-Cling and G3P|High-Performance Data Science with Modern C++: Xeus-Cling and G3P]] || 2025/2/12 || 9 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[Colloquium 2025 Reduction of errors, or the pursuit of correctness|Reduction of errors, or the pursuit of correctness]] || 2025/2/26 || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Colloquium 2025 Preview of the &amp;quot;Job Scheduling and Monitoring&amp;quot; self-paced course|Preview of the &amp;quot;Job Scheduling and Monitoring&amp;quot; self-paced course]] || 2025/3/12 || 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Colloquium 2025 Revisiting Cython: Is it still effective?|Revisiting Cython: Is it still effective?]] || 2025/3/26 || 14 ||&lt;br /&gt;
|-&lt;br /&gt;
|Collin ||[[Colloquium 2025 Too Big to Train: Large model training in PyTorch with Fully Sharded Data Parallel|Too Big to Train: Large model training in PyTorch with Fully Sharded Data Parallel]] || 2025/4/9 || 23 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Colloquium 2025 Parallel Programming: MPI I/O Advanced Features|Parallel Programming: MPI I/O Advanced Features]] || 2025/4/23 || 10 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[Colloquium 2025 Checkpoints: why, when and how|Checkpoints: why, when and how]] || 2025/5/7 || 14 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||CANCELED || 2025/5/21 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Webinar 2025 Practical Multidimensional Arrays and Linear Algebra in C++|Practical Multidimensional Arrays and Linear Algebra in C++]] || 2025/7/2 || 10 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[Webinar 2025 Effortless Parallelism: Leveraging Julia Threads for High-Performance Scientific Computing|Effortless Parallelism: Leveraging Julia Threads for High-Performance Scientific Computing]] || 2025/7/16 || 18 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[Webinar 2025 Migrating to the upgraded national systems|Migrating to the upgraded national systems]] || 2025/7/30 || 143 ||&lt;br /&gt;
|-&lt;br /&gt;
|Nast ||[[Webinar 2025 Interactive Interfaces for Machine Learning Using Gradio|Interactive Interfaces for Machine Learning Using Gradio]]  || 2025/8/13 || 21 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[Webinar 2025 The Nibi&amp;#039;s web interface|The Nibi&amp;#039;s web interface]] || 2025/8/27 || 49 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[Webinar 2025 Installing your software packages with Spack|Installing your software packages with Spack]] || 2025/9/10 || 24 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[Webinar 2025 Running JupyterLab on Nibi|Running JupyterLab on Nibi]] || 2025/9/24 || 34 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[Webinar 2025 Running Linux on Windows and taking it with you anywhere|Running Linux on Windows and taking it with you anywhere]] || 2025/10/8 || 17 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 13 (Starting October 2025) ==&lt;br /&gt;
Entries with the asterisk next to the name are delivered as a CO colloquium. The entries without the asterisk will be delivered as a GIS, shifted by one hour (1-2pm).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Webinar 2025 What exactly is a Resource Allocation Competition (RAC) Compute Award?|What exactly is a Resource Allocation Competition (RAC) Compute Award?]] || 2025/10/22 || 10 || &lt;br /&gt;
|-&lt;br /&gt;
|Doug ||[[Webinar 2025 Running Engineering Related Packages Interactively on Nibi|Running Engineering Related Packages Interactively on Nibi]] || 2025/11/5 || 9 || &lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Webinar 2025 High-Performance Data Science with Modern C++: Ranx|High-Performance Data Science with Modern C++: Ranx]] || 2025/11/19 || 2 || &lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Webinar 2025 Serial Farms: Package options and when to switch to farming|Serial Farms: Package options and when to switch to farming]] || 2025/12/3 || 7 || &lt;br /&gt;
|-&lt;br /&gt;
|Weiguang* ||[[Webinar 2025 Illuminating the Black Box: Understanding AI Models with Integrated Gradients|Illuminating the Black Box: Understanding AI Models with Integrated Gradients]] || 2025/12/17 || 21 || &lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Webinar 2026 Floating-point Numbers Aren&amp;#039;t Mathematical Real Numbers|Floating-point Numbers Aren&amp;#039;t Mathematical Real Numbers]] || 2026/1/14 || 23 || &lt;br /&gt;
|-&lt;br /&gt;
|Collin* ||[[Webinar 2026 Too Big to Train 2: PyTorch&amp;#039;s Upgraded Interface for Fully Sharded Data Parallel|Too Big to Train 2: PyTorch&amp;#039;s Upgraded Interface for Fully Sharded Data Parallel]] || 2026/1/28 || 6 || &lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[Webinar 2026 Running Gaussian16 and NBO7 effectively on Nibi and Fir: Performance Issues|Running Gaussian16 and NBO7 effectively on Nibi and Fir: Performance Issues]]|| 2026/2/11 || 15 || &lt;br /&gt;
|-&lt;br /&gt;
|Ed* || [[Webinar 2026 Launching a Virtual Machine Using Nibi OpenStack Cloud|Launching a Virtual Machine Using Nibi OpenStack Cloud]]|| 2026/2/25 || 7 || &lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[Webinar 2026 Know your cluster: ways that national systems vary in performance|Know your cluster: ways that national systems vary in performance]]|| 2026/3/11 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Jinhui* ||[[Getting started with MLflow for machine learning and AI development|Getting started with MLflow for machine learning and AI development]] || 2026/3/25 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Sergey || || 2026/4/8 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Tyson* || || 2026/4/22 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Baolai || || 2026/5/6 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Pawel || || 2026/7/15 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Nast || || 2026/7/29 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Doug || || 2026/8/12 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|James || || 2026/8/26 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Tyler || || 2026/9/9 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Armin || || 2026/9/23 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Paul || || 2026/10/7 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || || 2026/10/21 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Ed || || 2026/11/4 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Collin || || 2026/11/18 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Mark || || 2026/12/2 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || || 2026/12/16 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Baolai || || 2027/1/13 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Sergey || || 2027/1/27 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Jinhui || || 2027/2/10 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Tyson || || 2027/2/24 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Pawel || || 2027/3/10 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Nast || || 2027/3/24 ||  || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Reporting]]&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=General_Interest_Seminars&amp;diff=1205</id>
		<title>General Interest Seminars</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=General_Interest_Seminars&amp;diff=1205"/>
		<updated>2026-02-27T13:58:00Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* Round 13 (Starting October 2025) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page organizing/archiving general interest seminars (became a part of Compute Ontario Colloquia weekly series starting January 2023).&lt;br /&gt;
&lt;br /&gt;
== Round 1 (Starting May 2011) ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Dates !! Att&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || Serial farming and Monte Carlo for SHARCNET || 2011/05/18 || 15&lt;br /&gt;
|-&lt;br /&gt;
|David || Automating Tasks with bash || 2011/06/08 || 8&lt;br /&gt;
|-&lt;br /&gt;
|HughM || [[Debugging at SHARCNET]] || 2011/06/29 || 11&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || Introduction to Linux || 2011/07/20 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || Linear Algebra on GPU || 2011/09/21 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[MATLAB Parallel Computing Toolbox on SHARCNET]]|| 2011/10/12 || 7&lt;br /&gt;
|-&lt;br /&gt;
|Alex || Visualizing Data with Paraview || 2011/11/02 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || Managing your files effectively at SHARCNET with SVN || 2011/11/23 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || Introduction to Valgrind || 2012/03/14 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Nick ||Optimizing Tools for Development and Execution of Programs || 2012/04/04 || 14&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 2 (Starting Sept. 2012) ==&lt;br /&gt;
&lt;br /&gt;
Note: henceforth, there is expected to be a General Interest Seminar every month, on the third Wednesday at noon.  Please be responsible about this and plan for your month.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Month !! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
| SEP || Pawel || Why Would I Use GPUs? || 2012/09/26 || 12&lt;br /&gt;
|-&lt;br /&gt;
| OCT || Tyson  || Introduction to Valgrind || 2012/10/17 || 5&lt;br /&gt;
|-&lt;br /&gt;
| NOV || HughM || [[New User Seminar - Part 2]] || 2012/11/21 || 15&lt;br /&gt;
|-&lt;br /&gt;
| DEC || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| JAN || Isaac || Shell scripting || 2013/01/23 || 18&lt;br /&gt;
|-&lt;br /&gt;
| FEB || Jemmy || SHARCNET Software Support Updates || 2013/02/27 || 7&lt;br /&gt;
|-&lt;br /&gt;
| MAY || Sergey || Quick-n-dirty ways to run your serial code faster, in parallel || 2013/05/01 || 15&lt;br /&gt;
|-&lt;br /&gt;
| JUNE || David || Parallel programming patterns || 2013/06/ || &lt;br /&gt;
|-&lt;br /&gt;
| JUL || Alex || || 2013/07/ || &lt;br /&gt;
|-&lt;br /&gt;
| AUG || Baolai || || 2013/08/ || &lt;br /&gt;
|-&lt;br /&gt;
| SEP || Nick || || 2013/09/ ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 3 (Starting Sept. 2013) ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Month !! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
| NOV || Isaac || [[Introduction to Linux]] || 2013/11/20 || 32&lt;br /&gt;
|-&lt;br /&gt;
| DEC || Pawel || [[Why Would I Use GPUs?]] || 2013/12/18 || 22&lt;br /&gt;
|-&lt;br /&gt;
| JAN || Alex || [[Using parallel I/O in SHARCNET]] || 2014/01/15 || 10&lt;br /&gt;
|-&lt;br /&gt;
| FEB || Sergey || [[Profiling MPI codes with Allinea&amp;#039;s MAP]] || 2014/02/19 || 10&lt;br /&gt;
|-&lt;br /&gt;
| MAR || Baolai || [[Managing your files effectively at SHARCNET with SVN]] || 2014/03/19 || 8&lt;br /&gt;
|-&lt;br /&gt;
| APR || Tyson  || [[My code doesn&amp;#039;t crash -- why should I still use Valgrind?]] || 2014/04/16  || 17&lt;br /&gt;
|-&lt;br /&gt;
| MAY || Jemmy || [[Running MATLAB in SHARCNET]] || 2014/05/21 || 34&lt;br /&gt;
|-&lt;br /&gt;
| JUNE || Hugh || [[Webinar 2014 Debugging at SHARCNET|Debugging at SHARCNET]] || 2014/06/18 || 20&lt;br /&gt;
|-&lt;br /&gt;
| JUL || James || [[Webinar 2014 Transitioning from Matlab to Octave|Transitioning from Matlab to Octave]] || 2014/07/16 || ?&lt;br /&gt;
|-&lt;br /&gt;
| AUG ||  || || 2014/08/20 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Round 4 (Starting Sept. 2014) ==&lt;br /&gt;
&lt;br /&gt;
Note: with the new (biweekly) schedule, full time HPTC will have to give 2 seminars per year. &amp;#039;&amp;#039;&amp;#039;Please make at least one of these two seminars a new one&amp;#039;&amp;#039;&amp;#039; (the other one can be an old recycled one).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att !! Reg&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[webinar 2014 Advanced Message Passing in MPI: Using MPI Datatypes with Opaque C++ Types|Advanced Message Passing in MPI: Using MPI Datatypes with Opaque C++ Types]] || 2014/09/17 || 7 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[webinar 2014 An Introduction to Java Threads|An Introduction to Java Threads]] || 2014/10/01 || 9 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[webinar 2014 CUDA Basics and how to in SHARCNET|CUDA Basics and how to]] || 2014/10/15 || 20 || 31&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[webinar 2014 Is the Intel Xeon Phi right for me?|Is the Intel Xeon Phi right for me?]] || 2014/10/29 || 11 || 15&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Linear Algebra on GPU]] || 2014/11/12 || 11 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2014 The SHARCNET Desktop|The SHARCNET Desktop]] || 2014/11/26 || 17 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Weiguan || [[webinar 2014 Programming with VTK - a high-level visualization library |Programming with VTK - a high-level visualization library]] || 2014/12/10 || 18 || 14&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2015 SHARCNet file management|SHARCNet file management]] || 2015/01/07 || 15 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Hugh || [[webinar 2015 New User Seminar - Part 2|New User Seminar - Part 2]] || 2015/01/21 || 10 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[webinar 2015 Deep Learning on SHARCNET: From CPU to GPU cluster|Deep Learning on SHARCNET: From CPU to GPU cluster]] || 2015/02/04 || 40 || 22&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2015 Serial and parallel farming from A to Z|Serial and parallel farming from A to Z]] || 2015/02/18 || 30 || 23&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[The Relevance of OpenCL to HPC]] || 2015/03/04 || 15+20 live || 12&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[webinar 2015 Programming, best practices| Programming, best practices]] || 2015/03/18 || 23 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2015 Numerical libraries for scientific computing|A brief look at numerical libraries: The tools you can use]] || 2015/04/01 || 8 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[webinar 2015 An Update on MATLAB at SHARCNET| An Update on MATLAB at SHARCNET]] || 2015/04/15 || 7 || 13&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2015 High Performance Computing with Python| High Performance Computing with Python]] || 2015/04/29 || 39 || 29&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2015 Exploring a new approach to package management| Exploring a new approach to package management]] || 2015/05/14 || 6 || 3&lt;br /&gt;
|-&lt;br /&gt;
| || [[]] || 2015/05/27 || canceled&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[webinar 2015 Get the most out of SharcNET|Get the most out of SharcNET]] || 2015/06/10 || 25 || 23&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2015 Programming with Wt - A C++ library for developing stateful and highly interactive web applications|Programming with Wt - A C++ library for developing stateful and highly interactive web applications]] || 2015/06/24 || 7 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[Hybrid MPI and OpenMP Parallel Programming]] || 2015/07/08 || 17 || 13&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2015 Debugging and profiling of MPI programs| Debugging and profiling of MPI programs]] [[]] || 2015/07/22 || 15 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Baolai|| [[webinar 2015 Parallel programming without MPI - Using coarrays in Fortran|Parallel programming without MPI - Using coarrays in Fortran]] || 2015/08/05 || 10 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Isaac|| [[webinar 2015 Introduction to Parallel I/O| Introduction to Parallel I/O]] || 2015/08/19 || 18 || 16&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 5 (Starting Sept. 2015) ==&lt;br /&gt;
&lt;br /&gt;
Note: with the new (biweekly) schedule, full time HPTC will have to give 2 seminars per year. &amp;#039;&amp;#039;&amp;#039;Please make at least one of these two seminars a new one&amp;#039;&amp;#039;&amp;#039; (the other one can be an old recycled one).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att !! Reg&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[webinar 2015 cientific Visualization with ParaView| Scientific Visualization with ParaView]] || 2015/9/16 || 23 || 15&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2015 Profiling function vectorization in Matlab/Octave | Profiling function vectorization in Matlab/Octave ]] || 2015/9/30 || 11 || 4&lt;br /&gt;
|-&lt;br /&gt;
|Fei ||  [[webinar 2015 CUDA Profiling and Tuning| CUDA Profiling and Tuning]]  || 2015/10/14 || 18 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Hugh || [[webinar 2015 Fundamentals of working at the command line at SHARCNET| Fundamentals of working at the command line at SHARCNET]] || 2015/10/28 || 35 || 16&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[webinar 2015 Introduction to MPI - Part I| Introduction to MPI - Part I]]|| 2015/11/11 || 20 || 25&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2015 Introduction to MPI - Part II| Introduction to MPI - Part II]]|| 2015/11/25 || 10 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[webinar 2015 Parallel Design Patterns| Parallel Design Patterns]] || 2015/12/9 || 10 || 15&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2016 Automating Software Build Process using CMake| Automating Software Build Process using CMake]] || 2016/1/6 || 16 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[webinar 2016 Introduction to OpenMP Parallel Programming| Introduction to OpenMP Parallel Programming]]|| 2016/1/20 || 5 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2016 UNIX shell expansion: proper use and advanced forms| UNIX shell expansion: proper use and advanced forms]] || 2016/2/3 || 17 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2016 Parallel and high performance computing with R| Parallel and high performance computing with R]] || 2016/2/17 || 24 || 21&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[webinar 2016 Raphaël - a vector graphics library for web development|Raphaël - a vector graphics library for web development]] || 2016/3/2 || 6 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2016 Debugging OpenMP programs| Debugging OpenMP programs]] || 2016/3/16 || 1 || 3&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[webinar 2016 How to get started with OpenFOAM at SHARCNET|How to get started with OpenFOAM at SHARCNET]] || 2016/3/30 || 14 || 7&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2016 Quick tips for getting the most out of SHARCNET|Quick tips for getting the most out of SHARCNET]] || 2016/4/13 || 17 || 13&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[webinar 2016 Deep Learning on SHARCNET: Tools you can use|Deep Learning on SHARCNET: Tools you can use]] || 2016/4/27 || 38 || 23&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2016 Git and SHARCNET|Git and SHARCNET ]] || 2016/5/11 || 14 || 10&lt;br /&gt;
|-&lt;br /&gt;
|Doug || Canceled || 2016/5/25 || &lt;br /&gt;
|-&lt;br /&gt;
|Jose || [[webinar 2016 Introduction to Apache Spark on SHARCNET|Introduction to Apache Spark on SHARCNET]] || 2016/6/8 || 15 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Hugh || Canceled || 2016/6/22 || &lt;br /&gt;
|-&lt;br /&gt;
|Ed || Canceled || 2016/7/6 || &lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[Hybrid MPI and OpenMP Parallel Programming]] || 2016/7/20 || 7 || 10&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2016 Introduction to MPI - Part III|Introduction to MPI - Part III]] || 2016/8/3 || 0 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[webinar 2016 Introduction to Jupyter| Introduction to Jupyter]] || 2016/8/17 || 14 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2016 Automating Software Build Process using CMake| Automating Software Build Process using CMake]] || 2016/9/14 || 6 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2016 Introduction to The Shell|Introduction to The Unix Shell - Automating Your Work]] || 2016/9/28 || 23 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[webinar 2016 What Happened to My Job?  Cluster Scheduling In Detail|What Happened to My Job?  Cluster Scheduling In Detail]] || 2016/10/12 || 17 || 11&lt;br /&gt;
|-&lt;br /&gt;
|Isaac ||[[webinar 2016 Introduction To Python|Introduction To Python: simple practise of data analysis]] || 2016/10/26 || 24 || 30&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[webinar 2016 Debugging CUDA programs| Debugging CUDA programs]] || 2016/11/9 || 3 || 1&lt;br /&gt;
|-&lt;br /&gt;
|Doug || Canceled || 2016/11/23 || 0 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[webinar 2016 Defensive Programming : Best Practices|Defensive Programming : Best Practices]] || 2016/12/7 || 8 || 15&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 6 (Starting January 2017) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att !! Reg&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[webinar 2017 Introduction to ParaView|Introduction to ParaView]] || 2017/1/4 || 12 || 13&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2017 Navigating the research computing resource renewals coming in 2017|Navigating the research computing resource renewals coming in 2017]] || 2017/1/18 || 11 || 10&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[webinar 2017 Deep Learning on SHARCNET: Best Practices |Deep Learning on SHARCNET: Best Practices]] || 2017/2/1 || 23 || 24&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2017 Git and SHARCNET (part 2)|Git and SHARCNET (part 2)]]|| 2017/2/15 || 5 || 13&lt;br /&gt;
|-&lt;br /&gt;
|Jose || [[webinar 2017 Machine Learning with Spark at SHARCNET|Machine Learning with Spark at SHARCNET ]]  || 2017/3/1 || 12 || 28&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2017 High Performance Computing with Python|High Performance Computing with Python]]|| 2017/3/15 || 27 || 37&lt;br /&gt;
|-&lt;br /&gt;
|Paul || CANCELED (speaker not ready) || 2017/3/29 || || &lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2017 Modern Fortran: Concurrency |Modern Fortran: Concurrency and Parallelism]] || 2017/4/12 || 18 || 22&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||  [[webinar 2017 Automating Software Build Process using CMake – Part II|Automating Software Build Process using CMake – Part II]] || 2017/4/26 || 2 || 1&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[OpenMP 4.x: New features and Protocols]] || 2017/5/10 || 9 || 3&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[Webinar 2017 How to compile/run OpenFOAM in SHARCNET |How to compile/run OpenFOAM in SHARCNET]] || 2017/5/24 || 10 || 7&lt;br /&gt;
|-&lt;br /&gt;
|Ed || CANCELED (one attendee)|| 2017/6/7 || 1 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2017 What&amp;#039;s new and exciting about Graham&amp;#039;s GPUs| What&amp;#039;s new and exciting about Graham&amp;#039;s GPUs]] || 2017/6/21 || 27 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Webinar 2017 Train models to recognize hand-written digits using Tensorflow|Train models to recognize hand-written digits using Tensorflow]] || 2017/7/5 || 24 || 23&lt;br /&gt;
|-&lt;br /&gt;
|James || [[Webinar 2017 How jobs are scheduled to run on Graham and Cedar|How jobs are scheduled to run on Graham and Cedar]] || 2017/7/19 || 55 || 34&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2017 Intel MPI Library Cluster Edition on Graham|Intel MPI Library Cluster Edition on Graham]] || 2017/8/2 || 6 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Webinar 2017 Packaging with Nix|Packaging with Nix]] || 2017/8/16 || 6 || 4&lt;br /&gt;
|-&lt;br /&gt;
|Kamil || [[Webinar 2017 Partitions and scheduling, running jobs effectively on Graham and Cedar | Partitions and scheduling, running jobs effectively on Graham and Cedar]] || 2017/9/13 || 34 || 24&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[Webinar 2017 Training Neural Networks with hundreds of GPUs on Graham and Cedar | Training Neural Networks with hundreds of GPUs on Graham and Cedar]] || 2017/9/20 || 46 || 36&lt;br /&gt;
|-&lt;br /&gt;
|Mohamed|| [[Webinar 2017 Introduction to SHARCNET Cloud|Introduction to SHARCNET Cloud]] || 2017/9/27 || 19 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Webinar 2017 Linear Algebra on GPU| Linear Algebra on GPU]] || 2017/10/11 || 20 || 16&lt;br /&gt;
|-&lt;br /&gt;
|Jose || [[Webinar 2017 Machine Learning using Jupyter Notebooks on Graham|Machine Learning using Jupyter Notebooks on Graham]]  || 2017/10/25 || 36  || 34&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[Webinar 2017 Introduction to LINUX/SHELL programming in SHARCNET|Introduction to LINUX/SHELL programming in SHARCNET]] || 2017/11/8 || 31 || 33&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2017 Serial farming on Graham|Serial farming on Graham]] || 2017/11/22 || 22 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[Webinar 2017 Introduction to Eclipse for debugging - Part I|Introduction to Eclipse for debugging - Part I]] || 2017/12/6 || 10 || 4&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2018 Intro to Intel Performance Tools|Intro to Intel Performance Tools]] || 2018/1/17 || 8 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[Webinar 2018 Deploying a Full Stack Web Solution on the Cloud for Cluster Access|Deploying a Full Stack Web Solution on the Cloud for Cluster Access]] || 2018/1/31 || 22 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[Webinar 2018 Singularity|Singularity]] || 2018/2/14 || 13 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[Webinar 2018 Visual Studio Code - Your Next Coding Companion for Advanced Research Computing|Visual Studio Code - Your Next Coding Companion for Advanced Research Computing]] || 2018/2/28 || 14 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[Webinar 2018 Using SSH for Good, not Evil|Using SSH for Good, not Evil]] || 2018/3/14 || 17 || 16&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 7 (Starting March 2018) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att !! Reg&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Using Computational Chemistry software effectively on Graham]] || 2018/3/28 || 14 || 4&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2018 Improving your Python programs with NumPy and SciPy|Improving your Python programs with NumPy and SciPy]] || 2018/4/11 || 24 || 22&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2018 All about job wait times in the Graham queue|All about job wait times in the Graham queue ]] || 2018/4/25 || 31 || 22&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2018 Summer School preview|Summer School preview]] || 2018/5/9 || 18 || 14&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || CANCELED || 2018/5/23 || 0 || &lt;br /&gt;
|-&lt;br /&gt;
|Jose || CANCELED || 2018/6/6 || 0 || &lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[webinar 2018 Fundamentals of working at the command line at Graham|Fundamentals of working at the command line at Graham]] || 2018/6/20 || 30 || 28&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2018 Debugging on Graham with DDT|Debugging on Graham with DDT]] || 2018/7/4 || 6 || 7&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||  [[webinar 2018 Mixed Source C, C++, and Fortran Programs|Mixed Source C, C++, and Fortran Programs]] || 2018/7/18 || 18 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||  [[webinar 2018 Introduction to MySQL on Graham|Introduction to MySQL on Graham]]|| 2018/8/1 || 15 || 14&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||  [[webinar 2018 Harnessing the Power of Heterogeneous Computing using Boost.Compute + OpenCL|Harnessing the Power of Heterogeneous Computing using Boost.Compute + OpenCL ]] || 2018/8/15 || 7 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2018 Concurrent File I/O by Multiple Processes|Concurrent File I/O by Multiple Processes]] || 2018/9/12 || 13 || 7&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[webinar 2018 The Benefits of GLOST for Many Jobs|The Benefits of GLOST for Many Jobs]] || 2018/9/26 || 9 || 9&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2018 Understand (and potentially reduce) job wait times by examining scheduler configuration, load in the queue and account usage|Understand (and potentially reduce) job wait times by examining scheduler configuration, load in the queue and account usage]] || 2018/10/10 || 23 || 18&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[webinar 2018 Stock Prediction Using Recurrent Neural Network|Stock Prediction Using Recurrent Neural Network]] || 2018/10/24 || 33 || 29&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[webinar 2018 Using MATLAB effectively on Graham and Cedar|Using MATLAB effectively on Graham and Cedar]] || 2018/11/7 || 33 || -&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[webinar 2018 MySQL Part 2:  Relations and Joins|MySQL Part 2:  Relations and Joins]] || 2018/11/21 || 5 || -&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[webinar 2018 Using Pseudorandom Number Sequences in C++|Using Pseudorandom Number Sequences in C++]]  || 2018/12/5 || 7 || -&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2018 Code profiling on Graham|Code profiling on Graham]]|| 2018/12/19 || 26 || -&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2018 The Monad Understanding Hurdle|The Monad Understanding Hurdle]]|| 2019/1/16 || 9 || -&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[webinar 2018 Best practices for newbies on Graham|Best practices for newbies on Graham]]|| 2019/1/30 || 35 || -&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[webinar 2019 What Happened To My Job?|What Happened To My Job? ]]|| 2019/2/13 || 15 || &lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2019 Dipping into C++17 Parallel Algorithms with Intel&amp;#039;s Parallel STL|Dipping into C++17 Parallel Algorithms with Intel&amp;#039;s Parallel STL]] || 2019/2/27 || 14 || &lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[webinar 2019 Exploring the Use of Application Software on Grahams Visualization Machine|Exploring the Use of Application Software on Grahams Visualization Machine]] || 2019/3/13 || 35 || &lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2019 Introduction to parallel programming with MPI and Python|Introduction to parallel programming with MPI and Python]] || 2019/3/27 || 25 || - &lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2019 Exploring Octave package dataframe|Exploring Octave package dataframe]] || 2019/4/10 || 2 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 8 (Starting April 2019) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James || [[Webinar 2019 PRE and POST production on Graham|PRE and POST production on Graham]] || 2019/4/24 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Webinar 2019 Pull your own data into ParaView|Pull your own data into ParaView]] || 2019/5/8 || 31&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[The New Development of OpenMP]] || 2019/5/22 || 22&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[Webinar 2019 Julia - A first perspective|Julia - A first perspective]] || 2019/6/5 || 45&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[Webinar 2019 Using C++&amp;#039;s Parallel Algorithms|Using C++&amp;#039;s Parallel Algorithms]]|| 2019/6/19 || 14&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || CANCELED || 2019/7/3 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Webinar 2019 The Monad Understanding Hurdle (Part 2)|The Monad Understanding Hurdle (Part 2)]] || 2019/7/17 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[Webinar 2019 Fundamentals of working at the command line at Graham| Fundamentals of working at the command line at Graham ]] || 2019/7/31 || 54&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[Webinar 2019 Is It Possible to Use C++ Parallel Algorithms in a Distributed Memory Setup (i.e. MPI)?|Is It Possible to Use C++ Parallel Algorithms in a Distributed Memory Setup (i.e. MPI)?]] || 2019/8/14 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Doug || CANCELED || 2019/9/11 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[Webinar 2019 Using reduced numerical precision on Pascal, Volta and Turing GPUs|Using reduced numerical precision on Pascal, Volta and Turing GPUs]] || 2019/9/25 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui || [[Webinar 2019 Introduction to scalable computing with Dask in Python| Introduction to scalable computing with Dask in Python ]] || 2019/10/9 || 40&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2019 Leveraging Compiler Optimization Reports|Leveraging Compiler Optimization Reports ]] || 2019/10/23 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Webinar 2019 Using Multiple GPUs in Tensorflow|Using Multiple GPUs in Tensorflow]] || 2019/11/6 || 18&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[Webinar 2019 Julia: A second perspective|Julia: A second perspective]]  || 2019/11/20 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[Webinar 2019 Docker|Docker]]|| 2019/12/4 || 27&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Webinar 2019 Introduction to HPC Programming Language Chapel: Base Language Overview |Introduction to HPC Programming Language Chapel: Base Language Overview ]] || 2019/12/18 || 10&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Webinar 2019 The Monad Understanding Hurdle (Part 3)|The Monad Understanding Hurdle (Part 3)]] || 2020/1/15 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[Webinar 2019 Singularity 3.5|Singularity 3.5]]|| 2020/1/29 || 27&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2019 New User Seminar, Part II|New User Seminar, Part II]] || 2020/2/12 || 23&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[Webinar_2020_how_to_run_AI_programs_in_Graham| How to Run AI programs in Graham]]|| 2020/2/26 || 44&lt;br /&gt;
|-&lt;br /&gt;
|Baolai|| [[Julia: A third perspective - parallel computing explained]] || 2020/3/11 || 18&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[Webinar_2020_Introduction_to_scalable_computing_with_Dask_in_Python_(Continued)|Introduction to scalable computing with Dask in Python (Continued)]] || 2020/3/25 || 15&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||  [[Webinar 2020 Using SSHFS to make CC storage more accessible|Using SSHFS to make CC storage more accessible]] || 2020/4/8 || 21&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Webinar 2020 Collaborative Groups in CUDA|Collaborative Groups in CUDA]] || 2020/4/22 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Doug||CANCELED || 2020/5/6 || &lt;br /&gt;
|-&lt;br /&gt;
|Armin ||CANCELED || 2020/5/20 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 9 (Starting July 2020) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Webinar 2020 Cython: A First Look|Cython: A First Look]] || 2020/7/8 || 60&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Webinar 2020 Visualizing job usage on the Compute Canada systems with the ViewClust Python package|Visualizing job usage on the Compute Canada systems with the ViewClust Python package]] || 2020/7/15 || 33&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Webinar 2020 How to Use C++ Parallel Algorithms in a Distributed Memory Setup (i.e. MPI)|How to Use C++ Parallel Algorithms in a Distributed Memory Setup (i.e. MPI)]] || 2020/7/29 || 15 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergio ||[[Webinar 2020 Bioinformatics in the terminal: Tips and tricks to make your life easier|Bioinformatics in the terminal: Tips and tricks to make your life easier]] || 2020/8/12 || 47 ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2020 Options for Solving Jobs with Many Tasks|Options for Solving Jobs with Many Tasks]]|| 2020/9/9 || 13 || 30&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[Webinar 2020 Is my neural network too big to fit into GPU?|Is my neural network too big to fit into GPU?]] || 2020/9/23 || 59 || 93&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Webinar 2020 Introduction to HPC Programming Language Chapel: Parallel Approaches|Introduction to HPC Programming Language Chapel: Parallel Approaches ]]|| 2020/10/7 || 7 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[Webinar 2020 Introduction to Git|Introduction to Git]] || 2020/10/21 || 50 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[Webinar 2020 Julia - Parallel computing revisited|Julia: Parallel computing revisited]] || 2020/11/4 || 8 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[Webinar 2020 NixOS: The second largest and the most up-to-date Linux distribution|NixOS: The second largest and the most up-to-date Linux distribution]] || 2020/11/18 || 18 ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Webinar 2020 Practical Singularity|Practical Singularity]] || 2020/12/2 || 28 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[Webinar 2020 Offload Analytics Workload in Python to GPUs with RAPIDS|Offload Analytics Workload in Python to GPUs with RAPIDS]]  || 2020/12/16 || 46 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[Webinar 2021 Programming GPUs with Fortran|Programming GPUs with Fortran]] || 2021/1/13 || 25 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[Webinar 2021 Computing in arbitrary precision|Computing in arbitrary precision]] || 2021/1/27 || 13 ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Isaac&amp;#039;&amp;#039;&amp;#039; || [[Webinar 2021 Some ML practices running GPUs in Compute Canada system|Using multiple GPUs for Machine Learning]] || 2021/2/10 || &amp;#039;&amp;#039;&amp;#039;63&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|James || [[Webinar 2021 Generating interactive visualizations with Plotly on Graham|Generating interactive visualizations with Plotly on Graham]]|| 2021/2/24 || 47 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Webinar 2021 Scalable Memory Allocation for Parallel Algorithms| Scalable Memory Allocation for Parallel Algorithms]] || &amp;#039;&amp;#039;&amp;#039;2021/3/17&amp;#039;&amp;#039;&amp;#039; || 7 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergio ||[[Webinar 2021 FauxConda: ways to use Conda without conda|FauxConda: ways to use Conda without conda]] || 2021/3/24 || 27 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[An Update to ADF/AMS software on Graham]]|| 2021/4/7 || 14 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2021 Debugging your code with DDT|Debugging your code with DDT]] || 2021/4/21 || 15 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler || [[Webinar 2021 Pandas Recipes for New Python Users|Pandas Recipes for New Python Users]] || 2021/5/5 || 53 ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2021 DIY Local Program Installation|DIY Local Program Installation]] || 2021/5/19 || 15 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||CANCELED  || 2021/6/2 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Webinar 2021 Learning from competition|Learning from competition]] || 2021/6/16 || 103 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || CANCELED || 2021/6/30 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[Webinar 2021 Hybrid MPI|Hybrid MPI]] || 2021/7/14 || 41 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[Webinar 2021 Comparing CPU, GPU, memory, interconnect and filesystem performance across National systems|Comparing CPU, GPU, memory, interconnect and filesystem performance across National systems]]|| 2021/7/28 || 22 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[Webinar 2021 Git Part 2 – Common Git Commands|Git Part 2 – Common Git Commands]] || 2021/8/11 || 41 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[Webinar 2021 Eclipse Part2|Introduction to Eclipse Part 2 - Developing and debugging MPI code]] || 2021/9/8 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Webinar 2021 ROCm: AMD&amp;#039;s platform for GPU computing|ROCm: AMD&amp;#039;s platform for GPU computing]] || 2021/9/22 || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2021 META: running a large number of jobs conveniently|META: running a large number of jobs conveniently]]|| 2021/10/6 || 74 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[Webinar 2021 Scaling Hyperparameter Tuning with Dask-ML on Clusters|Scaling Hyperparameter Tuning with Dask-ML on Clusters]] || 2021/10/20 || 51 ||&lt;br /&gt;
|-&lt;br /&gt;
|Isaac ||[[Webinar 2021 Running machine learning example (MNIST) on multi-cores/nodes in Graham |Running machine learning example (MNIST) on multi-cores/nodes in Graham]] || 2021/11/3 || 96 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Webinar 2021 The Layered Grammar of Graphics (gglot2/plotnine)|The Layered Grammar of Graphics (gglot2/plotnine)]] || 2021/11/17 || 59 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[Webinar 2021 Eclipse Part3|Introduction to Eclipse Part 3 - Debugging MPI code]] || 2021/12/1 || 9 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 10 (Starting December 2021) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[webinar 2021 Tips for identifying when job wait times can be reduced by job submission parameter changes|Tips for identifying when job wait times can be reduced by job submission parameter changes]] || 2021/12/15 || 68 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2022 Remote Development on Clusters with VSCode|Remote Development on Clusters with VSCode]] || 2022/1/12 || 62 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergio || [[webinar 2022 From histograms to dashboards: An introduction to data visualization with Python|From histograms to dashboards: An introduction to data visualization with Python]]|| 2022/1/26 || &amp;#039;&amp;#039;&amp;#039;116&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[webinar 2022 Conquering the Scheduler|Conquering the Scheduler]] || 2022/2/9 || 49 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[webinar 2022 Gaussian16 and NBO7 on Graham and Cedar|Gaussian16 and NBO7 on Graham and Cedar]] || 2022/2/23 || 50 ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug ||[[webinar 2022 More Options for Solving Jobs with Many Tasks|More Options for Solving Jobs with Many Tasks]] || 2022/3/9 || 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[webinar 2022 Using Tensorboard to debug and profile neural network models|Using Tensorboard to debug and profile neural network models]] || 2022/3/23 || 35 ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[webinar 2022 Apptainer|Apptainer]] || 2022/4/6 || 39 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[webinar 2022 10 ways to optimize your workflow|10 ways to optimize your workflow]]|| 2022/4/20 || 39 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||  [[webinar 2022 Demystifying Web Portals|Demystifying Web Portals]] || 2022/5/4 || 29 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[webinar 2022 Profiling GPU codes with Nsight|Profiling GPU codes with Nsight]] || 2022/5/18 || 23 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[webinar 2022 Speeding up Python code with Numba|Speeding up Python code with Numba]] || 2022/6/1 || &amp;#039;&amp;#039;&amp;#039;58&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[webinar 2022 Realtime display with Gnuplot|Realtime display with Gnuplot]] || 2022/6/15 || 24 ||&lt;br /&gt;
|-&lt;br /&gt;
|Isaac ||[[webinar 2022 Running PyTorch codes with multi-GPU/nodes on national systems|Running PyTorch codes with multi-GPU/nodes on national systems]] || 2022/6/29 || 54 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[webinar 2022 Working with Jupyter on Clusters|Working with Jupyter on Clusters]] || 2022/7/13 || 56 ||&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[webinar 2022 Visualizing job properties for wait time assessment|Visualizing job properties for wait time assessment]] || 2022/7/27 || 31 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[webinar 2022 Debugging with ParaView|Debugging with ParaView]] || 2022/8/10 || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[webinar 2022 Remote Development on Clusters with VSCode - Part II|Remote Development on Clusters with VSCode - Part II]] || 2022/9/7 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[webinar 2022 Creating and Distributing Python Packages|Creating and Distributing Python Packages]] || 2022/9/21 ||  45||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[webinar 2022 Transfer Learning with Tensorflow Hub|Transfer Learning with Tensorflow Hub]] || 2022/10/5 ||  26||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[webinar 2022 Strategies For Managing Filesystem Quotas|Strategies For Managing Filesystem Quotas]]|| 2022/10/19 || 24 ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[webinar 2022 Profiling &amp;amp; Performance Tuning CPU Programs| Profiling &amp;amp; Performance Tuning CPU Programs]] || 2022/11/2 ||  19||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2022 Video Editing with KDEnLive|Video Editing with KDEnLive]]   || 2022/11/16 ||21||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[webinar 2022 Deploying a simple Express.js Web App|Deploying a simple Express.js Web App]] || 2022/11/30 ||  12||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[webinar 2022 Which GPU should I use?|Which GPU should I use?]] || 2022/12/14 || 24 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||[[colloquium 2023 Performance: current and upcoming systems|Performance: current and upcoming systems ]] || 2023/1/11 || 31 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jeff Moon ||[[colloquium 2023 How Research Data Management (RDM) Intersects with ARC and Why Should I Care?|How Research Data Management (RDM) Intersects with ARC and Why Should I Care?]] || 2023/1/25 || 49 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[colloquium 2023 An introduction to MPLAPACK, a multi-precision linear algebra library| An introduction to MPLAPACK, a multi-precision linear algebra library]] || 2023/2/8 || 15 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[colloquium 2023 Accelerated DataFrame with Dask-cuDF on multiple GPUs|Accelerated DataFrame with Dask-cuDF on multiple GPUs]] || 2023/2/22 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[colloquium 2023 plotnine: R&amp;#039;s Grammar of Graphics in Python|plotnine: R&amp;#039;s Grammar of Graphics in Python]]|| 2023/3/8 || 29 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 11 (Starting March 2023) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James || [[colloquium 2023 Before and after submitting Octave/Matlab jobs on the clusters|Before and after submitting Octave/Matlab jobs on the clusters]] || 2023/3/22 || 10 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[colloquium 2023 Running MATLAB on Alliance&amp;#039;s Clusters|Running MATLAB on Alliance&amp;#039;s Clusters]] || 2023/4/5 || 27 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[colloquium 2023 CUDA, ROCm, oneAPI – All for One or One for All?|CUDA, ROCm, oneAPI – All for One or One for All?]] || 2023/4/19 || 33 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[colloquium 2023 Modern Approaches to Profiling in Python with Scalene|Modern Approaches to Profiling in Python with Scalene]] || 2023/5/3 || 29 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[colloquium 2023 Contrastive learning|Contrastive learning]] || 2023/5/17 || &amp;#039;&amp;#039;&amp;#039;63&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul || CANCELED   || 2023/5/31 || ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || CANCELED || 2023/6/14 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || CANCELED || 2023/6/28 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[colloquium 2023 Leveraging the power of Linux on Windows with WSL|Leveraging the power of Linux on Windows with WSL]]|| 2023/7/12 || 40 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||[[colloquium 2023 DIY job monitoring, from cache misses to CO2 footprint|DIY job monitoring, from cache misses to CO2 footprint]] || 2023/7/26 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[colloquium 2023 Automating scientific workflows with AiiDA|Automating scientific workflows with AiiDA]] || 2023/8/9 || 33 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || CANCELED || 2023/8/23 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul || CANCELED || 2023/9/6 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Colloquium 2023 Data Wrangling with Tidyverse|Data Wrangling with Tidyverse]]|| 2023/9/20 || 27 ||&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Colloquium 2023 Exploring job wait times on Alliance compute clusters: a holistic view| Exploring job wait times on Alliance compute clusters: a holistic view]] || 2023/10/4 || 27 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Colloquium 2023 p2rng – A C++ Parallel Random Number Generator Library for the Masses|p2rng – A C++ Parallel Random Number Generator Library for the Masses]] || 2023/10/18 || 7 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Colloquium 2023 Generalized End to End Python and Neuroscience Workflows on a Compute Cluster| Generalized End to End Python and Neuroscience Workflows on a Compute Cluster]] || 2023/11/1 || 17 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[Colloquium 2023 Squeeze more juice out of a single GPU in deep learning| Squeeze more juice out of a single GPU in deep learning]] || 2023/11/15 || 54 ||&lt;br /&gt;
|-&lt;br /&gt;
|Collin ||[[Colloquium 2023 Skorch: Training PyTorch models with scikit-learn|Skorch: Training PyTorch models with scikit-learn]] || 2023/11/29 || 34 ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || CANCELED || 2023/12/13 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Colloquium 2024 False Sharing and Contention in Parallel Codes|False Sharing and Contention in Parallel Codes]] || 2024/1/17 || 17 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Colloquium 2024 Introduction to GPU programming with OpenMP|Introduction to GPU programming with OpenMP]]|| 2024/1/31 || 30 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[Colloquium 2024 MySQL Part 3: Constraints and Joins|MySQL Part 3: Constraints and Joins]] || 2024/2/14 || 11 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[Colloquium 2024 Debugging your code with DDT|Debugging your code with DDT]] || 2024/2/28 || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||[[Colloquium 2024 Make: obsolete or elegant?|Make: obsolete or elegant?]] || 2024/3/13 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui || [[Colloquium 2024 Accelerating Graph Analysis on GPUs|Accelerating Graph Analysis on GPUs]]|| 2024/3/27 || 25 ||&lt;br /&gt;
|-&lt;br /&gt;
|Nastaran || [[Colloquium 2024 Accelerating data analytics with RAPIDS cuDF|Accelerating data analytics with RAPIDS cuDF]]|| 2024/4/10 || 17 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[Colloquium 2024 Data Wrangling with Tidyverse (part 2)|Data Wrangling with Tidyverse (part 2)]] || 2024/4/24 || 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Colloquium 2024 Compute Ontario Summer School 2024|Compute Ontario Summer School 2024]] || 2024/5/8 || 25 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 12 (Starting July 2024) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Colloquium 2024 Exploring Compute Usage from User Facing Portals on the National Clusters|Exploring Compute Usage from User Facing Portals on the National Clusters]] || 2024/7/17 || 13 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Colloquium 2024 The Emergence of WebAssembly (Wasm) in Scientific Computing|The Emergence of WebAssembly (Wasm) in Scientific Computing]] || 2024/8/7 || 12 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Colloquium 2024 Diagnosing Wasted Resources from User Facing Portals on the National Clusters|Diagnosing Wasted Resources from User Facing Portals on the National Clusters]] || 2024/8/14 || 21 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Colloquium 2024 Using machine learning to predict rare events|Using machine learning to predict rare events]]|| 2024/8/28 || &amp;#039;&amp;#039;&amp;#039;51&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|Collin ||[[Colloquium 2024 Debugging and Optimization of PyTorch Models|Debugging and Optimization of PyTorch Models]] || 2024/9/11 || 42 ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Colloquium 2024 Multidimensional Arrays in C++|Multidimensional Arrays in C++]] || 2024/9/25 || 13 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||[[Colloquium 2024 Introspection for Jobs: in-job monitoring of performance|Introspection for Jobs: in-job monitoring of performance]] || 2024/10/9 || 18 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Colloquium 2024 Parallel Programming: MPI I/O Basics|Parallel Programming: MPI I/O Basics]] || 2024/10/23 || 12 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[Colloquium 2024 Git Part 3: Managing Workflows|Git Part 3: Managing Workflows]] || 2024/11/6 || 10 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[Colloquium 2024 Survival guide for the upcoming GPU upgrades (more total power, but fewer GPUs)|Survival guide for the upcoming GPU upgrades (more total power, but fewer GPUs)]]  || 2024/11/20 || 30 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[Colloquium 2024 Data Wrangling with Tidyverse (part 3)|Data Wrangling with Tidyverse (part 3)]] || 2024/12/4 || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
|Nast ||[[Colloquium 2024 Unlocking the Power of Comet: Streamlining Machine Learning Experimentation|Unlocking the Power of Comet: Streamlining Machine Learning Experimentation]] || 2024/12/18 || 9 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||Canceled || 2025/1/15 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[Colloquium 2025 Converting Python code with NumPy to run on the GPU|Converting Python code with NumPy to run on the GPU]] || 2025/1/29 || 30 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Colloquium 2025 High-Performance Data Science with Modern C++: Xeus-Cling and G3P|High-Performance Data Science with Modern C++: Xeus-Cling and G3P]] || 2025/2/12 || 9 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[Colloquium 2025 Reduction of errors, or the pursuit of correctness|Reduction of errors, or the pursuit of correctness]] || 2025/2/26 || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Colloquium 2025 Preview of the &amp;quot;Job Scheduling and Monitoring&amp;quot; self-paced course|Preview of the &amp;quot;Job Scheduling and Monitoring&amp;quot; self-paced course]] || 2025/3/12 || 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Colloquium 2025 Revisiting Cython: Is it still effective?|Revisiting Cython: Is it still effective?]] || 2025/3/26 || 14 ||&lt;br /&gt;
|-&lt;br /&gt;
|Collin ||[[Colloquium 2025 Too Big to Train: Large model training in PyTorch with Fully Sharded Data Parallel|Too Big to Train: Large model training in PyTorch with Fully Sharded Data Parallel]] || 2025/4/9 || 23 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Colloquium 2025 Parallel Programming: MPI I/O Advanced Features|Parallel Programming: MPI I/O Advanced Features]] || 2025/4/23 || 10 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[Colloquium 2025 Checkpoints: why, when and how|Checkpoints: why, when and how]] || 2025/5/7 || 14 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||CANCELED || 2025/5/21 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Webinar 2025 Practical Multidimensional Arrays and Linear Algebra in C++|Practical Multidimensional Arrays and Linear Algebra in C++]] || 2025/7/2 || 10 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[Webinar 2025 Effortless Parallelism: Leveraging Julia Threads for High-Performance Scientific Computing|Effortless Parallelism: Leveraging Julia Threads for High-Performance Scientific Computing]] || 2025/7/16 || 18 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[Webinar 2025 Migrating to the upgraded national systems|Migrating to the upgraded national systems]] || 2025/7/30 || 143 ||&lt;br /&gt;
|-&lt;br /&gt;
|Nast ||[[Webinar 2025 Interactive Interfaces for Machine Learning Using Gradio|Interactive Interfaces for Machine Learning Using Gradio]]  || 2025/8/13 || 21 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[Webinar 2025 The Nibi&amp;#039;s web interface|The Nibi&amp;#039;s web interface]] || 2025/8/27 || 49 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[Webinar 2025 Installing your software packages with Spack|Installing your software packages with Spack]] || 2025/9/10 || 24 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[Webinar 2025 Running JupyterLab on Nibi|Running JupyterLab on Nibi]] || 2025/9/24 || 34 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[Webinar 2025 Running Linux on Windows and taking it with you anywhere|Running Linux on Windows and taking it with you anywhere]] || 2025/10/8 || 17 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 13 (Starting October 2025) ==&lt;br /&gt;
Entries with the asterisk next to the name are delivered as a CO colloquium. The entries without the asterisk will be delivered as a GIS, shifted by one hour (1-2pm).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Webinar 2025 What exactly is a Resource Allocation Competition (RAC) Compute Award?|What exactly is a Resource Allocation Competition (RAC) Compute Award?]] || 2025/10/22 || 10 || &lt;br /&gt;
|-&lt;br /&gt;
|Doug ||[[Webinar 2025 Running Engineering Related Packages Interactively on Nibi|Running Engineering Related Packages Interactively on Nibi]] || 2025/11/5 || 9 || &lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Webinar 2025 High-Performance Data Science with Modern C++: Ranx|High-Performance Data Science with Modern C++: Ranx]] || 2025/11/19 || 2 || &lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Webinar 2025 Serial Farms: Package options and when to switch to farming|Serial Farms: Package options and when to switch to farming]] || 2025/12/3 || 7 || &lt;br /&gt;
|-&lt;br /&gt;
|Weiguang* ||[[Webinar 2025 Illuminating the Black Box: Understanding AI Models with Integrated Gradients|Illuminating the Black Box: Understanding AI Models with Integrated Gradients]] || 2025/12/17 || 21 || &lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Webinar 2026 Floating-point Numbers Aren&amp;#039;t Mathematical Real Numbers|Floating-point Numbers Aren&amp;#039;t Mathematical Real Numbers]] || 2026/1/14 || 23 || &lt;br /&gt;
|-&lt;br /&gt;
|Collin* ||[[Webinar 2026 Too Big to Train 2: PyTorch&amp;#039;s Upgraded Interface for Fully Sharded Data Parallel|Too Big to Train 2: PyTorch&amp;#039;s Upgraded Interface for Fully Sharded Data Parallel]] || 2026/1/28 || 6 || &lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[Webinar 2026 Running Gaussian16 and NBO7 effectively on Nibi and Fir: Performance Issues|Running Gaussian16 and NBO7 effectively on Nibi and Fir: Performance Issues]]|| 2026/2/11 || 15 || &lt;br /&gt;
|-&lt;br /&gt;
|Ed* || [[Webinar 2026 Launching a Virtual Machine Using Nibi OpenStack Cloud|Launching a Virtual Machine Using Nibi OpenStack Cloud]]|| 2026/2/25 || 7 || &lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[Webinar 2026 Know your cluster: ways that national systems vary in performance|Know your cluster: ways that national systems vary in performance]]|| 2026/3/11 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Jinhui* ||[[Getting started with MLflow on the Clusters|Getting started with MLflow for machine learning and AI development]] || 2026/3/25 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Sergey || || 2026/4/8 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Tyson* || || 2026/4/22 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Baolai || || 2026/5/6 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Pawel || || 2026/7/15 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Nast || || 2026/7/29 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Doug || || 2026/8/12 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|James || || 2026/8/26 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Tyler || || 2026/9/9 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Armin || || 2026/9/23 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Paul || || 2026/10/7 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || || 2026/10/21 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Ed || || 2026/11/4 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Collin || || 2026/11/18 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Mark || || 2026/12/2 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || || 2026/12/16 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Baolai || || 2027/1/13 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Sergey || || 2027/1/27 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Jinhui || || 2027/2/10 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Tyson || || 2027/2/24 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Pawel || || 2027/3/10 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Nast || || 2027/3/24 ||  || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Reporting]]&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=General_Interest_Seminars&amp;diff=1204</id>
		<title>General Interest Seminars</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=General_Interest_Seminars&amp;diff=1204"/>
		<updated>2026-02-27T13:57:00Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* Round 13 (Starting October 2025) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page organizing/archiving general interest seminars (became a part of Compute Ontario Colloquia weekly series starting January 2023).&lt;br /&gt;
&lt;br /&gt;
== Round 1 (Starting May 2011) ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Dates !! Att&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || Serial farming and Monte Carlo for SHARCNET || 2011/05/18 || 15&lt;br /&gt;
|-&lt;br /&gt;
|David || Automating Tasks with bash || 2011/06/08 || 8&lt;br /&gt;
|-&lt;br /&gt;
|HughM || [[Debugging at SHARCNET]] || 2011/06/29 || 11&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || Introduction to Linux || 2011/07/20 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || Linear Algebra on GPU || 2011/09/21 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[MATLAB Parallel Computing Toolbox on SHARCNET]]|| 2011/10/12 || 7&lt;br /&gt;
|-&lt;br /&gt;
|Alex || Visualizing Data with Paraview || 2011/11/02 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || Managing your files effectively at SHARCNET with SVN || 2011/11/23 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || Introduction to Valgrind || 2012/03/14 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Nick ||Optimizing Tools for Development and Execution of Programs || 2012/04/04 || 14&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 2 (Starting Sept. 2012) ==&lt;br /&gt;
&lt;br /&gt;
Note: henceforth, there is expected to be a General Interest Seminar every month, on the third Wednesday at noon.  Please be responsible about this and plan for your month.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Month !! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
| SEP || Pawel || Why Would I Use GPUs? || 2012/09/26 || 12&lt;br /&gt;
|-&lt;br /&gt;
| OCT || Tyson  || Introduction to Valgrind || 2012/10/17 || 5&lt;br /&gt;
|-&lt;br /&gt;
| NOV || HughM || [[New User Seminar - Part 2]] || 2012/11/21 || 15&lt;br /&gt;
|-&lt;br /&gt;
| DEC || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| JAN || Isaac || Shell scripting || 2013/01/23 || 18&lt;br /&gt;
|-&lt;br /&gt;
| FEB || Jemmy || SHARCNET Software Support Updates || 2013/02/27 || 7&lt;br /&gt;
|-&lt;br /&gt;
| MAY || Sergey || Quick-n-dirty ways to run your serial code faster, in parallel || 2013/05/01 || 15&lt;br /&gt;
|-&lt;br /&gt;
| JUNE || David || Parallel programming patterns || 2013/06/ || &lt;br /&gt;
|-&lt;br /&gt;
| JUL || Alex || || 2013/07/ || &lt;br /&gt;
|-&lt;br /&gt;
| AUG || Baolai || || 2013/08/ || &lt;br /&gt;
|-&lt;br /&gt;
| SEP || Nick || || 2013/09/ ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 3 (Starting Sept. 2013) ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Month !! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
| NOV || Isaac || [[Introduction to Linux]] || 2013/11/20 || 32&lt;br /&gt;
|-&lt;br /&gt;
| DEC || Pawel || [[Why Would I Use GPUs?]] || 2013/12/18 || 22&lt;br /&gt;
|-&lt;br /&gt;
| JAN || Alex || [[Using parallel I/O in SHARCNET]] || 2014/01/15 || 10&lt;br /&gt;
|-&lt;br /&gt;
| FEB || Sergey || [[Profiling MPI codes with Allinea&amp;#039;s MAP]] || 2014/02/19 || 10&lt;br /&gt;
|-&lt;br /&gt;
| MAR || Baolai || [[Managing your files effectively at SHARCNET with SVN]] || 2014/03/19 || 8&lt;br /&gt;
|-&lt;br /&gt;
| APR || Tyson  || [[My code doesn&amp;#039;t crash -- why should I still use Valgrind?]] || 2014/04/16  || 17&lt;br /&gt;
|-&lt;br /&gt;
| MAY || Jemmy || [[Running MATLAB in SHARCNET]] || 2014/05/21 || 34&lt;br /&gt;
|-&lt;br /&gt;
| JUNE || Hugh || [[Webinar 2014 Debugging at SHARCNET|Debugging at SHARCNET]] || 2014/06/18 || 20&lt;br /&gt;
|-&lt;br /&gt;
| JUL || James || [[Webinar 2014 Transitioning from Matlab to Octave|Transitioning from Matlab to Octave]] || 2014/07/16 || ?&lt;br /&gt;
|-&lt;br /&gt;
| AUG ||  || || 2014/08/20 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Round 4 (Starting Sept. 2014) ==&lt;br /&gt;
&lt;br /&gt;
Note: with the new (biweekly) schedule, full time HPTC will have to give 2 seminars per year. &amp;#039;&amp;#039;&amp;#039;Please make at least one of these two seminars a new one&amp;#039;&amp;#039;&amp;#039; (the other one can be an old recycled one).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att !! Reg&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[webinar 2014 Advanced Message Passing in MPI: Using MPI Datatypes with Opaque C++ Types|Advanced Message Passing in MPI: Using MPI Datatypes with Opaque C++ Types]] || 2014/09/17 || 7 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[webinar 2014 An Introduction to Java Threads|An Introduction to Java Threads]] || 2014/10/01 || 9 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[webinar 2014 CUDA Basics and how to in SHARCNET|CUDA Basics and how to]] || 2014/10/15 || 20 || 31&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[webinar 2014 Is the Intel Xeon Phi right for me?|Is the Intel Xeon Phi right for me?]] || 2014/10/29 || 11 || 15&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Linear Algebra on GPU]] || 2014/11/12 || 11 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2014 The SHARCNET Desktop|The SHARCNET Desktop]] || 2014/11/26 || 17 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Weiguan || [[webinar 2014 Programming with VTK - a high-level visualization library |Programming with VTK - a high-level visualization library]] || 2014/12/10 || 18 || 14&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2015 SHARCNet file management|SHARCNet file management]] || 2015/01/07 || 15 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Hugh || [[webinar 2015 New User Seminar - Part 2|New User Seminar - Part 2]] || 2015/01/21 || 10 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[webinar 2015 Deep Learning on SHARCNET: From CPU to GPU cluster|Deep Learning on SHARCNET: From CPU to GPU cluster]] || 2015/02/04 || 40 || 22&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2015 Serial and parallel farming from A to Z|Serial and parallel farming from A to Z]] || 2015/02/18 || 30 || 23&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[The Relevance of OpenCL to HPC]] || 2015/03/04 || 15+20 live || 12&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[webinar 2015 Programming, best practices| Programming, best practices]] || 2015/03/18 || 23 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2015 Numerical libraries for scientific computing|A brief look at numerical libraries: The tools you can use]] || 2015/04/01 || 8 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[webinar 2015 An Update on MATLAB at SHARCNET| An Update on MATLAB at SHARCNET]] || 2015/04/15 || 7 || 13&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2015 High Performance Computing with Python| High Performance Computing with Python]] || 2015/04/29 || 39 || 29&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2015 Exploring a new approach to package management| Exploring a new approach to package management]] || 2015/05/14 || 6 || 3&lt;br /&gt;
|-&lt;br /&gt;
| || [[]] || 2015/05/27 || canceled&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[webinar 2015 Get the most out of SharcNET|Get the most out of SharcNET]] || 2015/06/10 || 25 || 23&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2015 Programming with Wt - A C++ library for developing stateful and highly interactive web applications|Programming with Wt - A C++ library for developing stateful and highly interactive web applications]] || 2015/06/24 || 7 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[Hybrid MPI and OpenMP Parallel Programming]] || 2015/07/08 || 17 || 13&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2015 Debugging and profiling of MPI programs| Debugging and profiling of MPI programs]] [[]] || 2015/07/22 || 15 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Baolai|| [[webinar 2015 Parallel programming without MPI - Using coarrays in Fortran|Parallel programming without MPI - Using coarrays in Fortran]] || 2015/08/05 || 10 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Isaac|| [[webinar 2015 Introduction to Parallel I/O| Introduction to Parallel I/O]] || 2015/08/19 || 18 || 16&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 5 (Starting Sept. 2015) ==&lt;br /&gt;
&lt;br /&gt;
Note: with the new (biweekly) schedule, full time HPTC will have to give 2 seminars per year. &amp;#039;&amp;#039;&amp;#039;Please make at least one of these two seminars a new one&amp;#039;&amp;#039;&amp;#039; (the other one can be an old recycled one).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att !! Reg&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[webinar 2015 cientific Visualization with ParaView| Scientific Visualization with ParaView]] || 2015/9/16 || 23 || 15&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2015 Profiling function vectorization in Matlab/Octave | Profiling function vectorization in Matlab/Octave ]] || 2015/9/30 || 11 || 4&lt;br /&gt;
|-&lt;br /&gt;
|Fei ||  [[webinar 2015 CUDA Profiling and Tuning| CUDA Profiling and Tuning]]  || 2015/10/14 || 18 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Hugh || [[webinar 2015 Fundamentals of working at the command line at SHARCNET| Fundamentals of working at the command line at SHARCNET]] || 2015/10/28 || 35 || 16&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[webinar 2015 Introduction to MPI - Part I| Introduction to MPI - Part I]]|| 2015/11/11 || 20 || 25&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2015 Introduction to MPI - Part II| Introduction to MPI - Part II]]|| 2015/11/25 || 10 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[webinar 2015 Parallel Design Patterns| Parallel Design Patterns]] || 2015/12/9 || 10 || 15&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2016 Automating Software Build Process using CMake| Automating Software Build Process using CMake]] || 2016/1/6 || 16 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[webinar 2016 Introduction to OpenMP Parallel Programming| Introduction to OpenMP Parallel Programming]]|| 2016/1/20 || 5 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2016 UNIX shell expansion: proper use and advanced forms| UNIX shell expansion: proper use and advanced forms]] || 2016/2/3 || 17 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2016 Parallel and high performance computing with R| Parallel and high performance computing with R]] || 2016/2/17 || 24 || 21&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[webinar 2016 Raphaël - a vector graphics library for web development|Raphaël - a vector graphics library for web development]] || 2016/3/2 || 6 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2016 Debugging OpenMP programs| Debugging OpenMP programs]] || 2016/3/16 || 1 || 3&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[webinar 2016 How to get started with OpenFOAM at SHARCNET|How to get started with OpenFOAM at SHARCNET]] || 2016/3/30 || 14 || 7&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2016 Quick tips for getting the most out of SHARCNET|Quick tips for getting the most out of SHARCNET]] || 2016/4/13 || 17 || 13&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[webinar 2016 Deep Learning on SHARCNET: Tools you can use|Deep Learning on SHARCNET: Tools you can use]] || 2016/4/27 || 38 || 23&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2016 Git and SHARCNET|Git and SHARCNET ]] || 2016/5/11 || 14 || 10&lt;br /&gt;
|-&lt;br /&gt;
|Doug || Canceled || 2016/5/25 || &lt;br /&gt;
|-&lt;br /&gt;
|Jose || [[webinar 2016 Introduction to Apache Spark on SHARCNET|Introduction to Apache Spark on SHARCNET]] || 2016/6/8 || 15 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Hugh || Canceled || 2016/6/22 || &lt;br /&gt;
|-&lt;br /&gt;
|Ed || Canceled || 2016/7/6 || &lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[Hybrid MPI and OpenMP Parallel Programming]] || 2016/7/20 || 7 || 10&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2016 Introduction to MPI - Part III|Introduction to MPI - Part III]] || 2016/8/3 || 0 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[webinar 2016 Introduction to Jupyter| Introduction to Jupyter]] || 2016/8/17 || 14 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2016 Automating Software Build Process using CMake| Automating Software Build Process using CMake]] || 2016/9/14 || 6 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2016 Introduction to The Shell|Introduction to The Unix Shell - Automating Your Work]] || 2016/9/28 || 23 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[webinar 2016 What Happened to My Job?  Cluster Scheduling In Detail|What Happened to My Job?  Cluster Scheduling In Detail]] || 2016/10/12 || 17 || 11&lt;br /&gt;
|-&lt;br /&gt;
|Isaac ||[[webinar 2016 Introduction To Python|Introduction To Python: simple practise of data analysis]] || 2016/10/26 || 24 || 30&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[webinar 2016 Debugging CUDA programs| Debugging CUDA programs]] || 2016/11/9 || 3 || 1&lt;br /&gt;
|-&lt;br /&gt;
|Doug || Canceled || 2016/11/23 || 0 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[webinar 2016 Defensive Programming : Best Practices|Defensive Programming : Best Practices]] || 2016/12/7 || 8 || 15&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 6 (Starting January 2017) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att !! Reg&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[webinar 2017 Introduction to ParaView|Introduction to ParaView]] || 2017/1/4 || 12 || 13&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2017 Navigating the research computing resource renewals coming in 2017|Navigating the research computing resource renewals coming in 2017]] || 2017/1/18 || 11 || 10&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[webinar 2017 Deep Learning on SHARCNET: Best Practices |Deep Learning on SHARCNET: Best Practices]] || 2017/2/1 || 23 || 24&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2017 Git and SHARCNET (part 2)|Git and SHARCNET (part 2)]]|| 2017/2/15 || 5 || 13&lt;br /&gt;
|-&lt;br /&gt;
|Jose || [[webinar 2017 Machine Learning with Spark at SHARCNET|Machine Learning with Spark at SHARCNET ]]  || 2017/3/1 || 12 || 28&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2017 High Performance Computing with Python|High Performance Computing with Python]]|| 2017/3/15 || 27 || 37&lt;br /&gt;
|-&lt;br /&gt;
|Paul || CANCELED (speaker not ready) || 2017/3/29 || || &lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2017 Modern Fortran: Concurrency |Modern Fortran: Concurrency and Parallelism]] || 2017/4/12 || 18 || 22&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||  [[webinar 2017 Automating Software Build Process using CMake – Part II|Automating Software Build Process using CMake – Part II]] || 2017/4/26 || 2 || 1&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[OpenMP 4.x: New features and Protocols]] || 2017/5/10 || 9 || 3&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[Webinar 2017 How to compile/run OpenFOAM in SHARCNET |How to compile/run OpenFOAM in SHARCNET]] || 2017/5/24 || 10 || 7&lt;br /&gt;
|-&lt;br /&gt;
|Ed || CANCELED (one attendee)|| 2017/6/7 || 1 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2017 What&amp;#039;s new and exciting about Graham&amp;#039;s GPUs| What&amp;#039;s new and exciting about Graham&amp;#039;s GPUs]] || 2017/6/21 || 27 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Webinar 2017 Train models to recognize hand-written digits using Tensorflow|Train models to recognize hand-written digits using Tensorflow]] || 2017/7/5 || 24 || 23&lt;br /&gt;
|-&lt;br /&gt;
|James || [[Webinar 2017 How jobs are scheduled to run on Graham and Cedar|How jobs are scheduled to run on Graham and Cedar]] || 2017/7/19 || 55 || 34&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2017 Intel MPI Library Cluster Edition on Graham|Intel MPI Library Cluster Edition on Graham]] || 2017/8/2 || 6 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Webinar 2017 Packaging with Nix|Packaging with Nix]] || 2017/8/16 || 6 || 4&lt;br /&gt;
|-&lt;br /&gt;
|Kamil || [[Webinar 2017 Partitions and scheduling, running jobs effectively on Graham and Cedar | Partitions and scheduling, running jobs effectively on Graham and Cedar]] || 2017/9/13 || 34 || 24&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[Webinar 2017 Training Neural Networks with hundreds of GPUs on Graham and Cedar | Training Neural Networks with hundreds of GPUs on Graham and Cedar]] || 2017/9/20 || 46 || 36&lt;br /&gt;
|-&lt;br /&gt;
|Mohamed|| [[Webinar 2017 Introduction to SHARCNET Cloud|Introduction to SHARCNET Cloud]] || 2017/9/27 || 19 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Webinar 2017 Linear Algebra on GPU| Linear Algebra on GPU]] || 2017/10/11 || 20 || 16&lt;br /&gt;
|-&lt;br /&gt;
|Jose || [[Webinar 2017 Machine Learning using Jupyter Notebooks on Graham|Machine Learning using Jupyter Notebooks on Graham]]  || 2017/10/25 || 36  || 34&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[Webinar 2017 Introduction to LINUX/SHELL programming in SHARCNET|Introduction to LINUX/SHELL programming in SHARCNET]] || 2017/11/8 || 31 || 33&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2017 Serial farming on Graham|Serial farming on Graham]] || 2017/11/22 || 22 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[Webinar 2017 Introduction to Eclipse for debugging - Part I|Introduction to Eclipse for debugging - Part I]] || 2017/12/6 || 10 || 4&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2018 Intro to Intel Performance Tools|Intro to Intel Performance Tools]] || 2018/1/17 || 8 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[Webinar 2018 Deploying a Full Stack Web Solution on the Cloud for Cluster Access|Deploying a Full Stack Web Solution on the Cloud for Cluster Access]] || 2018/1/31 || 22 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[Webinar 2018 Singularity|Singularity]] || 2018/2/14 || 13 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[Webinar 2018 Visual Studio Code - Your Next Coding Companion for Advanced Research Computing|Visual Studio Code - Your Next Coding Companion for Advanced Research Computing]] || 2018/2/28 || 14 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[Webinar 2018 Using SSH for Good, not Evil|Using SSH for Good, not Evil]] || 2018/3/14 || 17 || 16&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 7 (Starting March 2018) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att !! Reg&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Using Computational Chemistry software effectively on Graham]] || 2018/3/28 || 14 || 4&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2018 Improving your Python programs with NumPy and SciPy|Improving your Python programs with NumPy and SciPy]] || 2018/4/11 || 24 || 22&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2018 All about job wait times in the Graham queue|All about job wait times in the Graham queue ]] || 2018/4/25 || 31 || 22&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2018 Summer School preview|Summer School preview]] || 2018/5/9 || 18 || 14&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || CANCELED || 2018/5/23 || 0 || &lt;br /&gt;
|-&lt;br /&gt;
|Jose || CANCELED || 2018/6/6 || 0 || &lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[webinar 2018 Fundamentals of working at the command line at Graham|Fundamentals of working at the command line at Graham]] || 2018/6/20 || 30 || 28&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2018 Debugging on Graham with DDT|Debugging on Graham with DDT]] || 2018/7/4 || 6 || 7&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||  [[webinar 2018 Mixed Source C, C++, and Fortran Programs|Mixed Source C, C++, and Fortran Programs]] || 2018/7/18 || 18 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||  [[webinar 2018 Introduction to MySQL on Graham|Introduction to MySQL on Graham]]|| 2018/8/1 || 15 || 14&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||  [[webinar 2018 Harnessing the Power of Heterogeneous Computing using Boost.Compute + OpenCL|Harnessing the Power of Heterogeneous Computing using Boost.Compute + OpenCL ]] || 2018/8/15 || 7 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2018 Concurrent File I/O by Multiple Processes|Concurrent File I/O by Multiple Processes]] || 2018/9/12 || 13 || 7&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[webinar 2018 The Benefits of GLOST for Many Jobs|The Benefits of GLOST for Many Jobs]] || 2018/9/26 || 9 || 9&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2018 Understand (and potentially reduce) job wait times by examining scheduler configuration, load in the queue and account usage|Understand (and potentially reduce) job wait times by examining scheduler configuration, load in the queue and account usage]] || 2018/10/10 || 23 || 18&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[webinar 2018 Stock Prediction Using Recurrent Neural Network|Stock Prediction Using Recurrent Neural Network]] || 2018/10/24 || 33 || 29&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[webinar 2018 Using MATLAB effectively on Graham and Cedar|Using MATLAB effectively on Graham and Cedar]] || 2018/11/7 || 33 || -&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[webinar 2018 MySQL Part 2:  Relations and Joins|MySQL Part 2:  Relations and Joins]] || 2018/11/21 || 5 || -&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[webinar 2018 Using Pseudorandom Number Sequences in C++|Using Pseudorandom Number Sequences in C++]]  || 2018/12/5 || 7 || -&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2018 Code profiling on Graham|Code profiling on Graham]]|| 2018/12/19 || 26 || -&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2018 The Monad Understanding Hurdle|The Monad Understanding Hurdle]]|| 2019/1/16 || 9 || -&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[webinar 2018 Best practices for newbies on Graham|Best practices for newbies on Graham]]|| 2019/1/30 || 35 || -&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[webinar 2019 What Happened To My Job?|What Happened To My Job? ]]|| 2019/2/13 || 15 || &lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2019 Dipping into C++17 Parallel Algorithms with Intel&amp;#039;s Parallel STL|Dipping into C++17 Parallel Algorithms with Intel&amp;#039;s Parallel STL]] || 2019/2/27 || 14 || &lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[webinar 2019 Exploring the Use of Application Software on Grahams Visualization Machine|Exploring the Use of Application Software on Grahams Visualization Machine]] || 2019/3/13 || 35 || &lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2019 Introduction to parallel programming with MPI and Python|Introduction to parallel programming with MPI and Python]] || 2019/3/27 || 25 || - &lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2019 Exploring Octave package dataframe|Exploring Octave package dataframe]] || 2019/4/10 || 2 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 8 (Starting April 2019) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James || [[Webinar 2019 PRE and POST production on Graham|PRE and POST production on Graham]] || 2019/4/24 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Webinar 2019 Pull your own data into ParaView|Pull your own data into ParaView]] || 2019/5/8 || 31&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[The New Development of OpenMP]] || 2019/5/22 || 22&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[Webinar 2019 Julia - A first perspective|Julia - A first perspective]] || 2019/6/5 || 45&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[Webinar 2019 Using C++&amp;#039;s Parallel Algorithms|Using C++&amp;#039;s Parallel Algorithms]]|| 2019/6/19 || 14&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || CANCELED || 2019/7/3 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Webinar 2019 The Monad Understanding Hurdle (Part 2)|The Monad Understanding Hurdle (Part 2)]] || 2019/7/17 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[Webinar 2019 Fundamentals of working at the command line at Graham| Fundamentals of working at the command line at Graham ]] || 2019/7/31 || 54&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[Webinar 2019 Is It Possible to Use C++ Parallel Algorithms in a Distributed Memory Setup (i.e. MPI)?|Is It Possible to Use C++ Parallel Algorithms in a Distributed Memory Setup (i.e. MPI)?]] || 2019/8/14 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Doug || CANCELED || 2019/9/11 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[Webinar 2019 Using reduced numerical precision on Pascal, Volta and Turing GPUs|Using reduced numerical precision on Pascal, Volta and Turing GPUs]] || 2019/9/25 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui || [[Webinar 2019 Introduction to scalable computing with Dask in Python| Introduction to scalable computing with Dask in Python ]] || 2019/10/9 || 40&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2019 Leveraging Compiler Optimization Reports|Leveraging Compiler Optimization Reports ]] || 2019/10/23 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Webinar 2019 Using Multiple GPUs in Tensorflow|Using Multiple GPUs in Tensorflow]] || 2019/11/6 || 18&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[Webinar 2019 Julia: A second perspective|Julia: A second perspective]]  || 2019/11/20 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[Webinar 2019 Docker|Docker]]|| 2019/12/4 || 27&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Webinar 2019 Introduction to HPC Programming Language Chapel: Base Language Overview |Introduction to HPC Programming Language Chapel: Base Language Overview ]] || 2019/12/18 || 10&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Webinar 2019 The Monad Understanding Hurdle (Part 3)|The Monad Understanding Hurdle (Part 3)]] || 2020/1/15 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[Webinar 2019 Singularity 3.5|Singularity 3.5]]|| 2020/1/29 || 27&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2019 New User Seminar, Part II|New User Seminar, Part II]] || 2020/2/12 || 23&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[Webinar_2020_how_to_run_AI_programs_in_Graham| How to Run AI programs in Graham]]|| 2020/2/26 || 44&lt;br /&gt;
|-&lt;br /&gt;
|Baolai|| [[Julia: A third perspective - parallel computing explained]] || 2020/3/11 || 18&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[Webinar_2020_Introduction_to_scalable_computing_with_Dask_in_Python_(Continued)|Introduction to scalable computing with Dask in Python (Continued)]] || 2020/3/25 || 15&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||  [[Webinar 2020 Using SSHFS to make CC storage more accessible|Using SSHFS to make CC storage more accessible]] || 2020/4/8 || 21&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Webinar 2020 Collaborative Groups in CUDA|Collaborative Groups in CUDA]] || 2020/4/22 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Doug||CANCELED || 2020/5/6 || &lt;br /&gt;
|-&lt;br /&gt;
|Armin ||CANCELED || 2020/5/20 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 9 (Starting July 2020) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Webinar 2020 Cython: A First Look|Cython: A First Look]] || 2020/7/8 || 60&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Webinar 2020 Visualizing job usage on the Compute Canada systems with the ViewClust Python package|Visualizing job usage on the Compute Canada systems with the ViewClust Python package]] || 2020/7/15 || 33&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Webinar 2020 How to Use C++ Parallel Algorithms in a Distributed Memory Setup (i.e. MPI)|How to Use C++ Parallel Algorithms in a Distributed Memory Setup (i.e. MPI)]] || 2020/7/29 || 15 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergio ||[[Webinar 2020 Bioinformatics in the terminal: Tips and tricks to make your life easier|Bioinformatics in the terminal: Tips and tricks to make your life easier]] || 2020/8/12 || 47 ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2020 Options for Solving Jobs with Many Tasks|Options for Solving Jobs with Many Tasks]]|| 2020/9/9 || 13 || 30&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[Webinar 2020 Is my neural network too big to fit into GPU?|Is my neural network too big to fit into GPU?]] || 2020/9/23 || 59 || 93&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Webinar 2020 Introduction to HPC Programming Language Chapel: Parallel Approaches|Introduction to HPC Programming Language Chapel: Parallel Approaches ]]|| 2020/10/7 || 7 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[Webinar 2020 Introduction to Git|Introduction to Git]] || 2020/10/21 || 50 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[Webinar 2020 Julia - Parallel computing revisited|Julia: Parallel computing revisited]] || 2020/11/4 || 8 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[Webinar 2020 NixOS: The second largest and the most up-to-date Linux distribution|NixOS: The second largest and the most up-to-date Linux distribution]] || 2020/11/18 || 18 ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Webinar 2020 Practical Singularity|Practical Singularity]] || 2020/12/2 || 28 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[Webinar 2020 Offload Analytics Workload in Python to GPUs with RAPIDS|Offload Analytics Workload in Python to GPUs with RAPIDS]]  || 2020/12/16 || 46 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[Webinar 2021 Programming GPUs with Fortran|Programming GPUs with Fortran]] || 2021/1/13 || 25 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[Webinar 2021 Computing in arbitrary precision|Computing in arbitrary precision]] || 2021/1/27 || 13 ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Isaac&amp;#039;&amp;#039;&amp;#039; || [[Webinar 2021 Some ML practices running GPUs in Compute Canada system|Using multiple GPUs for Machine Learning]] || 2021/2/10 || &amp;#039;&amp;#039;&amp;#039;63&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|James || [[Webinar 2021 Generating interactive visualizations with Plotly on Graham|Generating interactive visualizations with Plotly on Graham]]|| 2021/2/24 || 47 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Webinar 2021 Scalable Memory Allocation for Parallel Algorithms| Scalable Memory Allocation for Parallel Algorithms]] || &amp;#039;&amp;#039;&amp;#039;2021/3/17&amp;#039;&amp;#039;&amp;#039; || 7 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergio ||[[Webinar 2021 FauxConda: ways to use Conda without conda|FauxConda: ways to use Conda without conda]] || 2021/3/24 || 27 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[An Update to ADF/AMS software on Graham]]|| 2021/4/7 || 14 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2021 Debugging your code with DDT|Debugging your code with DDT]] || 2021/4/21 || 15 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler || [[Webinar 2021 Pandas Recipes for New Python Users|Pandas Recipes for New Python Users]] || 2021/5/5 || 53 ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2021 DIY Local Program Installation|DIY Local Program Installation]] || 2021/5/19 || 15 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||CANCELED  || 2021/6/2 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Webinar 2021 Learning from competition|Learning from competition]] || 2021/6/16 || 103 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || CANCELED || 2021/6/30 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[Webinar 2021 Hybrid MPI|Hybrid MPI]] || 2021/7/14 || 41 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[Webinar 2021 Comparing CPU, GPU, memory, interconnect and filesystem performance across National systems|Comparing CPU, GPU, memory, interconnect and filesystem performance across National systems]]|| 2021/7/28 || 22 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[Webinar 2021 Git Part 2 – Common Git Commands|Git Part 2 – Common Git Commands]] || 2021/8/11 || 41 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[Webinar 2021 Eclipse Part2|Introduction to Eclipse Part 2 - Developing and debugging MPI code]] || 2021/9/8 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Webinar 2021 ROCm: AMD&amp;#039;s platform for GPU computing|ROCm: AMD&amp;#039;s platform for GPU computing]] || 2021/9/22 || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2021 META: running a large number of jobs conveniently|META: running a large number of jobs conveniently]]|| 2021/10/6 || 74 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[Webinar 2021 Scaling Hyperparameter Tuning with Dask-ML on Clusters|Scaling Hyperparameter Tuning with Dask-ML on Clusters]] || 2021/10/20 || 51 ||&lt;br /&gt;
|-&lt;br /&gt;
|Isaac ||[[Webinar 2021 Running machine learning example (MNIST) on multi-cores/nodes in Graham |Running machine learning example (MNIST) on multi-cores/nodes in Graham]] || 2021/11/3 || 96 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Webinar 2021 The Layered Grammar of Graphics (gglot2/plotnine)|The Layered Grammar of Graphics (gglot2/plotnine)]] || 2021/11/17 || 59 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[Webinar 2021 Eclipse Part3|Introduction to Eclipse Part 3 - Debugging MPI code]] || 2021/12/1 || 9 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 10 (Starting December 2021) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[webinar 2021 Tips for identifying when job wait times can be reduced by job submission parameter changes|Tips for identifying when job wait times can be reduced by job submission parameter changes]] || 2021/12/15 || 68 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2022 Remote Development on Clusters with VSCode|Remote Development on Clusters with VSCode]] || 2022/1/12 || 62 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergio || [[webinar 2022 From histograms to dashboards: An introduction to data visualization with Python|From histograms to dashboards: An introduction to data visualization with Python]]|| 2022/1/26 || &amp;#039;&amp;#039;&amp;#039;116&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[webinar 2022 Conquering the Scheduler|Conquering the Scheduler]] || 2022/2/9 || 49 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[webinar 2022 Gaussian16 and NBO7 on Graham and Cedar|Gaussian16 and NBO7 on Graham and Cedar]] || 2022/2/23 || 50 ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug ||[[webinar 2022 More Options for Solving Jobs with Many Tasks|More Options for Solving Jobs with Many Tasks]] || 2022/3/9 || 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[webinar 2022 Using Tensorboard to debug and profile neural network models|Using Tensorboard to debug and profile neural network models]] || 2022/3/23 || 35 ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[webinar 2022 Apptainer|Apptainer]] || 2022/4/6 || 39 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[webinar 2022 10 ways to optimize your workflow|10 ways to optimize your workflow]]|| 2022/4/20 || 39 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||  [[webinar 2022 Demystifying Web Portals|Demystifying Web Portals]] || 2022/5/4 || 29 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[webinar 2022 Profiling GPU codes with Nsight|Profiling GPU codes with Nsight]] || 2022/5/18 || 23 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[webinar 2022 Speeding up Python code with Numba|Speeding up Python code with Numba]] || 2022/6/1 || &amp;#039;&amp;#039;&amp;#039;58&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[webinar 2022 Realtime display with Gnuplot|Realtime display with Gnuplot]] || 2022/6/15 || 24 ||&lt;br /&gt;
|-&lt;br /&gt;
|Isaac ||[[webinar 2022 Running PyTorch codes with multi-GPU/nodes on national systems|Running PyTorch codes with multi-GPU/nodes on national systems]] || 2022/6/29 || 54 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[webinar 2022 Working with Jupyter on Clusters|Working with Jupyter on Clusters]] || 2022/7/13 || 56 ||&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[webinar 2022 Visualizing job properties for wait time assessment|Visualizing job properties for wait time assessment]] || 2022/7/27 || 31 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[webinar 2022 Debugging with ParaView|Debugging with ParaView]] || 2022/8/10 || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[webinar 2022 Remote Development on Clusters with VSCode - Part II|Remote Development on Clusters with VSCode - Part II]] || 2022/9/7 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[webinar 2022 Creating and Distributing Python Packages|Creating and Distributing Python Packages]] || 2022/9/21 ||  45||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[webinar 2022 Transfer Learning with Tensorflow Hub|Transfer Learning with Tensorflow Hub]] || 2022/10/5 ||  26||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[webinar 2022 Strategies For Managing Filesystem Quotas|Strategies For Managing Filesystem Quotas]]|| 2022/10/19 || 24 ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[webinar 2022 Profiling &amp;amp; Performance Tuning CPU Programs| Profiling &amp;amp; Performance Tuning CPU Programs]] || 2022/11/2 ||  19||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2022 Video Editing with KDEnLive|Video Editing with KDEnLive]]   || 2022/11/16 ||21||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[webinar 2022 Deploying a simple Express.js Web App|Deploying a simple Express.js Web App]] || 2022/11/30 ||  12||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[webinar 2022 Which GPU should I use?|Which GPU should I use?]] || 2022/12/14 || 24 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||[[colloquium 2023 Performance: current and upcoming systems|Performance: current and upcoming systems ]] || 2023/1/11 || 31 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jeff Moon ||[[colloquium 2023 How Research Data Management (RDM) Intersects with ARC and Why Should I Care?|How Research Data Management (RDM) Intersects with ARC and Why Should I Care?]] || 2023/1/25 || 49 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[colloquium 2023 An introduction to MPLAPACK, a multi-precision linear algebra library| An introduction to MPLAPACK, a multi-precision linear algebra library]] || 2023/2/8 || 15 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[colloquium 2023 Accelerated DataFrame with Dask-cuDF on multiple GPUs|Accelerated DataFrame with Dask-cuDF on multiple GPUs]] || 2023/2/22 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[colloquium 2023 plotnine: R&amp;#039;s Grammar of Graphics in Python|plotnine: R&amp;#039;s Grammar of Graphics in Python]]|| 2023/3/8 || 29 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 11 (Starting March 2023) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James || [[colloquium 2023 Before and after submitting Octave/Matlab jobs on the clusters|Before and after submitting Octave/Matlab jobs on the clusters]] || 2023/3/22 || 10 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[colloquium 2023 Running MATLAB on Alliance&amp;#039;s Clusters|Running MATLAB on Alliance&amp;#039;s Clusters]] || 2023/4/5 || 27 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[colloquium 2023 CUDA, ROCm, oneAPI – All for One or One for All?|CUDA, ROCm, oneAPI – All for One or One for All?]] || 2023/4/19 || 33 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[colloquium 2023 Modern Approaches to Profiling in Python with Scalene|Modern Approaches to Profiling in Python with Scalene]] || 2023/5/3 || 29 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[colloquium 2023 Contrastive learning|Contrastive learning]] || 2023/5/17 || &amp;#039;&amp;#039;&amp;#039;63&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul || CANCELED   || 2023/5/31 || ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || CANCELED || 2023/6/14 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || CANCELED || 2023/6/28 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[colloquium 2023 Leveraging the power of Linux on Windows with WSL|Leveraging the power of Linux on Windows with WSL]]|| 2023/7/12 || 40 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||[[colloquium 2023 DIY job monitoring, from cache misses to CO2 footprint|DIY job monitoring, from cache misses to CO2 footprint]] || 2023/7/26 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[colloquium 2023 Automating scientific workflows with AiiDA|Automating scientific workflows with AiiDA]] || 2023/8/9 || 33 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || CANCELED || 2023/8/23 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul || CANCELED || 2023/9/6 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Colloquium 2023 Data Wrangling with Tidyverse|Data Wrangling with Tidyverse]]|| 2023/9/20 || 27 ||&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Colloquium 2023 Exploring job wait times on Alliance compute clusters: a holistic view| Exploring job wait times on Alliance compute clusters: a holistic view]] || 2023/10/4 || 27 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Colloquium 2023 p2rng – A C++ Parallel Random Number Generator Library for the Masses|p2rng – A C++ Parallel Random Number Generator Library for the Masses]] || 2023/10/18 || 7 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Colloquium 2023 Generalized End to End Python and Neuroscience Workflows on a Compute Cluster| Generalized End to End Python and Neuroscience Workflows on a Compute Cluster]] || 2023/11/1 || 17 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[Colloquium 2023 Squeeze more juice out of a single GPU in deep learning| Squeeze more juice out of a single GPU in deep learning]] || 2023/11/15 || 54 ||&lt;br /&gt;
|-&lt;br /&gt;
|Collin ||[[Colloquium 2023 Skorch: Training PyTorch models with scikit-learn|Skorch: Training PyTorch models with scikit-learn]] || 2023/11/29 || 34 ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || CANCELED || 2023/12/13 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Colloquium 2024 False Sharing and Contention in Parallel Codes|False Sharing and Contention in Parallel Codes]] || 2024/1/17 || 17 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Colloquium 2024 Introduction to GPU programming with OpenMP|Introduction to GPU programming with OpenMP]]|| 2024/1/31 || 30 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[Colloquium 2024 MySQL Part 3: Constraints and Joins|MySQL Part 3: Constraints and Joins]] || 2024/2/14 || 11 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[Colloquium 2024 Debugging your code with DDT|Debugging your code with DDT]] || 2024/2/28 || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||[[Colloquium 2024 Make: obsolete or elegant?|Make: obsolete or elegant?]] || 2024/3/13 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui || [[Colloquium 2024 Accelerating Graph Analysis on GPUs|Accelerating Graph Analysis on GPUs]]|| 2024/3/27 || 25 ||&lt;br /&gt;
|-&lt;br /&gt;
|Nastaran || [[Colloquium 2024 Accelerating data analytics with RAPIDS cuDF|Accelerating data analytics with RAPIDS cuDF]]|| 2024/4/10 || 17 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[Colloquium 2024 Data Wrangling with Tidyverse (part 2)|Data Wrangling with Tidyverse (part 2)]] || 2024/4/24 || 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Colloquium 2024 Compute Ontario Summer School 2024|Compute Ontario Summer School 2024]] || 2024/5/8 || 25 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 12 (Starting July 2024) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Colloquium 2024 Exploring Compute Usage from User Facing Portals on the National Clusters|Exploring Compute Usage from User Facing Portals on the National Clusters]] || 2024/7/17 || 13 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Colloquium 2024 The Emergence of WebAssembly (Wasm) in Scientific Computing|The Emergence of WebAssembly (Wasm) in Scientific Computing]] || 2024/8/7 || 12 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Colloquium 2024 Diagnosing Wasted Resources from User Facing Portals on the National Clusters|Diagnosing Wasted Resources from User Facing Portals on the National Clusters]] || 2024/8/14 || 21 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Colloquium 2024 Using machine learning to predict rare events|Using machine learning to predict rare events]]|| 2024/8/28 || &amp;#039;&amp;#039;&amp;#039;51&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|Collin ||[[Colloquium 2024 Debugging and Optimization of PyTorch Models|Debugging and Optimization of PyTorch Models]] || 2024/9/11 || 42 ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Colloquium 2024 Multidimensional Arrays in C++|Multidimensional Arrays in C++]] || 2024/9/25 || 13 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||[[Colloquium 2024 Introspection for Jobs: in-job monitoring of performance|Introspection for Jobs: in-job monitoring of performance]] || 2024/10/9 || 18 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Colloquium 2024 Parallel Programming: MPI I/O Basics|Parallel Programming: MPI I/O Basics]] || 2024/10/23 || 12 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[Colloquium 2024 Git Part 3: Managing Workflows|Git Part 3: Managing Workflows]] || 2024/11/6 || 10 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[Colloquium 2024 Survival guide for the upcoming GPU upgrades (more total power, but fewer GPUs)|Survival guide for the upcoming GPU upgrades (more total power, but fewer GPUs)]]  || 2024/11/20 || 30 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[Colloquium 2024 Data Wrangling with Tidyverse (part 3)|Data Wrangling with Tidyverse (part 3)]] || 2024/12/4 || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
|Nast ||[[Colloquium 2024 Unlocking the Power of Comet: Streamlining Machine Learning Experimentation|Unlocking the Power of Comet: Streamlining Machine Learning Experimentation]] || 2024/12/18 || 9 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||Canceled || 2025/1/15 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[Colloquium 2025 Converting Python code with NumPy to run on the GPU|Converting Python code with NumPy to run on the GPU]] || 2025/1/29 || 30 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Colloquium 2025 High-Performance Data Science with Modern C++: Xeus-Cling and G3P|High-Performance Data Science with Modern C++: Xeus-Cling and G3P]] || 2025/2/12 || 9 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[Colloquium 2025 Reduction of errors, or the pursuit of correctness|Reduction of errors, or the pursuit of correctness]] || 2025/2/26 || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Colloquium 2025 Preview of the &amp;quot;Job Scheduling and Monitoring&amp;quot; self-paced course|Preview of the &amp;quot;Job Scheduling and Monitoring&amp;quot; self-paced course]] || 2025/3/12 || 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Colloquium 2025 Revisiting Cython: Is it still effective?|Revisiting Cython: Is it still effective?]] || 2025/3/26 || 14 ||&lt;br /&gt;
|-&lt;br /&gt;
|Collin ||[[Colloquium 2025 Too Big to Train: Large model training in PyTorch with Fully Sharded Data Parallel|Too Big to Train: Large model training in PyTorch with Fully Sharded Data Parallel]] || 2025/4/9 || 23 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Colloquium 2025 Parallel Programming: MPI I/O Advanced Features|Parallel Programming: MPI I/O Advanced Features]] || 2025/4/23 || 10 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[Colloquium 2025 Checkpoints: why, when and how|Checkpoints: why, when and how]] || 2025/5/7 || 14 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||CANCELED || 2025/5/21 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Webinar 2025 Practical Multidimensional Arrays and Linear Algebra in C++|Practical Multidimensional Arrays and Linear Algebra in C++]] || 2025/7/2 || 10 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[Webinar 2025 Effortless Parallelism: Leveraging Julia Threads for High-Performance Scientific Computing|Effortless Parallelism: Leveraging Julia Threads for High-Performance Scientific Computing]] || 2025/7/16 || 18 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[Webinar 2025 Migrating to the upgraded national systems|Migrating to the upgraded national systems]] || 2025/7/30 || 143 ||&lt;br /&gt;
|-&lt;br /&gt;
|Nast ||[[Webinar 2025 Interactive Interfaces for Machine Learning Using Gradio|Interactive Interfaces for Machine Learning Using Gradio]]  || 2025/8/13 || 21 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[Webinar 2025 The Nibi&amp;#039;s web interface|The Nibi&amp;#039;s web interface]] || 2025/8/27 || 49 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[Webinar 2025 Installing your software packages with Spack|Installing your software packages with Spack]] || 2025/9/10 || 24 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[Webinar 2025 Running JupyterLab on Nibi|Running JupyterLab on Nibi]] || 2025/9/24 || 34 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[Webinar 2025 Running Linux on Windows and taking it with you anywhere|Running Linux on Windows and taking it with you anywhere]] || 2025/10/8 || 17 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 13 (Starting October 2025) ==&lt;br /&gt;
Entries with the asterisk next to the name are delivered as a CO colloquium. The entries without the asterisk will be delivered as a GIS, shifted by one hour (1-2pm).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Webinar 2025 What exactly is a Resource Allocation Competition (RAC) Compute Award?|What exactly is a Resource Allocation Competition (RAC) Compute Award?]] || 2025/10/22 || 10 || &lt;br /&gt;
|-&lt;br /&gt;
|Doug ||[[Webinar 2025 Running Engineering Related Packages Interactively on Nibi|Running Engineering Related Packages Interactively on Nibi]] || 2025/11/5 || 9 || &lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Webinar 2025 High-Performance Data Science with Modern C++: Ranx|High-Performance Data Science with Modern C++: Ranx]] || 2025/11/19 || 2 || &lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Webinar 2025 Serial Farms: Package options and when to switch to farming|Serial Farms: Package options and when to switch to farming]] || 2025/12/3 || 7 || &lt;br /&gt;
|-&lt;br /&gt;
|Weiguang* ||[[Webinar 2025 Illuminating the Black Box: Understanding AI Models with Integrated Gradients|Illuminating the Black Box: Understanding AI Models with Integrated Gradients]] || 2025/12/17 || 21 || &lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Webinar 2026 Floating-point Numbers Aren&amp;#039;t Mathematical Real Numbers|Floating-point Numbers Aren&amp;#039;t Mathematical Real Numbers]] || 2026/1/14 || 23 || &lt;br /&gt;
|-&lt;br /&gt;
|Collin* ||[[Webinar 2026 Too Big to Train 2: PyTorch&amp;#039;s Upgraded Interface for Fully Sharded Data Parallel|Too Big to Train 2: PyTorch&amp;#039;s Upgraded Interface for Fully Sharded Data Parallel]] || 2026/1/28 || 6 || &lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[Webinar 2026 Running Gaussian16 and NBO7 effectively on Nibi and Fir: Performance Issues|Running Gaussian16 and NBO7 effectively on Nibi and Fir: Performance Issues]]|| 2026/2/11 || 15 || &lt;br /&gt;
|-&lt;br /&gt;
|Ed* || [[Webinar 2026 Launching a Virtual Machine Using Nibi OpenStack Cloud|Launching a Virtual Machine Using Nibi OpenStack Cloud]]|| 2026/2/25 || 7 || &lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[Webinar 2026 Know your cluster: ways that national systems vary in performance|Know your cluster: ways that national systems vary in performance]]|| 2026/3/11 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Jinhui* ||[[Getting started with MLflow for machine learning and AI development|Getting started with MLflow on the Clusters]] || 2026/3/25 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Sergey || || 2026/4/8 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Tyson* || || 2026/4/22 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Baolai || || 2026/5/6 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Pawel || || 2026/7/15 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Nast || || 2026/7/29 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Doug || || 2026/8/12 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|James || || 2026/8/26 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Tyler || || 2026/9/9 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Armin || || 2026/9/23 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Paul || || 2026/10/7 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || || 2026/10/21 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Ed || || 2026/11/4 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Collin || || 2026/11/18 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Mark || || 2026/12/2 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || || 2026/12/16 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Baolai || || 2027/1/13 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Sergey || || 2027/1/27 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Jinhui || || 2027/2/10 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Tyson || || 2027/2/24 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Pawel || || 2027/3/10 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Nast || || 2027/3/24 ||  || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Reporting]]&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=General_Interest_Seminars&amp;diff=1203</id>
		<title>General Interest Seminars</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=General_Interest_Seminars&amp;diff=1203"/>
		<updated>2026-02-27T13:55:40Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* Round 13 (Starting October 2025) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page organizing/archiving general interest seminars (became a part of Compute Ontario Colloquia weekly series starting January 2023).&lt;br /&gt;
&lt;br /&gt;
== Round 1 (Starting May 2011) ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Dates !! Att&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || Serial farming and Monte Carlo for SHARCNET || 2011/05/18 || 15&lt;br /&gt;
|-&lt;br /&gt;
|David || Automating Tasks with bash || 2011/06/08 || 8&lt;br /&gt;
|-&lt;br /&gt;
|HughM || [[Debugging at SHARCNET]] || 2011/06/29 || 11&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || Introduction to Linux || 2011/07/20 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || Linear Algebra on GPU || 2011/09/21 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[MATLAB Parallel Computing Toolbox on SHARCNET]]|| 2011/10/12 || 7&lt;br /&gt;
|-&lt;br /&gt;
|Alex || Visualizing Data with Paraview || 2011/11/02 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || Managing your files effectively at SHARCNET with SVN || 2011/11/23 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || Introduction to Valgrind || 2012/03/14 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Nick ||Optimizing Tools for Development and Execution of Programs || 2012/04/04 || 14&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 2 (Starting Sept. 2012) ==&lt;br /&gt;
&lt;br /&gt;
Note: henceforth, there is expected to be a General Interest Seminar every month, on the third Wednesday at noon.  Please be responsible about this and plan for your month.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Month !! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
| SEP || Pawel || Why Would I Use GPUs? || 2012/09/26 || 12&lt;br /&gt;
|-&lt;br /&gt;
| OCT || Tyson  || Introduction to Valgrind || 2012/10/17 || 5&lt;br /&gt;
|-&lt;br /&gt;
| NOV || HughM || [[New User Seminar - Part 2]] || 2012/11/21 || 15&lt;br /&gt;
|-&lt;br /&gt;
| DEC || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| JAN || Isaac || Shell scripting || 2013/01/23 || 18&lt;br /&gt;
|-&lt;br /&gt;
| FEB || Jemmy || SHARCNET Software Support Updates || 2013/02/27 || 7&lt;br /&gt;
|-&lt;br /&gt;
| MAY || Sergey || Quick-n-dirty ways to run your serial code faster, in parallel || 2013/05/01 || 15&lt;br /&gt;
|-&lt;br /&gt;
| JUNE || David || Parallel programming patterns || 2013/06/ || &lt;br /&gt;
|-&lt;br /&gt;
| JUL || Alex || || 2013/07/ || &lt;br /&gt;
|-&lt;br /&gt;
| AUG || Baolai || || 2013/08/ || &lt;br /&gt;
|-&lt;br /&gt;
| SEP || Nick || || 2013/09/ ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 3 (Starting Sept. 2013) ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Month !! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
| NOV || Isaac || [[Introduction to Linux]] || 2013/11/20 || 32&lt;br /&gt;
|-&lt;br /&gt;
| DEC || Pawel || [[Why Would I Use GPUs?]] || 2013/12/18 || 22&lt;br /&gt;
|-&lt;br /&gt;
| JAN || Alex || [[Using parallel I/O in SHARCNET]] || 2014/01/15 || 10&lt;br /&gt;
|-&lt;br /&gt;
| FEB || Sergey || [[Profiling MPI codes with Allinea&amp;#039;s MAP]] || 2014/02/19 || 10&lt;br /&gt;
|-&lt;br /&gt;
| MAR || Baolai || [[Managing your files effectively at SHARCNET with SVN]] || 2014/03/19 || 8&lt;br /&gt;
|-&lt;br /&gt;
| APR || Tyson  || [[My code doesn&amp;#039;t crash -- why should I still use Valgrind?]] || 2014/04/16  || 17&lt;br /&gt;
|-&lt;br /&gt;
| MAY || Jemmy || [[Running MATLAB in SHARCNET]] || 2014/05/21 || 34&lt;br /&gt;
|-&lt;br /&gt;
| JUNE || Hugh || [[Webinar 2014 Debugging at SHARCNET|Debugging at SHARCNET]] || 2014/06/18 || 20&lt;br /&gt;
|-&lt;br /&gt;
| JUL || James || [[Webinar 2014 Transitioning from Matlab to Octave|Transitioning from Matlab to Octave]] || 2014/07/16 || ?&lt;br /&gt;
|-&lt;br /&gt;
| AUG ||  || || 2014/08/20 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Round 4 (Starting Sept. 2014) ==&lt;br /&gt;
&lt;br /&gt;
Note: with the new (biweekly) schedule, full time HPTC will have to give 2 seminars per year. &amp;#039;&amp;#039;&amp;#039;Please make at least one of these two seminars a new one&amp;#039;&amp;#039;&amp;#039; (the other one can be an old recycled one).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att !! Reg&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[webinar 2014 Advanced Message Passing in MPI: Using MPI Datatypes with Opaque C++ Types|Advanced Message Passing in MPI: Using MPI Datatypes with Opaque C++ Types]] || 2014/09/17 || 7 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[webinar 2014 An Introduction to Java Threads|An Introduction to Java Threads]] || 2014/10/01 || 9 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[webinar 2014 CUDA Basics and how to in SHARCNET|CUDA Basics and how to]] || 2014/10/15 || 20 || 31&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[webinar 2014 Is the Intel Xeon Phi right for me?|Is the Intel Xeon Phi right for me?]] || 2014/10/29 || 11 || 15&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Linear Algebra on GPU]] || 2014/11/12 || 11 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2014 The SHARCNET Desktop|The SHARCNET Desktop]] || 2014/11/26 || 17 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Weiguan || [[webinar 2014 Programming with VTK - a high-level visualization library |Programming with VTK - a high-level visualization library]] || 2014/12/10 || 18 || 14&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2015 SHARCNet file management|SHARCNet file management]] || 2015/01/07 || 15 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Hugh || [[webinar 2015 New User Seminar - Part 2|New User Seminar - Part 2]] || 2015/01/21 || 10 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[webinar 2015 Deep Learning on SHARCNET: From CPU to GPU cluster|Deep Learning on SHARCNET: From CPU to GPU cluster]] || 2015/02/04 || 40 || 22&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2015 Serial and parallel farming from A to Z|Serial and parallel farming from A to Z]] || 2015/02/18 || 30 || 23&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[The Relevance of OpenCL to HPC]] || 2015/03/04 || 15+20 live || 12&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[webinar 2015 Programming, best practices| Programming, best practices]] || 2015/03/18 || 23 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2015 Numerical libraries for scientific computing|A brief look at numerical libraries: The tools you can use]] || 2015/04/01 || 8 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[webinar 2015 An Update on MATLAB at SHARCNET| An Update on MATLAB at SHARCNET]] || 2015/04/15 || 7 || 13&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2015 High Performance Computing with Python| High Performance Computing with Python]] || 2015/04/29 || 39 || 29&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2015 Exploring a new approach to package management| Exploring a new approach to package management]] || 2015/05/14 || 6 || 3&lt;br /&gt;
|-&lt;br /&gt;
| || [[]] || 2015/05/27 || canceled&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[webinar 2015 Get the most out of SharcNET|Get the most out of SharcNET]] || 2015/06/10 || 25 || 23&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2015 Programming with Wt - A C++ library for developing stateful and highly interactive web applications|Programming with Wt - A C++ library for developing stateful and highly interactive web applications]] || 2015/06/24 || 7 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[Hybrid MPI and OpenMP Parallel Programming]] || 2015/07/08 || 17 || 13&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2015 Debugging and profiling of MPI programs| Debugging and profiling of MPI programs]] [[]] || 2015/07/22 || 15 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Baolai|| [[webinar 2015 Parallel programming without MPI - Using coarrays in Fortran|Parallel programming without MPI - Using coarrays in Fortran]] || 2015/08/05 || 10 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Isaac|| [[webinar 2015 Introduction to Parallel I/O| Introduction to Parallel I/O]] || 2015/08/19 || 18 || 16&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 5 (Starting Sept. 2015) ==&lt;br /&gt;
&lt;br /&gt;
Note: with the new (biweekly) schedule, full time HPTC will have to give 2 seminars per year. &amp;#039;&amp;#039;&amp;#039;Please make at least one of these two seminars a new one&amp;#039;&amp;#039;&amp;#039; (the other one can be an old recycled one).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att !! Reg&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[webinar 2015 cientific Visualization with ParaView| Scientific Visualization with ParaView]] || 2015/9/16 || 23 || 15&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2015 Profiling function vectorization in Matlab/Octave | Profiling function vectorization in Matlab/Octave ]] || 2015/9/30 || 11 || 4&lt;br /&gt;
|-&lt;br /&gt;
|Fei ||  [[webinar 2015 CUDA Profiling and Tuning| CUDA Profiling and Tuning]]  || 2015/10/14 || 18 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Hugh || [[webinar 2015 Fundamentals of working at the command line at SHARCNET| Fundamentals of working at the command line at SHARCNET]] || 2015/10/28 || 35 || 16&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[webinar 2015 Introduction to MPI - Part I| Introduction to MPI - Part I]]|| 2015/11/11 || 20 || 25&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2015 Introduction to MPI - Part II| Introduction to MPI - Part II]]|| 2015/11/25 || 10 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[webinar 2015 Parallel Design Patterns| Parallel Design Patterns]] || 2015/12/9 || 10 || 15&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2016 Automating Software Build Process using CMake| Automating Software Build Process using CMake]] || 2016/1/6 || 16 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[webinar 2016 Introduction to OpenMP Parallel Programming| Introduction to OpenMP Parallel Programming]]|| 2016/1/20 || 5 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2016 UNIX shell expansion: proper use and advanced forms| UNIX shell expansion: proper use and advanced forms]] || 2016/2/3 || 17 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2016 Parallel and high performance computing with R| Parallel and high performance computing with R]] || 2016/2/17 || 24 || 21&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[webinar 2016 Raphaël - a vector graphics library for web development|Raphaël - a vector graphics library for web development]] || 2016/3/2 || 6 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2016 Debugging OpenMP programs| Debugging OpenMP programs]] || 2016/3/16 || 1 || 3&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[webinar 2016 How to get started with OpenFOAM at SHARCNET|How to get started with OpenFOAM at SHARCNET]] || 2016/3/30 || 14 || 7&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2016 Quick tips for getting the most out of SHARCNET|Quick tips for getting the most out of SHARCNET]] || 2016/4/13 || 17 || 13&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[webinar 2016 Deep Learning on SHARCNET: Tools you can use|Deep Learning on SHARCNET: Tools you can use]] || 2016/4/27 || 38 || 23&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2016 Git and SHARCNET|Git and SHARCNET ]] || 2016/5/11 || 14 || 10&lt;br /&gt;
|-&lt;br /&gt;
|Doug || Canceled || 2016/5/25 || &lt;br /&gt;
|-&lt;br /&gt;
|Jose || [[webinar 2016 Introduction to Apache Spark on SHARCNET|Introduction to Apache Spark on SHARCNET]] || 2016/6/8 || 15 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Hugh || Canceled || 2016/6/22 || &lt;br /&gt;
|-&lt;br /&gt;
|Ed || Canceled || 2016/7/6 || &lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[Hybrid MPI and OpenMP Parallel Programming]] || 2016/7/20 || 7 || 10&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2016 Introduction to MPI - Part III|Introduction to MPI - Part III]] || 2016/8/3 || 0 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[webinar 2016 Introduction to Jupyter| Introduction to Jupyter]] || 2016/8/17 || 14 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2016 Automating Software Build Process using CMake| Automating Software Build Process using CMake]] || 2016/9/14 || 6 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2016 Introduction to The Shell|Introduction to The Unix Shell - Automating Your Work]] || 2016/9/28 || 23 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[webinar 2016 What Happened to My Job?  Cluster Scheduling In Detail|What Happened to My Job?  Cluster Scheduling In Detail]] || 2016/10/12 || 17 || 11&lt;br /&gt;
|-&lt;br /&gt;
|Isaac ||[[webinar 2016 Introduction To Python|Introduction To Python: simple practise of data analysis]] || 2016/10/26 || 24 || 30&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[webinar 2016 Debugging CUDA programs| Debugging CUDA programs]] || 2016/11/9 || 3 || 1&lt;br /&gt;
|-&lt;br /&gt;
|Doug || Canceled || 2016/11/23 || 0 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[webinar 2016 Defensive Programming : Best Practices|Defensive Programming : Best Practices]] || 2016/12/7 || 8 || 15&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 6 (Starting January 2017) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att !! Reg&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[webinar 2017 Introduction to ParaView|Introduction to ParaView]] || 2017/1/4 || 12 || 13&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2017 Navigating the research computing resource renewals coming in 2017|Navigating the research computing resource renewals coming in 2017]] || 2017/1/18 || 11 || 10&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[webinar 2017 Deep Learning on SHARCNET: Best Practices |Deep Learning on SHARCNET: Best Practices]] || 2017/2/1 || 23 || 24&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2017 Git and SHARCNET (part 2)|Git and SHARCNET (part 2)]]|| 2017/2/15 || 5 || 13&lt;br /&gt;
|-&lt;br /&gt;
|Jose || [[webinar 2017 Machine Learning with Spark at SHARCNET|Machine Learning with Spark at SHARCNET ]]  || 2017/3/1 || 12 || 28&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2017 High Performance Computing with Python|High Performance Computing with Python]]|| 2017/3/15 || 27 || 37&lt;br /&gt;
|-&lt;br /&gt;
|Paul || CANCELED (speaker not ready) || 2017/3/29 || || &lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2017 Modern Fortran: Concurrency |Modern Fortran: Concurrency and Parallelism]] || 2017/4/12 || 18 || 22&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||  [[webinar 2017 Automating Software Build Process using CMake – Part II|Automating Software Build Process using CMake – Part II]] || 2017/4/26 || 2 || 1&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[OpenMP 4.x: New features and Protocols]] || 2017/5/10 || 9 || 3&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[Webinar 2017 How to compile/run OpenFOAM in SHARCNET |How to compile/run OpenFOAM in SHARCNET]] || 2017/5/24 || 10 || 7&lt;br /&gt;
|-&lt;br /&gt;
|Ed || CANCELED (one attendee)|| 2017/6/7 || 1 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2017 What&amp;#039;s new and exciting about Graham&amp;#039;s GPUs| What&amp;#039;s new and exciting about Graham&amp;#039;s GPUs]] || 2017/6/21 || 27 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Webinar 2017 Train models to recognize hand-written digits using Tensorflow|Train models to recognize hand-written digits using Tensorflow]] || 2017/7/5 || 24 || 23&lt;br /&gt;
|-&lt;br /&gt;
|James || [[Webinar 2017 How jobs are scheduled to run on Graham and Cedar|How jobs are scheduled to run on Graham and Cedar]] || 2017/7/19 || 55 || 34&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2017 Intel MPI Library Cluster Edition on Graham|Intel MPI Library Cluster Edition on Graham]] || 2017/8/2 || 6 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Webinar 2017 Packaging with Nix|Packaging with Nix]] || 2017/8/16 || 6 || 4&lt;br /&gt;
|-&lt;br /&gt;
|Kamil || [[Webinar 2017 Partitions and scheduling, running jobs effectively on Graham and Cedar | Partitions and scheduling, running jobs effectively on Graham and Cedar]] || 2017/9/13 || 34 || 24&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[Webinar 2017 Training Neural Networks with hundreds of GPUs on Graham and Cedar | Training Neural Networks with hundreds of GPUs on Graham and Cedar]] || 2017/9/20 || 46 || 36&lt;br /&gt;
|-&lt;br /&gt;
|Mohamed|| [[Webinar 2017 Introduction to SHARCNET Cloud|Introduction to SHARCNET Cloud]] || 2017/9/27 || 19 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Webinar 2017 Linear Algebra on GPU| Linear Algebra on GPU]] || 2017/10/11 || 20 || 16&lt;br /&gt;
|-&lt;br /&gt;
|Jose || [[Webinar 2017 Machine Learning using Jupyter Notebooks on Graham|Machine Learning using Jupyter Notebooks on Graham]]  || 2017/10/25 || 36  || 34&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[Webinar 2017 Introduction to LINUX/SHELL programming in SHARCNET|Introduction to LINUX/SHELL programming in SHARCNET]] || 2017/11/8 || 31 || 33&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2017 Serial farming on Graham|Serial farming on Graham]] || 2017/11/22 || 22 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[Webinar 2017 Introduction to Eclipse for debugging - Part I|Introduction to Eclipse for debugging - Part I]] || 2017/12/6 || 10 || 4&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2018 Intro to Intel Performance Tools|Intro to Intel Performance Tools]] || 2018/1/17 || 8 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[Webinar 2018 Deploying a Full Stack Web Solution on the Cloud for Cluster Access|Deploying a Full Stack Web Solution on the Cloud for Cluster Access]] || 2018/1/31 || 22 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[Webinar 2018 Singularity|Singularity]] || 2018/2/14 || 13 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[Webinar 2018 Visual Studio Code - Your Next Coding Companion for Advanced Research Computing|Visual Studio Code - Your Next Coding Companion for Advanced Research Computing]] || 2018/2/28 || 14 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[Webinar 2018 Using SSH for Good, not Evil|Using SSH for Good, not Evil]] || 2018/3/14 || 17 || 16&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 7 (Starting March 2018) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att !! Reg&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Using Computational Chemistry software effectively on Graham]] || 2018/3/28 || 14 || 4&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2018 Improving your Python programs with NumPy and SciPy|Improving your Python programs with NumPy and SciPy]] || 2018/4/11 || 24 || 22&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2018 All about job wait times in the Graham queue|All about job wait times in the Graham queue ]] || 2018/4/25 || 31 || 22&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2018 Summer School preview|Summer School preview]] || 2018/5/9 || 18 || 14&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || CANCELED || 2018/5/23 || 0 || &lt;br /&gt;
|-&lt;br /&gt;
|Jose || CANCELED || 2018/6/6 || 0 || &lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[webinar 2018 Fundamentals of working at the command line at Graham|Fundamentals of working at the command line at Graham]] || 2018/6/20 || 30 || 28&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2018 Debugging on Graham with DDT|Debugging on Graham with DDT]] || 2018/7/4 || 6 || 7&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||  [[webinar 2018 Mixed Source C, C++, and Fortran Programs|Mixed Source C, C++, and Fortran Programs]] || 2018/7/18 || 18 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||  [[webinar 2018 Introduction to MySQL on Graham|Introduction to MySQL on Graham]]|| 2018/8/1 || 15 || 14&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||  [[webinar 2018 Harnessing the Power of Heterogeneous Computing using Boost.Compute + OpenCL|Harnessing the Power of Heterogeneous Computing using Boost.Compute + OpenCL ]] || 2018/8/15 || 7 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2018 Concurrent File I/O by Multiple Processes|Concurrent File I/O by Multiple Processes]] || 2018/9/12 || 13 || 7&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[webinar 2018 The Benefits of GLOST for Many Jobs|The Benefits of GLOST for Many Jobs]] || 2018/9/26 || 9 || 9&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2018 Understand (and potentially reduce) job wait times by examining scheduler configuration, load in the queue and account usage|Understand (and potentially reduce) job wait times by examining scheduler configuration, load in the queue and account usage]] || 2018/10/10 || 23 || 18&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[webinar 2018 Stock Prediction Using Recurrent Neural Network|Stock Prediction Using Recurrent Neural Network]] || 2018/10/24 || 33 || 29&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[webinar 2018 Using MATLAB effectively on Graham and Cedar|Using MATLAB effectively on Graham and Cedar]] || 2018/11/7 || 33 || -&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[webinar 2018 MySQL Part 2:  Relations and Joins|MySQL Part 2:  Relations and Joins]] || 2018/11/21 || 5 || -&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[webinar 2018 Using Pseudorandom Number Sequences in C++|Using Pseudorandom Number Sequences in C++]]  || 2018/12/5 || 7 || -&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2018 Code profiling on Graham|Code profiling on Graham]]|| 2018/12/19 || 26 || -&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2018 The Monad Understanding Hurdle|The Monad Understanding Hurdle]]|| 2019/1/16 || 9 || -&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[webinar 2018 Best practices for newbies on Graham|Best practices for newbies on Graham]]|| 2019/1/30 || 35 || -&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[webinar 2019 What Happened To My Job?|What Happened To My Job? ]]|| 2019/2/13 || 15 || &lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2019 Dipping into C++17 Parallel Algorithms with Intel&amp;#039;s Parallel STL|Dipping into C++17 Parallel Algorithms with Intel&amp;#039;s Parallel STL]] || 2019/2/27 || 14 || &lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[webinar 2019 Exploring the Use of Application Software on Grahams Visualization Machine|Exploring the Use of Application Software on Grahams Visualization Machine]] || 2019/3/13 || 35 || &lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2019 Introduction to parallel programming with MPI and Python|Introduction to parallel programming with MPI and Python]] || 2019/3/27 || 25 || - &lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2019 Exploring Octave package dataframe|Exploring Octave package dataframe]] || 2019/4/10 || 2 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 8 (Starting April 2019) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James || [[Webinar 2019 PRE and POST production on Graham|PRE and POST production on Graham]] || 2019/4/24 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Webinar 2019 Pull your own data into ParaView|Pull your own data into ParaView]] || 2019/5/8 || 31&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[The New Development of OpenMP]] || 2019/5/22 || 22&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[Webinar 2019 Julia - A first perspective|Julia - A first perspective]] || 2019/6/5 || 45&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[Webinar 2019 Using C++&amp;#039;s Parallel Algorithms|Using C++&amp;#039;s Parallel Algorithms]]|| 2019/6/19 || 14&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || CANCELED || 2019/7/3 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Webinar 2019 The Monad Understanding Hurdle (Part 2)|The Monad Understanding Hurdle (Part 2)]] || 2019/7/17 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[Webinar 2019 Fundamentals of working at the command line at Graham| Fundamentals of working at the command line at Graham ]] || 2019/7/31 || 54&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[Webinar 2019 Is It Possible to Use C++ Parallel Algorithms in a Distributed Memory Setup (i.e. MPI)?|Is It Possible to Use C++ Parallel Algorithms in a Distributed Memory Setup (i.e. MPI)?]] || 2019/8/14 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Doug || CANCELED || 2019/9/11 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[Webinar 2019 Using reduced numerical precision on Pascal, Volta and Turing GPUs|Using reduced numerical precision on Pascal, Volta and Turing GPUs]] || 2019/9/25 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui || [[Webinar 2019 Introduction to scalable computing with Dask in Python| Introduction to scalable computing with Dask in Python ]] || 2019/10/9 || 40&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2019 Leveraging Compiler Optimization Reports|Leveraging Compiler Optimization Reports ]] || 2019/10/23 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Webinar 2019 Using Multiple GPUs in Tensorflow|Using Multiple GPUs in Tensorflow]] || 2019/11/6 || 18&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[Webinar 2019 Julia: A second perspective|Julia: A second perspective]]  || 2019/11/20 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[Webinar 2019 Docker|Docker]]|| 2019/12/4 || 27&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Webinar 2019 Introduction to HPC Programming Language Chapel: Base Language Overview |Introduction to HPC Programming Language Chapel: Base Language Overview ]] || 2019/12/18 || 10&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Webinar 2019 The Monad Understanding Hurdle (Part 3)|The Monad Understanding Hurdle (Part 3)]] || 2020/1/15 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[Webinar 2019 Singularity 3.5|Singularity 3.5]]|| 2020/1/29 || 27&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2019 New User Seminar, Part II|New User Seminar, Part II]] || 2020/2/12 || 23&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[Webinar_2020_how_to_run_AI_programs_in_Graham| How to Run AI programs in Graham]]|| 2020/2/26 || 44&lt;br /&gt;
|-&lt;br /&gt;
|Baolai|| [[Julia: A third perspective - parallel computing explained]] || 2020/3/11 || 18&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[Webinar_2020_Introduction_to_scalable_computing_with_Dask_in_Python_(Continued)|Introduction to scalable computing with Dask in Python (Continued)]] || 2020/3/25 || 15&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||  [[Webinar 2020 Using SSHFS to make CC storage more accessible|Using SSHFS to make CC storage more accessible]] || 2020/4/8 || 21&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Webinar 2020 Collaborative Groups in CUDA|Collaborative Groups in CUDA]] || 2020/4/22 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Doug||CANCELED || 2020/5/6 || &lt;br /&gt;
|-&lt;br /&gt;
|Armin ||CANCELED || 2020/5/20 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 9 (Starting July 2020) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Webinar 2020 Cython: A First Look|Cython: A First Look]] || 2020/7/8 || 60&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Webinar 2020 Visualizing job usage on the Compute Canada systems with the ViewClust Python package|Visualizing job usage on the Compute Canada systems with the ViewClust Python package]] || 2020/7/15 || 33&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Webinar 2020 How to Use C++ Parallel Algorithms in a Distributed Memory Setup (i.e. MPI)|How to Use C++ Parallel Algorithms in a Distributed Memory Setup (i.e. MPI)]] || 2020/7/29 || 15 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergio ||[[Webinar 2020 Bioinformatics in the terminal: Tips and tricks to make your life easier|Bioinformatics in the terminal: Tips and tricks to make your life easier]] || 2020/8/12 || 47 ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2020 Options for Solving Jobs with Many Tasks|Options for Solving Jobs with Many Tasks]]|| 2020/9/9 || 13 || 30&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[Webinar 2020 Is my neural network too big to fit into GPU?|Is my neural network too big to fit into GPU?]] || 2020/9/23 || 59 || 93&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Webinar 2020 Introduction to HPC Programming Language Chapel: Parallel Approaches|Introduction to HPC Programming Language Chapel: Parallel Approaches ]]|| 2020/10/7 || 7 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[Webinar 2020 Introduction to Git|Introduction to Git]] || 2020/10/21 || 50 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[Webinar 2020 Julia - Parallel computing revisited|Julia: Parallel computing revisited]] || 2020/11/4 || 8 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[Webinar 2020 NixOS: The second largest and the most up-to-date Linux distribution|NixOS: The second largest and the most up-to-date Linux distribution]] || 2020/11/18 || 18 ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Webinar 2020 Practical Singularity|Practical Singularity]] || 2020/12/2 || 28 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[Webinar 2020 Offload Analytics Workload in Python to GPUs with RAPIDS|Offload Analytics Workload in Python to GPUs with RAPIDS]]  || 2020/12/16 || 46 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[Webinar 2021 Programming GPUs with Fortran|Programming GPUs with Fortran]] || 2021/1/13 || 25 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[Webinar 2021 Computing in arbitrary precision|Computing in arbitrary precision]] || 2021/1/27 || 13 ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Isaac&amp;#039;&amp;#039;&amp;#039; || [[Webinar 2021 Some ML practices running GPUs in Compute Canada system|Using multiple GPUs for Machine Learning]] || 2021/2/10 || &amp;#039;&amp;#039;&amp;#039;63&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|James || [[Webinar 2021 Generating interactive visualizations with Plotly on Graham|Generating interactive visualizations with Plotly on Graham]]|| 2021/2/24 || 47 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Webinar 2021 Scalable Memory Allocation for Parallel Algorithms| Scalable Memory Allocation for Parallel Algorithms]] || &amp;#039;&amp;#039;&amp;#039;2021/3/17&amp;#039;&amp;#039;&amp;#039; || 7 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergio ||[[Webinar 2021 FauxConda: ways to use Conda without conda|FauxConda: ways to use Conda without conda]] || 2021/3/24 || 27 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[An Update to ADF/AMS software on Graham]]|| 2021/4/7 || 14 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2021 Debugging your code with DDT|Debugging your code with DDT]] || 2021/4/21 || 15 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler || [[Webinar 2021 Pandas Recipes for New Python Users|Pandas Recipes for New Python Users]] || 2021/5/5 || 53 ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2021 DIY Local Program Installation|DIY Local Program Installation]] || 2021/5/19 || 15 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||CANCELED  || 2021/6/2 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Webinar 2021 Learning from competition|Learning from competition]] || 2021/6/16 || 103 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || CANCELED || 2021/6/30 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[Webinar 2021 Hybrid MPI|Hybrid MPI]] || 2021/7/14 || 41 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[Webinar 2021 Comparing CPU, GPU, memory, interconnect and filesystem performance across National systems|Comparing CPU, GPU, memory, interconnect and filesystem performance across National systems]]|| 2021/7/28 || 22 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[Webinar 2021 Git Part 2 – Common Git Commands|Git Part 2 – Common Git Commands]] || 2021/8/11 || 41 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[Webinar 2021 Eclipse Part2|Introduction to Eclipse Part 2 - Developing and debugging MPI code]] || 2021/9/8 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Webinar 2021 ROCm: AMD&amp;#039;s platform for GPU computing|ROCm: AMD&amp;#039;s platform for GPU computing]] || 2021/9/22 || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2021 META: running a large number of jobs conveniently|META: running a large number of jobs conveniently]]|| 2021/10/6 || 74 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[Webinar 2021 Scaling Hyperparameter Tuning with Dask-ML on Clusters|Scaling Hyperparameter Tuning with Dask-ML on Clusters]] || 2021/10/20 || 51 ||&lt;br /&gt;
|-&lt;br /&gt;
|Isaac ||[[Webinar 2021 Running machine learning example (MNIST) on multi-cores/nodes in Graham |Running machine learning example (MNIST) on multi-cores/nodes in Graham]] || 2021/11/3 || 96 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Webinar 2021 The Layered Grammar of Graphics (gglot2/plotnine)|The Layered Grammar of Graphics (gglot2/plotnine)]] || 2021/11/17 || 59 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[Webinar 2021 Eclipse Part3|Introduction to Eclipse Part 3 - Debugging MPI code]] || 2021/12/1 || 9 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 10 (Starting December 2021) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[webinar 2021 Tips for identifying when job wait times can be reduced by job submission parameter changes|Tips for identifying when job wait times can be reduced by job submission parameter changes]] || 2021/12/15 || 68 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2022 Remote Development on Clusters with VSCode|Remote Development on Clusters with VSCode]] || 2022/1/12 || 62 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergio || [[webinar 2022 From histograms to dashboards: An introduction to data visualization with Python|From histograms to dashboards: An introduction to data visualization with Python]]|| 2022/1/26 || &amp;#039;&amp;#039;&amp;#039;116&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[webinar 2022 Conquering the Scheduler|Conquering the Scheduler]] || 2022/2/9 || 49 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[webinar 2022 Gaussian16 and NBO7 on Graham and Cedar|Gaussian16 and NBO7 on Graham and Cedar]] || 2022/2/23 || 50 ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug ||[[webinar 2022 More Options for Solving Jobs with Many Tasks|More Options for Solving Jobs with Many Tasks]] || 2022/3/9 || 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[webinar 2022 Using Tensorboard to debug and profile neural network models|Using Tensorboard to debug and profile neural network models]] || 2022/3/23 || 35 ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[webinar 2022 Apptainer|Apptainer]] || 2022/4/6 || 39 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[webinar 2022 10 ways to optimize your workflow|10 ways to optimize your workflow]]|| 2022/4/20 || 39 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||  [[webinar 2022 Demystifying Web Portals|Demystifying Web Portals]] || 2022/5/4 || 29 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[webinar 2022 Profiling GPU codes with Nsight|Profiling GPU codes with Nsight]] || 2022/5/18 || 23 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[webinar 2022 Speeding up Python code with Numba|Speeding up Python code with Numba]] || 2022/6/1 || &amp;#039;&amp;#039;&amp;#039;58&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[webinar 2022 Realtime display with Gnuplot|Realtime display with Gnuplot]] || 2022/6/15 || 24 ||&lt;br /&gt;
|-&lt;br /&gt;
|Isaac ||[[webinar 2022 Running PyTorch codes with multi-GPU/nodes on national systems|Running PyTorch codes with multi-GPU/nodes on national systems]] || 2022/6/29 || 54 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[webinar 2022 Working with Jupyter on Clusters|Working with Jupyter on Clusters]] || 2022/7/13 || 56 ||&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[webinar 2022 Visualizing job properties for wait time assessment|Visualizing job properties for wait time assessment]] || 2022/7/27 || 31 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[webinar 2022 Debugging with ParaView|Debugging with ParaView]] || 2022/8/10 || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[webinar 2022 Remote Development on Clusters with VSCode - Part II|Remote Development on Clusters with VSCode - Part II]] || 2022/9/7 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[webinar 2022 Creating and Distributing Python Packages|Creating and Distributing Python Packages]] || 2022/9/21 ||  45||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[webinar 2022 Transfer Learning with Tensorflow Hub|Transfer Learning with Tensorflow Hub]] || 2022/10/5 ||  26||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[webinar 2022 Strategies For Managing Filesystem Quotas|Strategies For Managing Filesystem Quotas]]|| 2022/10/19 || 24 ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[webinar 2022 Profiling &amp;amp; Performance Tuning CPU Programs| Profiling &amp;amp; Performance Tuning CPU Programs]] || 2022/11/2 ||  19||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2022 Video Editing with KDEnLive|Video Editing with KDEnLive]]   || 2022/11/16 ||21||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[webinar 2022 Deploying a simple Express.js Web App|Deploying a simple Express.js Web App]] || 2022/11/30 ||  12||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[webinar 2022 Which GPU should I use?|Which GPU should I use?]] || 2022/12/14 || 24 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||[[colloquium 2023 Performance: current and upcoming systems|Performance: current and upcoming systems ]] || 2023/1/11 || 31 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jeff Moon ||[[colloquium 2023 How Research Data Management (RDM) Intersects with ARC and Why Should I Care?|How Research Data Management (RDM) Intersects with ARC and Why Should I Care?]] || 2023/1/25 || 49 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[colloquium 2023 An introduction to MPLAPACK, a multi-precision linear algebra library| An introduction to MPLAPACK, a multi-precision linear algebra library]] || 2023/2/8 || 15 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[colloquium 2023 Accelerated DataFrame with Dask-cuDF on multiple GPUs|Accelerated DataFrame with Dask-cuDF on multiple GPUs]] || 2023/2/22 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[colloquium 2023 plotnine: R&amp;#039;s Grammar of Graphics in Python|plotnine: R&amp;#039;s Grammar of Graphics in Python]]|| 2023/3/8 || 29 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 11 (Starting March 2023) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James || [[colloquium 2023 Before and after submitting Octave/Matlab jobs on the clusters|Before and after submitting Octave/Matlab jobs on the clusters]] || 2023/3/22 || 10 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[colloquium 2023 Running MATLAB on Alliance&amp;#039;s Clusters|Running MATLAB on Alliance&amp;#039;s Clusters]] || 2023/4/5 || 27 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[colloquium 2023 CUDA, ROCm, oneAPI – All for One or One for All?|CUDA, ROCm, oneAPI – All for One or One for All?]] || 2023/4/19 || 33 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[colloquium 2023 Modern Approaches to Profiling in Python with Scalene|Modern Approaches to Profiling in Python with Scalene]] || 2023/5/3 || 29 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[colloquium 2023 Contrastive learning|Contrastive learning]] || 2023/5/17 || &amp;#039;&amp;#039;&amp;#039;63&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul || CANCELED   || 2023/5/31 || ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || CANCELED || 2023/6/14 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || CANCELED || 2023/6/28 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[colloquium 2023 Leveraging the power of Linux on Windows with WSL|Leveraging the power of Linux on Windows with WSL]]|| 2023/7/12 || 40 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||[[colloquium 2023 DIY job monitoring, from cache misses to CO2 footprint|DIY job monitoring, from cache misses to CO2 footprint]] || 2023/7/26 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[colloquium 2023 Automating scientific workflows with AiiDA|Automating scientific workflows with AiiDA]] || 2023/8/9 || 33 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || CANCELED || 2023/8/23 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul || CANCELED || 2023/9/6 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Colloquium 2023 Data Wrangling with Tidyverse|Data Wrangling with Tidyverse]]|| 2023/9/20 || 27 ||&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Colloquium 2023 Exploring job wait times on Alliance compute clusters: a holistic view| Exploring job wait times on Alliance compute clusters: a holistic view]] || 2023/10/4 || 27 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Colloquium 2023 p2rng – A C++ Parallel Random Number Generator Library for the Masses|p2rng – A C++ Parallel Random Number Generator Library for the Masses]] || 2023/10/18 || 7 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Colloquium 2023 Generalized End to End Python and Neuroscience Workflows on a Compute Cluster| Generalized End to End Python and Neuroscience Workflows on a Compute Cluster]] || 2023/11/1 || 17 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[Colloquium 2023 Squeeze more juice out of a single GPU in deep learning| Squeeze more juice out of a single GPU in deep learning]] || 2023/11/15 || 54 ||&lt;br /&gt;
|-&lt;br /&gt;
|Collin ||[[Colloquium 2023 Skorch: Training PyTorch models with scikit-learn|Skorch: Training PyTorch models with scikit-learn]] || 2023/11/29 || 34 ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || CANCELED || 2023/12/13 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Colloquium 2024 False Sharing and Contention in Parallel Codes|False Sharing and Contention in Parallel Codes]] || 2024/1/17 || 17 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Colloquium 2024 Introduction to GPU programming with OpenMP|Introduction to GPU programming with OpenMP]]|| 2024/1/31 || 30 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[Colloquium 2024 MySQL Part 3: Constraints and Joins|MySQL Part 3: Constraints and Joins]] || 2024/2/14 || 11 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[Colloquium 2024 Debugging your code with DDT|Debugging your code with DDT]] || 2024/2/28 || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||[[Colloquium 2024 Make: obsolete or elegant?|Make: obsolete or elegant?]] || 2024/3/13 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui || [[Colloquium 2024 Accelerating Graph Analysis on GPUs|Accelerating Graph Analysis on GPUs]]|| 2024/3/27 || 25 ||&lt;br /&gt;
|-&lt;br /&gt;
|Nastaran || [[Colloquium 2024 Accelerating data analytics with RAPIDS cuDF|Accelerating data analytics with RAPIDS cuDF]]|| 2024/4/10 || 17 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[Colloquium 2024 Data Wrangling with Tidyverse (part 2)|Data Wrangling with Tidyverse (part 2)]] || 2024/4/24 || 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Colloquium 2024 Compute Ontario Summer School 2024|Compute Ontario Summer School 2024]] || 2024/5/8 || 25 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 12 (Starting July 2024) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Colloquium 2024 Exploring Compute Usage from User Facing Portals on the National Clusters|Exploring Compute Usage from User Facing Portals on the National Clusters]] || 2024/7/17 || 13 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Colloquium 2024 The Emergence of WebAssembly (Wasm) in Scientific Computing|The Emergence of WebAssembly (Wasm) in Scientific Computing]] || 2024/8/7 || 12 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Colloquium 2024 Diagnosing Wasted Resources from User Facing Portals on the National Clusters|Diagnosing Wasted Resources from User Facing Portals on the National Clusters]] || 2024/8/14 || 21 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Colloquium 2024 Using machine learning to predict rare events|Using machine learning to predict rare events]]|| 2024/8/28 || &amp;#039;&amp;#039;&amp;#039;51&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|Collin ||[[Colloquium 2024 Debugging and Optimization of PyTorch Models|Debugging and Optimization of PyTorch Models]] || 2024/9/11 || 42 ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Colloquium 2024 Multidimensional Arrays in C++|Multidimensional Arrays in C++]] || 2024/9/25 || 13 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||[[Colloquium 2024 Introspection for Jobs: in-job monitoring of performance|Introspection for Jobs: in-job monitoring of performance]] || 2024/10/9 || 18 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Colloquium 2024 Parallel Programming: MPI I/O Basics|Parallel Programming: MPI I/O Basics]] || 2024/10/23 || 12 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[Colloquium 2024 Git Part 3: Managing Workflows|Git Part 3: Managing Workflows]] || 2024/11/6 || 10 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[Colloquium 2024 Survival guide for the upcoming GPU upgrades (more total power, but fewer GPUs)|Survival guide for the upcoming GPU upgrades (more total power, but fewer GPUs)]]  || 2024/11/20 || 30 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[Colloquium 2024 Data Wrangling with Tidyverse (part 3)|Data Wrangling with Tidyverse (part 3)]] || 2024/12/4 || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
|Nast ||[[Colloquium 2024 Unlocking the Power of Comet: Streamlining Machine Learning Experimentation|Unlocking the Power of Comet: Streamlining Machine Learning Experimentation]] || 2024/12/18 || 9 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||Canceled || 2025/1/15 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[Colloquium 2025 Converting Python code with NumPy to run on the GPU|Converting Python code with NumPy to run on the GPU]] || 2025/1/29 || 30 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Colloquium 2025 High-Performance Data Science with Modern C++: Xeus-Cling and G3P|High-Performance Data Science with Modern C++: Xeus-Cling and G3P]] || 2025/2/12 || 9 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[Colloquium 2025 Reduction of errors, or the pursuit of correctness|Reduction of errors, or the pursuit of correctness]] || 2025/2/26 || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Colloquium 2025 Preview of the &amp;quot;Job Scheduling and Monitoring&amp;quot; self-paced course|Preview of the &amp;quot;Job Scheduling and Monitoring&amp;quot; self-paced course]] || 2025/3/12 || 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Colloquium 2025 Revisiting Cython: Is it still effective?|Revisiting Cython: Is it still effective?]] || 2025/3/26 || 14 ||&lt;br /&gt;
|-&lt;br /&gt;
|Collin ||[[Colloquium 2025 Too Big to Train: Large model training in PyTorch with Fully Sharded Data Parallel|Too Big to Train: Large model training in PyTorch with Fully Sharded Data Parallel]] || 2025/4/9 || 23 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Colloquium 2025 Parallel Programming: MPI I/O Advanced Features|Parallel Programming: MPI I/O Advanced Features]] || 2025/4/23 || 10 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[Colloquium 2025 Checkpoints: why, when and how|Checkpoints: why, when and how]] || 2025/5/7 || 14 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||CANCELED || 2025/5/21 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Webinar 2025 Practical Multidimensional Arrays and Linear Algebra in C++|Practical Multidimensional Arrays and Linear Algebra in C++]] || 2025/7/2 || 10 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[Webinar 2025 Effortless Parallelism: Leveraging Julia Threads for High-Performance Scientific Computing|Effortless Parallelism: Leveraging Julia Threads for High-Performance Scientific Computing]] || 2025/7/16 || 18 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[Webinar 2025 Migrating to the upgraded national systems|Migrating to the upgraded national systems]] || 2025/7/30 || 143 ||&lt;br /&gt;
|-&lt;br /&gt;
|Nast ||[[Webinar 2025 Interactive Interfaces for Machine Learning Using Gradio|Interactive Interfaces for Machine Learning Using Gradio]]  || 2025/8/13 || 21 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[Webinar 2025 The Nibi&amp;#039;s web interface|The Nibi&amp;#039;s web interface]] || 2025/8/27 || 49 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[Webinar 2025 Installing your software packages with Spack|Installing your software packages with Spack]] || 2025/9/10 || 24 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[Webinar 2025 Running JupyterLab on Nibi|Running JupyterLab on Nibi]] || 2025/9/24 || 34 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[Webinar 2025 Running Linux on Windows and taking it with you anywhere|Running Linux on Windows and taking it with you anywhere]] || 2025/10/8 || 17 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 13 (Starting October 2025) ==&lt;br /&gt;
Entries with the asterisk next to the name are delivered as a CO colloquium. The entries without the asterisk will be delivered as a GIS, shifted by one hour (1-2pm).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Webinar 2025 What exactly is a Resource Allocation Competition (RAC) Compute Award?|What exactly is a Resource Allocation Competition (RAC) Compute Award?]] || 2025/10/22 || 10 || &lt;br /&gt;
|-&lt;br /&gt;
|Doug ||[[Webinar 2025 Running Engineering Related Packages Interactively on Nibi|Running Engineering Related Packages Interactively on Nibi]] || 2025/11/5 || 9 || &lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Webinar 2025 High-Performance Data Science with Modern C++: Ranx|High-Performance Data Science with Modern C++: Ranx]] || 2025/11/19 || 2 || &lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Webinar 2025 Serial Farms: Package options and when to switch to farming|Serial Farms: Package options and when to switch to farming]] || 2025/12/3 || 7 || &lt;br /&gt;
|-&lt;br /&gt;
|Weiguang* ||[[Webinar 2025 Illuminating the Black Box: Understanding AI Models with Integrated Gradients|Illuminating the Black Box: Understanding AI Models with Integrated Gradients]] || 2025/12/17 || 21 || &lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Webinar 2026 Floating-point Numbers Aren&amp;#039;t Mathematical Real Numbers|Floating-point Numbers Aren&amp;#039;t Mathematical Real Numbers]] || 2026/1/14 || 23 || &lt;br /&gt;
|-&lt;br /&gt;
|Collin* ||[[Webinar 2026 Too Big to Train 2: PyTorch&amp;#039;s Upgraded Interface for Fully Sharded Data Parallel|Too Big to Train 2: PyTorch&amp;#039;s Upgraded Interface for Fully Sharded Data Parallel]] || 2026/1/28 || 6 || &lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[Webinar 2026 Running Gaussian16 and NBO7 effectively on Nibi and Fir: Performance Issues|Running Gaussian16 and NBO7 effectively on Nibi and Fir: Performance Issues]]|| 2026/2/11 || 15 || &lt;br /&gt;
|-&lt;br /&gt;
|Ed* || [[Webinar 2026 Launching a Virtual Machine Using Nibi OpenStack Cloud|Launching a Virtual Machine Using Nibi OpenStack Cloud]]|| 2026/2/25 || 7 || &lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[Webinar 2026 Know your cluster: ways that national systems vary in performance|Know your cluster: ways that national systems vary in performance]]|| 2026/3/11 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Jinhui* ||[[Getting started with MLflow for machine learning and AI development|Getting started with MLflow for machine learning and AI development]] || 2026/3/25 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Sergey || || 2026/4/8 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Tyson* || || 2026/4/22 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Baolai || || 2026/5/6 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Pawel || || 2026/7/15 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Nast || || 2026/7/29 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Doug || || 2026/8/12 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|James || || 2026/8/26 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Tyler || || 2026/9/9 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Armin || || 2026/9/23 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Paul || || 2026/10/7 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || || 2026/10/21 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Ed || || 2026/11/4 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Collin || || 2026/11/18 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Mark || || 2026/12/2 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || || 2026/12/16 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Baolai || || 2027/1/13 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Sergey || || 2027/1/27 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Jinhui || || 2027/2/10 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Tyson || || 2027/2/24 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Pawel || || 2027/3/10 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Nast || || 2027/3/24 ||  || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Reporting]]&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=General_Interest_Seminars&amp;diff=1198</id>
		<title>General Interest Seminars</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=General_Interest_Seminars&amp;diff=1198"/>
		<updated>2026-02-24T21:37:36Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* Adding a topic for Mar.25  Round 13 (Starting October 2025) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page organizing/archiving general interest seminars (became a part of Compute Ontario Colloquia weekly series starting January 2023).&lt;br /&gt;
&lt;br /&gt;
== Round 1 (Starting May 2011) ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Dates !! Att&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || Serial farming and Monte Carlo for SHARCNET || 2011/05/18 || 15&lt;br /&gt;
|-&lt;br /&gt;
|David || Automating Tasks with bash || 2011/06/08 || 8&lt;br /&gt;
|-&lt;br /&gt;
|HughM || [[Debugging at SHARCNET]] || 2011/06/29 || 11&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || Introduction to Linux || 2011/07/20 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || Linear Algebra on GPU || 2011/09/21 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[MATLAB Parallel Computing Toolbox on SHARCNET]]|| 2011/10/12 || 7&lt;br /&gt;
|-&lt;br /&gt;
|Alex || Visualizing Data with Paraview || 2011/11/02 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || Managing your files effectively at SHARCNET with SVN || 2011/11/23 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || Introduction to Valgrind || 2012/03/14 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Nick ||Optimizing Tools for Development and Execution of Programs || 2012/04/04 || 14&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 2 (Starting Sept. 2012) ==&lt;br /&gt;
&lt;br /&gt;
Note: henceforth, there is expected to be a General Interest Seminar every month, on the third Wednesday at noon.  Please be responsible about this and plan for your month.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Month !! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
| SEP || Pawel || Why Would I Use GPUs? || 2012/09/26 || 12&lt;br /&gt;
|-&lt;br /&gt;
| OCT || Tyson  || Introduction to Valgrind || 2012/10/17 || 5&lt;br /&gt;
|-&lt;br /&gt;
| NOV || HughM || [[New User Seminar - Part 2]] || 2012/11/21 || 15&lt;br /&gt;
|-&lt;br /&gt;
| DEC || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| JAN || Isaac || Shell scripting || 2013/01/23 || 18&lt;br /&gt;
|-&lt;br /&gt;
| FEB || Jemmy || SHARCNET Software Support Updates || 2013/02/27 || 7&lt;br /&gt;
|-&lt;br /&gt;
| MAY || Sergey || Quick-n-dirty ways to run your serial code faster, in parallel || 2013/05/01 || 15&lt;br /&gt;
|-&lt;br /&gt;
| JUNE || David || Parallel programming patterns || 2013/06/ || &lt;br /&gt;
|-&lt;br /&gt;
| JUL || Alex || || 2013/07/ || &lt;br /&gt;
|-&lt;br /&gt;
| AUG || Baolai || || 2013/08/ || &lt;br /&gt;
|-&lt;br /&gt;
| SEP || Nick || || 2013/09/ ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 3 (Starting Sept. 2013) ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Month !! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
| NOV || Isaac || [[Introduction to Linux]] || 2013/11/20 || 32&lt;br /&gt;
|-&lt;br /&gt;
| DEC || Pawel || [[Why Would I Use GPUs?]] || 2013/12/18 || 22&lt;br /&gt;
|-&lt;br /&gt;
| JAN || Alex || [[Using parallel I/O in SHARCNET]] || 2014/01/15 || 10&lt;br /&gt;
|-&lt;br /&gt;
| FEB || Sergey || [[Profiling MPI codes with Allinea&amp;#039;s MAP]] || 2014/02/19 || 10&lt;br /&gt;
|-&lt;br /&gt;
| MAR || Baolai || [[Managing your files effectively at SHARCNET with SVN]] || 2014/03/19 || 8&lt;br /&gt;
|-&lt;br /&gt;
| APR || Tyson  || [[My code doesn&amp;#039;t crash -- why should I still use Valgrind?]] || 2014/04/16  || 17&lt;br /&gt;
|-&lt;br /&gt;
| MAY || Jemmy || [[Running MATLAB in SHARCNET]] || 2014/05/21 || 34&lt;br /&gt;
|-&lt;br /&gt;
| JUNE || Hugh || [[Webinar 2014 Debugging at SHARCNET|Debugging at SHARCNET]] || 2014/06/18 || 20&lt;br /&gt;
|-&lt;br /&gt;
| JUL || James || [[Webinar 2014 Transitioning from Matlab to Octave|Transitioning from Matlab to Octave]] || 2014/07/16 || ?&lt;br /&gt;
|-&lt;br /&gt;
| AUG ||  || || 2014/08/20 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Round 4 (Starting Sept. 2014) ==&lt;br /&gt;
&lt;br /&gt;
Note: with the new (biweekly) schedule, full time HPTC will have to give 2 seminars per year. &amp;#039;&amp;#039;&amp;#039;Please make at least one of these two seminars a new one&amp;#039;&amp;#039;&amp;#039; (the other one can be an old recycled one).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att !! Reg&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[webinar 2014 Advanced Message Passing in MPI: Using MPI Datatypes with Opaque C++ Types|Advanced Message Passing in MPI: Using MPI Datatypes with Opaque C++ Types]] || 2014/09/17 || 7 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[webinar 2014 An Introduction to Java Threads|An Introduction to Java Threads]] || 2014/10/01 || 9 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[webinar 2014 CUDA Basics and how to in SHARCNET|CUDA Basics and how to]] || 2014/10/15 || 20 || 31&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[webinar 2014 Is the Intel Xeon Phi right for me?|Is the Intel Xeon Phi right for me?]] || 2014/10/29 || 11 || 15&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Linear Algebra on GPU]] || 2014/11/12 || 11 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2014 The SHARCNET Desktop|The SHARCNET Desktop]] || 2014/11/26 || 17 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Weiguan || [[webinar 2014 Programming with VTK - a high-level visualization library |Programming with VTK - a high-level visualization library]] || 2014/12/10 || 18 || 14&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2015 SHARCNet file management|SHARCNet file management]] || 2015/01/07 || 15 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Hugh || [[webinar 2015 New User Seminar - Part 2|New User Seminar - Part 2]] || 2015/01/21 || 10 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[webinar 2015 Deep Learning on SHARCNET: From CPU to GPU cluster|Deep Learning on SHARCNET: From CPU to GPU cluster]] || 2015/02/04 || 40 || 22&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2015 Serial and parallel farming from A to Z|Serial and parallel farming from A to Z]] || 2015/02/18 || 30 || 23&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[The Relevance of OpenCL to HPC]] || 2015/03/04 || 15+20 live || 12&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[webinar 2015 Programming, best practices| Programming, best practices]] || 2015/03/18 || 23 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2015 Numerical libraries for scientific computing|A brief look at numerical libraries: The tools you can use]] || 2015/04/01 || 8 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[webinar 2015 An Update on MATLAB at SHARCNET| An Update on MATLAB at SHARCNET]] || 2015/04/15 || 7 || 13&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2015 High Performance Computing with Python| High Performance Computing with Python]] || 2015/04/29 || 39 || 29&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2015 Exploring a new approach to package management| Exploring a new approach to package management]] || 2015/05/14 || 6 || 3&lt;br /&gt;
|-&lt;br /&gt;
| || [[]] || 2015/05/27 || canceled&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[webinar 2015 Get the most out of SharcNET|Get the most out of SharcNET]] || 2015/06/10 || 25 || 23&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2015 Programming with Wt - A C++ library for developing stateful and highly interactive web applications|Programming with Wt - A C++ library for developing stateful and highly interactive web applications]] || 2015/06/24 || 7 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[Hybrid MPI and OpenMP Parallel Programming]] || 2015/07/08 || 17 || 13&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2015 Debugging and profiling of MPI programs| Debugging and profiling of MPI programs]] [[]] || 2015/07/22 || 15 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Baolai|| [[webinar 2015 Parallel programming without MPI - Using coarrays in Fortran|Parallel programming without MPI - Using coarrays in Fortran]] || 2015/08/05 || 10 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Isaac|| [[webinar 2015 Introduction to Parallel I/O| Introduction to Parallel I/O]] || 2015/08/19 || 18 || 16&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 5 (Starting Sept. 2015) ==&lt;br /&gt;
&lt;br /&gt;
Note: with the new (biweekly) schedule, full time HPTC will have to give 2 seminars per year. &amp;#039;&amp;#039;&amp;#039;Please make at least one of these two seminars a new one&amp;#039;&amp;#039;&amp;#039; (the other one can be an old recycled one).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att !! Reg&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[webinar 2015 cientific Visualization with ParaView| Scientific Visualization with ParaView]] || 2015/9/16 || 23 || 15&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2015 Profiling function vectorization in Matlab/Octave | Profiling function vectorization in Matlab/Octave ]] || 2015/9/30 || 11 || 4&lt;br /&gt;
|-&lt;br /&gt;
|Fei ||  [[webinar 2015 CUDA Profiling and Tuning| CUDA Profiling and Tuning]]  || 2015/10/14 || 18 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Hugh || [[webinar 2015 Fundamentals of working at the command line at SHARCNET| Fundamentals of working at the command line at SHARCNET]] || 2015/10/28 || 35 || 16&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[webinar 2015 Introduction to MPI - Part I| Introduction to MPI - Part I]]|| 2015/11/11 || 20 || 25&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2015 Introduction to MPI - Part II| Introduction to MPI - Part II]]|| 2015/11/25 || 10 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[webinar 2015 Parallel Design Patterns| Parallel Design Patterns]] || 2015/12/9 || 10 || 15&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2016 Automating Software Build Process using CMake| Automating Software Build Process using CMake]] || 2016/1/6 || 16 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[webinar 2016 Introduction to OpenMP Parallel Programming| Introduction to OpenMP Parallel Programming]]|| 2016/1/20 || 5 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2016 UNIX shell expansion: proper use and advanced forms| UNIX shell expansion: proper use and advanced forms]] || 2016/2/3 || 17 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2016 Parallel and high performance computing with R| Parallel and high performance computing with R]] || 2016/2/17 || 24 || 21&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[webinar 2016 Raphaël - a vector graphics library for web development|Raphaël - a vector graphics library for web development]] || 2016/3/2 || 6 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2016 Debugging OpenMP programs| Debugging OpenMP programs]] || 2016/3/16 || 1 || 3&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[webinar 2016 How to get started with OpenFOAM at SHARCNET|How to get started with OpenFOAM at SHARCNET]] || 2016/3/30 || 14 || 7&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2016 Quick tips for getting the most out of SHARCNET|Quick tips for getting the most out of SHARCNET]] || 2016/4/13 || 17 || 13&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[webinar 2016 Deep Learning on SHARCNET: Tools you can use|Deep Learning on SHARCNET: Tools you can use]] || 2016/4/27 || 38 || 23&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2016 Git and SHARCNET|Git and SHARCNET ]] || 2016/5/11 || 14 || 10&lt;br /&gt;
|-&lt;br /&gt;
|Doug || Canceled || 2016/5/25 || &lt;br /&gt;
|-&lt;br /&gt;
|Jose || [[webinar 2016 Introduction to Apache Spark on SHARCNET|Introduction to Apache Spark on SHARCNET]] || 2016/6/8 || 15 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Hugh || Canceled || 2016/6/22 || &lt;br /&gt;
|-&lt;br /&gt;
|Ed || Canceled || 2016/7/6 || &lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[Hybrid MPI and OpenMP Parallel Programming]] || 2016/7/20 || 7 || 10&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2016 Introduction to MPI - Part III|Introduction to MPI - Part III]] || 2016/8/3 || 0 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[webinar 2016 Introduction to Jupyter| Introduction to Jupyter]] || 2016/8/17 || 14 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2016 Automating Software Build Process using CMake| Automating Software Build Process using CMake]] || 2016/9/14 || 6 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2016 Introduction to The Shell|Introduction to The Unix Shell - Automating Your Work]] || 2016/9/28 || 23 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[webinar 2016 What Happened to My Job?  Cluster Scheduling In Detail|What Happened to My Job?  Cluster Scheduling In Detail]] || 2016/10/12 || 17 || 11&lt;br /&gt;
|-&lt;br /&gt;
|Isaac ||[[webinar 2016 Introduction To Python|Introduction To Python: simple practise of data analysis]] || 2016/10/26 || 24 || 30&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[webinar 2016 Debugging CUDA programs| Debugging CUDA programs]] || 2016/11/9 || 3 || 1&lt;br /&gt;
|-&lt;br /&gt;
|Doug || Canceled || 2016/11/23 || 0 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[webinar 2016 Defensive Programming : Best Practices|Defensive Programming : Best Practices]] || 2016/12/7 || 8 || 15&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 6 (Starting January 2017) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att !! Reg&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[webinar 2017 Introduction to ParaView|Introduction to ParaView]] || 2017/1/4 || 12 || 13&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2017 Navigating the research computing resource renewals coming in 2017|Navigating the research computing resource renewals coming in 2017]] || 2017/1/18 || 11 || 10&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[webinar 2017 Deep Learning on SHARCNET: Best Practices |Deep Learning on SHARCNET: Best Practices]] || 2017/2/1 || 23 || 24&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2017 Git and SHARCNET (part 2)|Git and SHARCNET (part 2)]]|| 2017/2/15 || 5 || 13&lt;br /&gt;
|-&lt;br /&gt;
|Jose || [[webinar 2017 Machine Learning with Spark at SHARCNET|Machine Learning with Spark at SHARCNET ]]  || 2017/3/1 || 12 || 28&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2017 High Performance Computing with Python|High Performance Computing with Python]]|| 2017/3/15 || 27 || 37&lt;br /&gt;
|-&lt;br /&gt;
|Paul || CANCELED (speaker not ready) || 2017/3/29 || || &lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2017 Modern Fortran: Concurrency |Modern Fortran: Concurrency and Parallelism]] || 2017/4/12 || 18 || 22&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||  [[webinar 2017 Automating Software Build Process using CMake – Part II|Automating Software Build Process using CMake – Part II]] || 2017/4/26 || 2 || 1&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[OpenMP 4.x: New features and Protocols]] || 2017/5/10 || 9 || 3&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[Webinar 2017 How to compile/run OpenFOAM in SHARCNET |How to compile/run OpenFOAM in SHARCNET]] || 2017/5/24 || 10 || 7&lt;br /&gt;
|-&lt;br /&gt;
|Ed || CANCELED (one attendee)|| 2017/6/7 || 1 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2017 What&amp;#039;s new and exciting about Graham&amp;#039;s GPUs| What&amp;#039;s new and exciting about Graham&amp;#039;s GPUs]] || 2017/6/21 || 27 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Webinar 2017 Train models to recognize hand-written digits using Tensorflow|Train models to recognize hand-written digits using Tensorflow]] || 2017/7/5 || 24 || 23&lt;br /&gt;
|-&lt;br /&gt;
|James || [[Webinar 2017 How jobs are scheduled to run on Graham and Cedar|How jobs are scheduled to run on Graham and Cedar]] || 2017/7/19 || 55 || 34&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2017 Intel MPI Library Cluster Edition on Graham|Intel MPI Library Cluster Edition on Graham]] || 2017/8/2 || 6 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Webinar 2017 Packaging with Nix|Packaging with Nix]] || 2017/8/16 || 6 || 4&lt;br /&gt;
|-&lt;br /&gt;
|Kamil || [[Webinar 2017 Partitions and scheduling, running jobs effectively on Graham and Cedar | Partitions and scheduling, running jobs effectively on Graham and Cedar]] || 2017/9/13 || 34 || 24&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[Webinar 2017 Training Neural Networks with hundreds of GPUs on Graham and Cedar | Training Neural Networks with hundreds of GPUs on Graham and Cedar]] || 2017/9/20 || 46 || 36&lt;br /&gt;
|-&lt;br /&gt;
|Mohamed|| [[Webinar 2017 Introduction to SHARCNET Cloud|Introduction to SHARCNET Cloud]] || 2017/9/27 || 19 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Webinar 2017 Linear Algebra on GPU| Linear Algebra on GPU]] || 2017/10/11 || 20 || 16&lt;br /&gt;
|-&lt;br /&gt;
|Jose || [[Webinar 2017 Machine Learning using Jupyter Notebooks on Graham|Machine Learning using Jupyter Notebooks on Graham]]  || 2017/10/25 || 36  || 34&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[Webinar 2017 Introduction to LINUX/SHELL programming in SHARCNET|Introduction to LINUX/SHELL programming in SHARCNET]] || 2017/11/8 || 31 || 33&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2017 Serial farming on Graham|Serial farming on Graham]] || 2017/11/22 || 22 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[Webinar 2017 Introduction to Eclipse for debugging - Part I|Introduction to Eclipse for debugging - Part I]] || 2017/12/6 || 10 || 4&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2018 Intro to Intel Performance Tools|Intro to Intel Performance Tools]] || 2018/1/17 || 8 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[Webinar 2018 Deploying a Full Stack Web Solution on the Cloud for Cluster Access|Deploying a Full Stack Web Solution on the Cloud for Cluster Access]] || 2018/1/31 || 22 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[Webinar 2018 Singularity|Singularity]] || 2018/2/14 || 13 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[Webinar 2018 Visual Studio Code - Your Next Coding Companion for Advanced Research Computing|Visual Studio Code - Your Next Coding Companion for Advanced Research Computing]] || 2018/2/28 || 14 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[Webinar 2018 Using SSH for Good, not Evil|Using SSH for Good, not Evil]] || 2018/3/14 || 17 || 16&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 7 (Starting March 2018) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att !! Reg&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Using Computational Chemistry software effectively on Graham]] || 2018/3/28 || 14 || 4&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2018 Improving your Python programs with NumPy and SciPy|Improving your Python programs with NumPy and SciPy]] || 2018/4/11 || 24 || 22&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2018 All about job wait times in the Graham queue|All about job wait times in the Graham queue ]] || 2018/4/25 || 31 || 22&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2018 Summer School preview|Summer School preview]] || 2018/5/9 || 18 || 14&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || CANCELED || 2018/5/23 || 0 || &lt;br /&gt;
|-&lt;br /&gt;
|Jose || CANCELED || 2018/6/6 || 0 || &lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[webinar 2018 Fundamentals of working at the command line at Graham|Fundamentals of working at the command line at Graham]] || 2018/6/20 || 30 || 28&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2018 Debugging on Graham with DDT|Debugging on Graham with DDT]] || 2018/7/4 || 6 || 7&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||  [[webinar 2018 Mixed Source C, C++, and Fortran Programs|Mixed Source C, C++, and Fortran Programs]] || 2018/7/18 || 18 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||  [[webinar 2018 Introduction to MySQL on Graham|Introduction to MySQL on Graham]]|| 2018/8/1 || 15 || 14&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||  [[webinar 2018 Harnessing the Power of Heterogeneous Computing using Boost.Compute + OpenCL|Harnessing the Power of Heterogeneous Computing using Boost.Compute + OpenCL ]] || 2018/8/15 || 7 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2018 Concurrent File I/O by Multiple Processes|Concurrent File I/O by Multiple Processes]] || 2018/9/12 || 13 || 7&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[webinar 2018 The Benefits of GLOST for Many Jobs|The Benefits of GLOST for Many Jobs]] || 2018/9/26 || 9 || 9&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2018 Understand (and potentially reduce) job wait times by examining scheduler configuration, load in the queue and account usage|Understand (and potentially reduce) job wait times by examining scheduler configuration, load in the queue and account usage]] || 2018/10/10 || 23 || 18&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[webinar 2018 Stock Prediction Using Recurrent Neural Network|Stock Prediction Using Recurrent Neural Network]] || 2018/10/24 || 33 || 29&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[webinar 2018 Using MATLAB effectively on Graham and Cedar|Using MATLAB effectively on Graham and Cedar]] || 2018/11/7 || 33 || -&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[webinar 2018 MySQL Part 2:  Relations and Joins|MySQL Part 2:  Relations and Joins]] || 2018/11/21 || 5 || -&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[webinar 2018 Using Pseudorandom Number Sequences in C++|Using Pseudorandom Number Sequences in C++]]  || 2018/12/5 || 7 || -&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2018 Code profiling on Graham|Code profiling on Graham]]|| 2018/12/19 || 26 || -&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2018 The Monad Understanding Hurdle|The Monad Understanding Hurdle]]|| 2019/1/16 || 9 || -&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[webinar 2018 Best practices for newbies on Graham|Best practices for newbies on Graham]]|| 2019/1/30 || 35 || -&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[webinar 2019 What Happened To My Job?|What Happened To My Job? ]]|| 2019/2/13 || 15 || &lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2019 Dipping into C++17 Parallel Algorithms with Intel&amp;#039;s Parallel STL|Dipping into C++17 Parallel Algorithms with Intel&amp;#039;s Parallel STL]] || 2019/2/27 || 14 || &lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[webinar 2019 Exploring the Use of Application Software on Grahams Visualization Machine|Exploring the Use of Application Software on Grahams Visualization Machine]] || 2019/3/13 || 35 || &lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2019 Introduction to parallel programming with MPI and Python|Introduction to parallel programming with MPI and Python]] || 2019/3/27 || 25 || - &lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2019 Exploring Octave package dataframe|Exploring Octave package dataframe]] || 2019/4/10 || 2 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 8 (Starting April 2019) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James || [[Webinar 2019 PRE and POST production on Graham|PRE and POST production on Graham]] || 2019/4/24 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Webinar 2019 Pull your own data into ParaView|Pull your own data into ParaView]] || 2019/5/8 || 31&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[The New Development of OpenMP]] || 2019/5/22 || 22&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[Webinar 2019 Julia - A first perspective|Julia - A first perspective]] || 2019/6/5 || 45&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[Webinar 2019 Using C++&amp;#039;s Parallel Algorithms|Using C++&amp;#039;s Parallel Algorithms]]|| 2019/6/19 || 14&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || CANCELED || 2019/7/3 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Webinar 2019 The Monad Understanding Hurdle (Part 2)|The Monad Understanding Hurdle (Part 2)]] || 2019/7/17 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[Webinar 2019 Fundamentals of working at the command line at Graham| Fundamentals of working at the command line at Graham ]] || 2019/7/31 || 54&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[Webinar 2019 Is It Possible to Use C++ Parallel Algorithms in a Distributed Memory Setup (i.e. MPI)?|Is It Possible to Use C++ Parallel Algorithms in a Distributed Memory Setup (i.e. MPI)?]] || 2019/8/14 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Doug || CANCELED || 2019/9/11 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[Webinar 2019 Using reduced numerical precision on Pascal, Volta and Turing GPUs|Using reduced numerical precision on Pascal, Volta and Turing GPUs]] || 2019/9/25 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui || [[Webinar 2019 Introduction to scalable computing with Dask in Python| Introduction to scalable computing with Dask in Python ]] || 2019/10/9 || 40&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2019 Leveraging Compiler Optimization Reports|Leveraging Compiler Optimization Reports ]] || 2019/10/23 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Webinar 2019 Using Multiple GPUs in Tensorflow|Using Multiple GPUs in Tensorflow]] || 2019/11/6 || 18&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[Webinar 2019 Julia: A second perspective|Julia: A second perspective]]  || 2019/11/20 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[Webinar 2019 Docker|Docker]]|| 2019/12/4 || 27&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Webinar 2019 Introduction to HPC Programming Language Chapel: Base Language Overview |Introduction to HPC Programming Language Chapel: Base Language Overview ]] || 2019/12/18 || 10&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Webinar 2019 The Monad Understanding Hurdle (Part 3)|The Monad Understanding Hurdle (Part 3)]] || 2020/1/15 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[Webinar 2019 Singularity 3.5|Singularity 3.5]]|| 2020/1/29 || 27&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2019 New User Seminar, Part II|New User Seminar, Part II]] || 2020/2/12 || 23&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[Webinar_2020_how_to_run_AI_programs_in_Graham| How to Run AI programs in Graham]]|| 2020/2/26 || 44&lt;br /&gt;
|-&lt;br /&gt;
|Baolai|| [[Julia: A third perspective - parallel computing explained]] || 2020/3/11 || 18&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[Webinar_2020_Introduction_to_scalable_computing_with_Dask_in_Python_(Continued)|Introduction to scalable computing with Dask in Python (Continued)]] || 2020/3/25 || 15&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||  [[Webinar 2020 Using SSHFS to make CC storage more accessible|Using SSHFS to make CC storage more accessible]] || 2020/4/8 || 21&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Webinar 2020 Collaborative Groups in CUDA|Collaborative Groups in CUDA]] || 2020/4/22 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Doug||CANCELED || 2020/5/6 || &lt;br /&gt;
|-&lt;br /&gt;
|Armin ||CANCELED || 2020/5/20 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 9 (Starting July 2020) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Webinar 2020 Cython: A First Look|Cython: A First Look]] || 2020/7/8 || 60&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Webinar 2020 Visualizing job usage on the Compute Canada systems with the ViewClust Python package|Visualizing job usage on the Compute Canada systems with the ViewClust Python package]] || 2020/7/15 || 33&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Webinar 2020 How to Use C++ Parallel Algorithms in a Distributed Memory Setup (i.e. MPI)|How to Use C++ Parallel Algorithms in a Distributed Memory Setup (i.e. MPI)]] || 2020/7/29 || 15 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergio ||[[Webinar 2020 Bioinformatics in the terminal: Tips and tricks to make your life easier|Bioinformatics in the terminal: Tips and tricks to make your life easier]] || 2020/8/12 || 47 ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2020 Options for Solving Jobs with Many Tasks|Options for Solving Jobs with Many Tasks]]|| 2020/9/9 || 13 || 30&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[Webinar 2020 Is my neural network too big to fit into GPU?|Is my neural network too big to fit into GPU?]] || 2020/9/23 || 59 || 93&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Webinar 2020 Introduction to HPC Programming Language Chapel: Parallel Approaches|Introduction to HPC Programming Language Chapel: Parallel Approaches ]]|| 2020/10/7 || 7 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[Webinar 2020 Introduction to Git|Introduction to Git]] || 2020/10/21 || 50 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[Webinar 2020 Julia - Parallel computing revisited|Julia: Parallel computing revisited]] || 2020/11/4 || 8 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[Webinar 2020 NixOS: The second largest and the most up-to-date Linux distribution|NixOS: The second largest and the most up-to-date Linux distribution]] || 2020/11/18 || 18 ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Webinar 2020 Practical Singularity|Practical Singularity]] || 2020/12/2 || 28 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[Webinar 2020 Offload Analytics Workload in Python to GPUs with RAPIDS|Offload Analytics Workload in Python to GPUs with RAPIDS]]  || 2020/12/16 || 46 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[Webinar 2021 Programming GPUs with Fortran|Programming GPUs with Fortran]] || 2021/1/13 || 25 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[Webinar 2021 Computing in arbitrary precision|Computing in arbitrary precision]] || 2021/1/27 || 13 ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Isaac&amp;#039;&amp;#039;&amp;#039; || [[Webinar 2021 Some ML practices running GPUs in Compute Canada system|Using multiple GPUs for Machine Learning]] || 2021/2/10 || &amp;#039;&amp;#039;&amp;#039;63&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|James || [[Webinar 2021 Generating interactive visualizations with Plotly on Graham|Generating interactive visualizations with Plotly on Graham]]|| 2021/2/24 || 47 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Webinar 2021 Scalable Memory Allocation for Parallel Algorithms| Scalable Memory Allocation for Parallel Algorithms]] || &amp;#039;&amp;#039;&amp;#039;2021/3/17&amp;#039;&amp;#039;&amp;#039; || 7 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergio ||[[Webinar 2021 FauxConda: ways to use Conda without conda|FauxConda: ways to use Conda without conda]] || 2021/3/24 || 27 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[An Update to ADF/AMS software on Graham]]|| 2021/4/7 || 14 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2021 Debugging your code with DDT|Debugging your code with DDT]] || 2021/4/21 || 15 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler || [[Webinar 2021 Pandas Recipes for New Python Users|Pandas Recipes for New Python Users]] || 2021/5/5 || 53 ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2021 DIY Local Program Installation|DIY Local Program Installation]] || 2021/5/19 || 15 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||CANCELED  || 2021/6/2 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Webinar 2021 Learning from competition|Learning from competition]] || 2021/6/16 || 103 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || CANCELED || 2021/6/30 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[Webinar 2021 Hybrid MPI|Hybrid MPI]] || 2021/7/14 || 41 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[Webinar 2021 Comparing CPU, GPU, memory, interconnect and filesystem performance across National systems|Comparing CPU, GPU, memory, interconnect and filesystem performance across National systems]]|| 2021/7/28 || 22 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[Webinar 2021 Git Part 2 – Common Git Commands|Git Part 2 – Common Git Commands]] || 2021/8/11 || 41 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[Webinar 2021 Eclipse Part2|Introduction to Eclipse Part 2 - Developing and debugging MPI code]] || 2021/9/8 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Webinar 2021 ROCm: AMD&amp;#039;s platform for GPU computing|ROCm: AMD&amp;#039;s platform for GPU computing]] || 2021/9/22 || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2021 META: running a large number of jobs conveniently|META: running a large number of jobs conveniently]]|| 2021/10/6 || 74 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[Webinar 2021 Scaling Hyperparameter Tuning with Dask-ML on Clusters|Scaling Hyperparameter Tuning with Dask-ML on Clusters]] || 2021/10/20 || 51 ||&lt;br /&gt;
|-&lt;br /&gt;
|Isaac ||[[Webinar 2021 Running machine learning example (MNIST) on multi-cores/nodes in Graham |Running machine learning example (MNIST) on multi-cores/nodes in Graham]] || 2021/11/3 || 96 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Webinar 2021 The Layered Grammar of Graphics (gglot2/plotnine)|The Layered Grammar of Graphics (gglot2/plotnine)]] || 2021/11/17 || 59 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[Webinar 2021 Eclipse Part3|Introduction to Eclipse Part 3 - Debugging MPI code]] || 2021/12/1 || 9 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 10 (Starting December 2021) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[webinar 2021 Tips for identifying when job wait times can be reduced by job submission parameter changes|Tips for identifying when job wait times can be reduced by job submission parameter changes]] || 2021/12/15 || 68 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2022 Remote Development on Clusters with VSCode|Remote Development on Clusters with VSCode]] || 2022/1/12 || 62 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergio || [[webinar 2022 From histograms to dashboards: An introduction to data visualization with Python|From histograms to dashboards: An introduction to data visualization with Python]]|| 2022/1/26 || &amp;#039;&amp;#039;&amp;#039;116&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[webinar 2022 Conquering the Scheduler|Conquering the Scheduler]] || 2022/2/9 || 49 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[webinar 2022 Gaussian16 and NBO7 on Graham and Cedar|Gaussian16 and NBO7 on Graham and Cedar]] || 2022/2/23 || 50 ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug ||[[webinar 2022 More Options for Solving Jobs with Many Tasks|More Options for Solving Jobs with Many Tasks]] || 2022/3/9 || 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[webinar 2022 Using Tensorboard to debug and profile neural network models|Using Tensorboard to debug and profile neural network models]] || 2022/3/23 || 35 ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[webinar 2022 Apptainer|Apptainer]] || 2022/4/6 || 39 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[webinar 2022 10 ways to optimize your workflow|10 ways to optimize your workflow]]|| 2022/4/20 || 39 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||  [[webinar 2022 Demystifying Web Portals|Demystifying Web Portals]] || 2022/5/4 || 29 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[webinar 2022 Profiling GPU codes with Nsight|Profiling GPU codes with Nsight]] || 2022/5/18 || 23 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[webinar 2022 Speeding up Python code with Numba|Speeding up Python code with Numba]] || 2022/6/1 || &amp;#039;&amp;#039;&amp;#039;58&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[webinar 2022 Realtime display with Gnuplot|Realtime display with Gnuplot]] || 2022/6/15 || 24 ||&lt;br /&gt;
|-&lt;br /&gt;
|Isaac ||[[webinar 2022 Running PyTorch codes with multi-GPU/nodes on national systems|Running PyTorch codes with multi-GPU/nodes on national systems]] || 2022/6/29 || 54 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[webinar 2022 Working with Jupyter on Clusters|Working with Jupyter on Clusters]] || 2022/7/13 || 56 ||&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[webinar 2022 Visualizing job properties for wait time assessment|Visualizing job properties for wait time assessment]] || 2022/7/27 || 31 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[webinar 2022 Debugging with ParaView|Debugging with ParaView]] || 2022/8/10 || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[webinar 2022 Remote Development on Clusters with VSCode - Part II|Remote Development on Clusters with VSCode - Part II]] || 2022/9/7 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[webinar 2022 Creating and Distributing Python Packages|Creating and Distributing Python Packages]] || 2022/9/21 ||  45||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[webinar 2022 Transfer Learning with Tensorflow Hub|Transfer Learning with Tensorflow Hub]] || 2022/10/5 ||  26||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[webinar 2022 Strategies For Managing Filesystem Quotas|Strategies For Managing Filesystem Quotas]]|| 2022/10/19 || 24 ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[webinar 2022 Profiling &amp;amp; Performance Tuning CPU Programs| Profiling &amp;amp; Performance Tuning CPU Programs]] || 2022/11/2 ||  19||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2022 Video Editing with KDEnLive|Video Editing with KDEnLive]]   || 2022/11/16 ||21||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[webinar 2022 Deploying a simple Express.js Web App|Deploying a simple Express.js Web App]] || 2022/11/30 ||  12||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[webinar 2022 Which GPU should I use?|Which GPU should I use?]] || 2022/12/14 || 24 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||[[colloquium 2023 Performance: current and upcoming systems|Performance: current and upcoming systems ]] || 2023/1/11 || 31 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jeff Moon ||[[colloquium 2023 How Research Data Management (RDM) Intersects with ARC and Why Should I Care?|How Research Data Management (RDM) Intersects with ARC and Why Should I Care?]] || 2023/1/25 || 49 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[colloquium 2023 An introduction to MPLAPACK, a multi-precision linear algebra library| An introduction to MPLAPACK, a multi-precision linear algebra library]] || 2023/2/8 || 15 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[colloquium 2023 Accelerated DataFrame with Dask-cuDF on multiple GPUs|Accelerated DataFrame with Dask-cuDF on multiple GPUs]] || 2023/2/22 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[colloquium 2023 plotnine: R&amp;#039;s Grammar of Graphics in Python|plotnine: R&amp;#039;s Grammar of Graphics in Python]]|| 2023/3/8 || 29 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 11 (Starting March 2023) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James || [[colloquium 2023 Before and after submitting Octave/Matlab jobs on the clusters|Before and after submitting Octave/Matlab jobs on the clusters]] || 2023/3/22 || 10 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[colloquium 2023 Running MATLAB on Alliance&amp;#039;s Clusters|Running MATLAB on Alliance&amp;#039;s Clusters]] || 2023/4/5 || 27 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[colloquium 2023 CUDA, ROCm, oneAPI – All for One or One for All?|CUDA, ROCm, oneAPI – All for One or One for All?]] || 2023/4/19 || 33 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[colloquium 2023 Modern Approaches to Profiling in Python with Scalene|Modern Approaches to Profiling in Python with Scalene]] || 2023/5/3 || 29 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[colloquium 2023 Contrastive learning|Contrastive learning]] || 2023/5/17 || &amp;#039;&amp;#039;&amp;#039;63&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul || CANCELED   || 2023/5/31 || ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || CANCELED || 2023/6/14 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || CANCELED || 2023/6/28 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[colloquium 2023 Leveraging the power of Linux on Windows with WSL|Leveraging the power of Linux on Windows with WSL]]|| 2023/7/12 || 40 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||[[colloquium 2023 DIY job monitoring, from cache misses to CO2 footprint|DIY job monitoring, from cache misses to CO2 footprint]] || 2023/7/26 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[colloquium 2023 Automating scientific workflows with AiiDA|Automating scientific workflows with AiiDA]] || 2023/8/9 || 33 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || CANCELED || 2023/8/23 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul || CANCELED || 2023/9/6 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Colloquium 2023 Data Wrangling with Tidyverse|Data Wrangling with Tidyverse]]|| 2023/9/20 || 27 ||&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Colloquium 2023 Exploring job wait times on Alliance compute clusters: a holistic view| Exploring job wait times on Alliance compute clusters: a holistic view]] || 2023/10/4 || 27 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Colloquium 2023 p2rng – A C++ Parallel Random Number Generator Library for the Masses|p2rng – A C++ Parallel Random Number Generator Library for the Masses]] || 2023/10/18 || 7 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Colloquium 2023 Generalized End to End Python and Neuroscience Workflows on a Compute Cluster| Generalized End to End Python and Neuroscience Workflows on a Compute Cluster]] || 2023/11/1 || 17 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[Colloquium 2023 Squeeze more juice out of a single GPU in deep learning| Squeeze more juice out of a single GPU in deep learning]] || 2023/11/15 || 54 ||&lt;br /&gt;
|-&lt;br /&gt;
|Collin ||[[Colloquium 2023 Skorch: Training PyTorch models with scikit-learn|Skorch: Training PyTorch models with scikit-learn]] || 2023/11/29 || 34 ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || CANCELED || 2023/12/13 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Colloquium 2024 False Sharing and Contention in Parallel Codes|False Sharing and Contention in Parallel Codes]] || 2024/1/17 || 17 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Colloquium 2024 Introduction to GPU programming with OpenMP|Introduction to GPU programming with OpenMP]]|| 2024/1/31 || 30 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[Colloquium 2024 MySQL Part 3: Constraints and Joins|MySQL Part 3: Constraints and Joins]] || 2024/2/14 || 11 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[Colloquium 2024 Debugging your code with DDT|Debugging your code with DDT]] || 2024/2/28 || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||[[Colloquium 2024 Make: obsolete or elegant?|Make: obsolete or elegant?]] || 2024/3/13 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui || [[Colloquium 2024 Accelerating Graph Analysis on GPUs|Accelerating Graph Analysis on GPUs]]|| 2024/3/27 || 25 ||&lt;br /&gt;
|-&lt;br /&gt;
|Nastaran || [[Colloquium 2024 Accelerating data analytics with RAPIDS cuDF|Accelerating data analytics with RAPIDS cuDF]]|| 2024/4/10 || 17 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[Colloquium 2024 Data Wrangling with Tidyverse (part 2)|Data Wrangling with Tidyverse (part 2)]] || 2024/4/24 || 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Colloquium 2024 Compute Ontario Summer School 2024|Compute Ontario Summer School 2024]] || 2024/5/8 || 25 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 12 (Starting July 2024) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Colloquium 2024 Exploring Compute Usage from User Facing Portals on the National Clusters|Exploring Compute Usage from User Facing Portals on the National Clusters]] || 2024/7/17 || 13 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Colloquium 2024 The Emergence of WebAssembly (Wasm) in Scientific Computing|The Emergence of WebAssembly (Wasm) in Scientific Computing]] || 2024/8/7 || 12 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Colloquium 2024 Diagnosing Wasted Resources from User Facing Portals on the National Clusters|Diagnosing Wasted Resources from User Facing Portals on the National Clusters]] || 2024/8/14 || 21 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Colloquium 2024 Using machine learning to predict rare events|Using machine learning to predict rare events]]|| 2024/8/28 || &amp;#039;&amp;#039;&amp;#039;51&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|Collin ||[[Colloquium 2024 Debugging and Optimization of PyTorch Models|Debugging and Optimization of PyTorch Models]] || 2024/9/11 || 42 ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Colloquium 2024 Multidimensional Arrays in C++|Multidimensional Arrays in C++]] || 2024/9/25 || 13 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||[[Colloquium 2024 Introspection for Jobs: in-job monitoring of performance|Introspection for Jobs: in-job monitoring of performance]] || 2024/10/9 || 18 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Colloquium 2024 Parallel Programming: MPI I/O Basics|Parallel Programming: MPI I/O Basics]] || 2024/10/23 || 12 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[Colloquium 2024 Git Part 3: Managing Workflows|Git Part 3: Managing Workflows]] || 2024/11/6 || 10 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[Colloquium 2024 Survival guide for the upcoming GPU upgrades (more total power, but fewer GPUs)|Survival guide for the upcoming GPU upgrades (more total power, but fewer GPUs)]]  || 2024/11/20 || 30 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[Colloquium 2024 Data Wrangling with Tidyverse (part 3)|Data Wrangling with Tidyverse (part 3)]] || 2024/12/4 || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
|Nast ||[[Colloquium 2024 Unlocking the Power of Comet: Streamlining Machine Learning Experimentation|Unlocking the Power of Comet: Streamlining Machine Learning Experimentation]] || 2024/12/18 || 9 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||Canceled || 2025/1/15 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[Colloquium 2025 Converting Python code with NumPy to run on the GPU|Converting Python code with NumPy to run on the GPU]] || 2025/1/29 || 30 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Colloquium 2025 High-Performance Data Science with Modern C++: Xeus-Cling and G3P|High-Performance Data Science with Modern C++: Xeus-Cling and G3P]] || 2025/2/12 || 9 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[Colloquium 2025 Reduction of errors, or the pursuit of correctness|Reduction of errors, or the pursuit of correctness]] || 2025/2/26 || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Colloquium 2025 Preview of the &amp;quot;Job Scheduling and Monitoring&amp;quot; self-paced course|Preview of the &amp;quot;Job Scheduling and Monitoring&amp;quot; self-paced course]] || 2025/3/12 || 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Colloquium 2025 Revisiting Cython: Is it still effective?|Revisiting Cython: Is it still effective?]] || 2025/3/26 || 14 ||&lt;br /&gt;
|-&lt;br /&gt;
|Collin ||[[Colloquium 2025 Too Big to Train: Large model training in PyTorch with Fully Sharded Data Parallel|Too Big to Train: Large model training in PyTorch with Fully Sharded Data Parallel]] || 2025/4/9 || 23 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Colloquium 2025 Parallel Programming: MPI I/O Advanced Features|Parallel Programming: MPI I/O Advanced Features]] || 2025/4/23 || 10 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[Colloquium 2025 Checkpoints: why, when and how|Checkpoints: why, when and how]] || 2025/5/7 || 14 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||CANCELED || 2025/5/21 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Webinar 2025 Practical Multidimensional Arrays and Linear Algebra in C++|Practical Multidimensional Arrays and Linear Algebra in C++]] || 2025/7/2 || 10 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[Webinar 2025 Effortless Parallelism: Leveraging Julia Threads for High-Performance Scientific Computing|Effortless Parallelism: Leveraging Julia Threads for High-Performance Scientific Computing]] || 2025/7/16 || 18 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[Webinar 2025 Migrating to the upgraded national systems|Migrating to the upgraded national systems]] || 2025/7/30 || 143 ||&lt;br /&gt;
|-&lt;br /&gt;
|Nast ||[[Webinar 2025 Interactive Interfaces for Machine Learning Using Gradio|Interactive Interfaces for Machine Learning Using Gradio]]  || 2025/8/13 || 21 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[Webinar 2025 The Nibi&amp;#039;s web interface|The Nibi&amp;#039;s web interface]] || 2025/8/27 || 49 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[Webinar 2025 Installing your software packages with Spack|Installing your software packages with Spack]] || 2025/9/10 || 24 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[Webinar 2025 Running JupyterLab on Nibi|Running JupyterLab on Nibi]] || 2025/9/24 || 34 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[Webinar 2025 Running Linux on Windows and taking it with you anywhere|Running Linux on Windows and taking it with you anywhere]] || 2025/10/8 || 17 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 13 (Starting October 2025) ==&lt;br /&gt;
Entries with the asterisk next to the name are delivered as a CO colloquium. The entries without the asterisk will be delivered as a GIS, shifted by one hour (1-2pm).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Webinar 2025 What exactly is a Resource Allocation Competition (RAC) Compute Award?|What exactly is a Resource Allocation Competition (RAC) Compute Award?]] || 2025/10/22 || 10 || &lt;br /&gt;
|-&lt;br /&gt;
|Doug ||[[Webinar 2025 Running Engineering Related Packages Interactively on Nibi|Running Engineering Related Packages Interactively on Nibi]] || 2025/11/5 || 9 || &lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Webinar 2025 High-Performance Data Science with Modern C++: Ranx|High-Performance Data Science with Modern C++: Ranx]] || 2025/11/19 || 2 || &lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Webinar 2025 Serial Farms: Package options and when to switch to farming|Serial Farms: Package options and when to switch to farming]] || 2025/12/3 || 7 || &lt;br /&gt;
|-&lt;br /&gt;
|Weiguang* ||[[Webinar 2025 Illuminating the Black Box: Understanding AI Models with Integrated Gradients|Illuminating the Black Box: Understanding AI Models with Integrated Gradients]] || 2025/12/17 || 21 || &lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Webinar 2026 Floating-point Numbers Aren&amp;#039;t Mathematical Real Numbers|Floating-point Numbers Aren&amp;#039;t Mathematical Real Numbers]] || 2026/1/14 || 23 || &lt;br /&gt;
|-&lt;br /&gt;
|Collin* ||[[Webinar 2026 Too Big to Train 2: PyTorch&amp;#039;s Upgraded Interface for Fully Sharded Data Parallel|Too Big to Train 2: PyTorch&amp;#039;s Upgraded Interface for Fully Sharded Data Parallel]] || 2026/1/28 || 6 || &lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[Webinar 2026 Running Gaussian16 and NBO7 effectively on Nibi and Fir: Performance Issues|Running Gaussian16 and NBO7 effectively on Nibi and Fir: Performance Issues]]|| 2026/2/11 || 15 || &lt;br /&gt;
|-&lt;br /&gt;
|Ed* || [[Webinar 2026 Launching a Virtual Machine Using Nibi OpenStack Cloud|Launching a Virtual Machine Using Nibi OpenStack Cloud]]|| 2026/2/25 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[Webinar 2026 Know your cluster: ways that national systems vary in performance|Know your cluster: ways that national systems vary in performance]]|| 2026/3/11 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Jinhui* ||[[Getting started with MLflow on the Clusters|Getting started with MLflow on the Clusters]] || 2026/3/25 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Sergey || || 2026/4/8 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Tyson* || || 2026/4/22 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Baolai || || 2026/5/6 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Pawel || || 2026/7/15 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Nast || || 2026/7/29 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Doug || || 2026/8/12 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|James || || 2026/8/26 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Tyler || || 2026/9/9 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Armin || || 2026/9/23 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Paul || || 2026/10/7 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || || 2026/10/21 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Ed || || 2026/11/4 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Collin || || 2026/11/18 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Mark || || 2026/12/2 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || || 2026/12/16 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Baolai || || 2027/1/13 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Sergey || || 2027/1/27 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Jinhui || || 2027/2/10 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Tyson || || 2027/2/24 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Pawel || || 2027/3/10 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Nast || || 2027/3/24 ||  || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Reporting]]&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=General_Interest_Seminars&amp;diff=1128</id>
		<title>General Interest Seminars</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=General_Interest_Seminars&amp;diff=1128"/>
		<updated>2025-09-24T20:07:10Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* Round 12 (Starting July 2024) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page organizing/archiving general interest seminars (became a part of Compute Ontario Colloquia weekly series starting January 2023).&lt;br /&gt;
&lt;br /&gt;
== Round 1 (Starting May 2011) ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Dates !! Att&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || Serial farming and Monte Carlo for SHARCNET || 2011/05/18 || 15&lt;br /&gt;
|-&lt;br /&gt;
|David || Automating Tasks with bash || 2011/06/08 || 8&lt;br /&gt;
|-&lt;br /&gt;
|HughM || [[Debugging at SHARCNET]] || 2011/06/29 || 11&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || Introduction to Linux || 2011/07/20 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || Linear Algebra on GPU || 2011/09/21 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[MATLAB Parallel Computing Toolbox on SHARCNET]]|| 2011/10/12 || 7&lt;br /&gt;
|-&lt;br /&gt;
|Alex || Visualizing Data with Paraview || 2011/11/02 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || Managing your files effectively at SHARCNET with SVN || 2011/11/23 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || Introduction to Valgrind || 2012/03/14 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Nick ||Optimizing Tools for Development and Execution of Programs || 2012/04/04 || 14&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 2 (Starting Sept. 2012) ==&lt;br /&gt;
&lt;br /&gt;
Note: henceforth, there is expected to be a General Interest Seminar every month, on the third Wednesday at noon.  Please be responsible about this and plan for your month.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Month !! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
| SEP || Pawel || Why Would I Use GPUs? || 2012/09/26 || 12&lt;br /&gt;
|-&lt;br /&gt;
| OCT || Tyson  || Introduction to Valgrind || 2012/10/17 || 5&lt;br /&gt;
|-&lt;br /&gt;
| NOV || HughM || [[New User Seminar - Part 2]] || 2012/11/21 || 15&lt;br /&gt;
|-&lt;br /&gt;
| DEC || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| JAN || Isaac || Shell scripting || 2013/01/23 || 18&lt;br /&gt;
|-&lt;br /&gt;
| FEB || Jemmy || SHARCNET Software Support Updates || 2013/02/27 || 7&lt;br /&gt;
|-&lt;br /&gt;
| MAY || Sergey || Quick-n-dirty ways to run your serial code faster, in parallel || 2013/05/01 || 15&lt;br /&gt;
|-&lt;br /&gt;
| JUNE || David || Parallel programming patterns || 2013/06/ || &lt;br /&gt;
|-&lt;br /&gt;
| JUL || Alex || || 2013/07/ || &lt;br /&gt;
|-&lt;br /&gt;
| AUG || Baolai || || 2013/08/ || &lt;br /&gt;
|-&lt;br /&gt;
| SEP || Nick || || 2013/09/ ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 3 (Starting Sept. 2013) ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Month !! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
| NOV || Isaac || [[Introduction to Linux]] || 2013/11/20 || 32&lt;br /&gt;
|-&lt;br /&gt;
| DEC || Pawel || [[Why Would I Use GPUs?]] || 2013/12/18 || 22&lt;br /&gt;
|-&lt;br /&gt;
| JAN || Alex || [[Using parallel I/O in SHARCNET]] || 2014/01/15 || 10&lt;br /&gt;
|-&lt;br /&gt;
| FEB || Sergey || [[Profiling MPI codes with Allinea&amp;#039;s MAP]] || 2014/02/19 || 10&lt;br /&gt;
|-&lt;br /&gt;
| MAR || Baolai || [[Managing your files effectively at SHARCNET with SVN]] || 2014/03/19 || 8&lt;br /&gt;
|-&lt;br /&gt;
| APR || Tyson  || [[My code doesn&amp;#039;t crash -- why should I still use Valgrind?]] || 2014/04/16  || 17&lt;br /&gt;
|-&lt;br /&gt;
| MAY || Jemmy || [[Running MATLAB in SHARCNET]] || 2014/05/21 || 34&lt;br /&gt;
|-&lt;br /&gt;
| JUNE || Hugh || [[Webinar 2014 Debugging at SHARCNET|Debugging at SHARCNET]] || 2014/06/18 || 20&lt;br /&gt;
|-&lt;br /&gt;
| JUL || James || [[Webinar 2014 Transitioning from Matlab to Octave|Transitioning from Matlab to Octave]] || 2014/07/16 || ?&lt;br /&gt;
|-&lt;br /&gt;
| AUG ||  || || 2014/08/20 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Round 4 (Starting Sept. 2014) ==&lt;br /&gt;
&lt;br /&gt;
Note: with the new (biweekly) schedule, full time HPTC will have to give 2 seminars per year. &amp;#039;&amp;#039;&amp;#039;Please make at least one of these two seminars a new one&amp;#039;&amp;#039;&amp;#039; (the other one can be an old recycled one).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att !! Reg&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[webinar 2014 Advanced Message Passing in MPI: Using MPI Datatypes with Opaque C++ Types|Advanced Message Passing in MPI: Using MPI Datatypes with Opaque C++ Types]] || 2014/09/17 || 7 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[webinar 2014 An Introduction to Java Threads|An Introduction to Java Threads]] || 2014/10/01 || 9 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[webinar 2014 CUDA Basics and how to in SHARCNET|CUDA Basics and how to]] || 2014/10/15 || 20 || 31&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[webinar 2014 Is the Intel Xeon Phi right for me?|Is the Intel Xeon Phi right for me?]] || 2014/10/29 || 11 || 15&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Linear Algebra on GPU]] || 2014/11/12 || 11 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2014 The SHARCNET Desktop|The SHARCNET Desktop]] || 2014/11/26 || 17 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Weiguan || [[webinar 2014 Programming with VTK - a high-level visualization library |Programming with VTK - a high-level visualization library]] || 2014/12/10 || 18 || 14&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2015 SHARCNet file management|SHARCNet file management]] || 2015/01/07 || 15 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Hugh || [[webinar 2015 New User Seminar - Part 2|New User Seminar - Part 2]] || 2015/01/21 || 10 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[webinar 2015 Deep Learning on SHARCNET: From CPU to GPU cluster|Deep Learning on SHARCNET: From CPU to GPU cluster]] || 2015/02/04 || 40 || 22&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2015 Serial and parallel farming from A to Z|Serial and parallel farming from A to Z]] || 2015/02/18 || 30 || 23&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[The Relevance of OpenCL to HPC]] || 2015/03/04 || 15+20 live || 12&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[webinar 2015 Programming, best practices| Programming, best practices]] || 2015/03/18 || 23 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2015 Numerical libraries for scientific computing|A brief look at numerical libraries: The tools you can use]] || 2015/04/01 || 8 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[webinar 2015 An Update on MATLAB at SHARCNET| An Update on MATLAB at SHARCNET]] || 2015/04/15 || 7 || 13&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2015 High Performance Computing with Python| High Performance Computing with Python]] || 2015/04/29 || 39 || 29&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2015 Exploring a new approach to package management| Exploring a new approach to package management]] || 2015/05/14 || 6 || 3&lt;br /&gt;
|-&lt;br /&gt;
| || [[]] || 2015/05/27 || canceled&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[webinar 2015 Get the most out of SharcNET|Get the most out of SharcNET]] || 2015/06/10 || 25 || 23&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2015 Programming with Wt - A C++ library for developing stateful and highly interactive web applications|Programming with Wt - A C++ library for developing stateful and highly interactive web applications]] || 2015/06/24 || 7 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[Hybrid MPI and OpenMP Parallel Programming]] || 2015/07/08 || 17 || 13&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2015 Debugging and profiling of MPI programs| Debugging and profiling of MPI programs]] [[]] || 2015/07/22 || 15 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Baolai|| [[webinar 2015 Parallel programming without MPI - Using coarrays in Fortran|Parallel programming without MPI - Using coarrays in Fortran]] || 2015/08/05 || 10 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Isaac|| [[webinar 2015 Introduction to Parallel I/O| Introduction to Parallel I/O]] || 2015/08/19 || 18 || 16&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 5 (Starting Sept. 2015) ==&lt;br /&gt;
&lt;br /&gt;
Note: with the new (biweekly) schedule, full time HPTC will have to give 2 seminars per year. &amp;#039;&amp;#039;&amp;#039;Please make at least one of these two seminars a new one&amp;#039;&amp;#039;&amp;#039; (the other one can be an old recycled one).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att !! Reg&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[webinar 2015 cientific Visualization with ParaView| Scientific Visualization with ParaView]] || 2015/9/16 || 23 || 15&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2015 Profiling function vectorization in Matlab/Octave | Profiling function vectorization in Matlab/Octave ]] || 2015/9/30 || 11 || 4&lt;br /&gt;
|-&lt;br /&gt;
|Fei ||  [[webinar 2015 CUDA Profiling and Tuning| CUDA Profiling and Tuning]]  || 2015/10/14 || 18 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Hugh || [[webinar 2015 Fundamentals of working at the command line at SHARCNET| Fundamentals of working at the command line at SHARCNET]] || 2015/10/28 || 35 || 16&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[webinar 2015 Introduction to MPI - Part I| Introduction to MPI - Part I]]|| 2015/11/11 || 20 || 25&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2015 Introduction to MPI - Part II| Introduction to MPI - Part II]]|| 2015/11/25 || 10 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[webinar 2015 Parallel Design Patterns| Parallel Design Patterns]] || 2015/12/9 || 10 || 15&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2016 Automating Software Build Process using CMake| Automating Software Build Process using CMake]] || 2016/1/6 || 16 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[webinar 2016 Introduction to OpenMP Parallel Programming| Introduction to OpenMP Parallel Programming]]|| 2016/1/20 || 5 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2016 UNIX shell expansion: proper use and advanced forms| UNIX shell expansion: proper use and advanced forms]] || 2016/2/3 || 17 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2016 Parallel and high performance computing with R| Parallel and high performance computing with R]] || 2016/2/17 || 24 || 21&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[webinar 2016 Raphaël - a vector graphics library for web development|Raphaël - a vector graphics library for web development]] || 2016/3/2 || 6 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2016 Debugging OpenMP programs| Debugging OpenMP programs]] || 2016/3/16 || 1 || 3&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[webinar 2016 How to get started with OpenFOAM at SHARCNET|How to get started with OpenFOAM at SHARCNET]] || 2016/3/30 || 14 || 7&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2016 Quick tips for getting the most out of SHARCNET|Quick tips for getting the most out of SHARCNET]] || 2016/4/13 || 17 || 13&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[webinar 2016 Deep Learning on SHARCNET: Tools you can use|Deep Learning on SHARCNET: Tools you can use]] || 2016/4/27 || 38 || 23&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2016 Git and SHARCNET|Git and SHARCNET ]] || 2016/5/11 || 14 || 10&lt;br /&gt;
|-&lt;br /&gt;
|Doug || Canceled || 2016/5/25 || &lt;br /&gt;
|-&lt;br /&gt;
|Jose || [[webinar 2016 Introduction to Apache Spark on SHARCNET|Introduction to Apache Spark on SHARCNET]] || 2016/6/8 || 15 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Hugh || Canceled || 2016/6/22 || &lt;br /&gt;
|-&lt;br /&gt;
|Ed || Canceled || 2016/7/6 || &lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[Hybrid MPI and OpenMP Parallel Programming]] || 2016/7/20 || 7 || 10&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2016 Introduction to MPI - Part III|Introduction to MPI - Part III]] || 2016/8/3 || 0 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[webinar 2016 Introduction to Jupyter| Introduction to Jupyter]] || 2016/8/17 || 14 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2016 Automating Software Build Process using CMake| Automating Software Build Process using CMake]] || 2016/9/14 || 6 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2016 Introduction to The Shell|Introduction to The Unix Shell - Automating Your Work]] || 2016/9/28 || 23 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[webinar 2016 What Happened to My Job?  Cluster Scheduling In Detail|What Happened to My Job?  Cluster Scheduling In Detail]] || 2016/10/12 || 17 || 11&lt;br /&gt;
|-&lt;br /&gt;
|Isaac ||[[webinar 2016 Introduction To Python|Introduction To Python: simple practise of data analysis]] || 2016/10/26 || 24 || 30&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[webinar 2016 Debugging CUDA programs| Debugging CUDA programs]] || 2016/11/9 || 3 || 1&lt;br /&gt;
|-&lt;br /&gt;
|Doug || Canceled || 2016/11/23 || 0 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[webinar 2016 Defensive Programming : Best Practices|Defensive Programming : Best Practices]] || 2016/12/7 || 8 || 15&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 6 (Starting January 2017) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att !! Reg&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[webinar 2017 Introduction to ParaView|Introduction to ParaView]] || 2017/1/4 || 12 || 13&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2017 Navigating the research computing resource renewals coming in 2017|Navigating the research computing resource renewals coming in 2017]] || 2017/1/18 || 11 || 10&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[webinar 2017 Deep Learning on SHARCNET: Best Practices |Deep Learning on SHARCNET: Best Practices]] || 2017/2/1 || 23 || 24&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2017 Git and SHARCNET (part 2)|Git and SHARCNET (part 2)]]|| 2017/2/15 || 5 || 13&lt;br /&gt;
|-&lt;br /&gt;
|Jose || [[webinar 2017 Machine Learning with Spark at SHARCNET|Machine Learning with Spark at SHARCNET ]]  || 2017/3/1 || 12 || 28&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2017 High Performance Computing with Python|High Performance Computing with Python]]|| 2017/3/15 || 27 || 37&lt;br /&gt;
|-&lt;br /&gt;
|Paul || CANCELED (speaker not ready) || 2017/3/29 || || &lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2017 Modern Fortran: Concurrency |Modern Fortran: Concurrency and Parallelism]] || 2017/4/12 || 18 || 22&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||  [[webinar 2017 Automating Software Build Process using CMake – Part II|Automating Software Build Process using CMake – Part II]] || 2017/4/26 || 2 || 1&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[OpenMP 4.x: New features and Protocols]] || 2017/5/10 || 9 || 3&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[Webinar 2017 How to compile/run OpenFOAM in SHARCNET |How to compile/run OpenFOAM in SHARCNET]] || 2017/5/24 || 10 || 7&lt;br /&gt;
|-&lt;br /&gt;
|Ed || CANCELED (one attendee)|| 2017/6/7 || 1 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2017 What&amp;#039;s new and exciting about Graham&amp;#039;s GPUs| What&amp;#039;s new and exciting about Graham&amp;#039;s GPUs]] || 2017/6/21 || 27 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Webinar 2017 Train models to recognize hand-written digits using Tensorflow|Train models to recognize hand-written digits using Tensorflow]] || 2017/7/5 || 24 || 23&lt;br /&gt;
|-&lt;br /&gt;
|James || [[Webinar 2017 How jobs are scheduled to run on Graham and Cedar|How jobs are scheduled to run on Graham and Cedar]] || 2017/7/19 || 55 || 34&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2017 Intel MPI Library Cluster Edition on Graham|Intel MPI Library Cluster Edition on Graham]] || 2017/8/2 || 6 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Webinar 2017 Packaging with Nix|Packaging with Nix]] || 2017/8/16 || 6 || 4&lt;br /&gt;
|-&lt;br /&gt;
|Kamil || [[Webinar 2017 Partitions and scheduling, running jobs effectively on Graham and Cedar | Partitions and scheduling, running jobs effectively on Graham and Cedar]] || 2017/9/13 || 34 || 24&lt;br /&gt;
|-&lt;br /&gt;
|Fei || [[Webinar 2017 Training Neural Networks with hundreds of GPUs on Graham and Cedar | Training Neural Networks with hundreds of GPUs on Graham and Cedar]] || 2017/9/20 || 46 || 36&lt;br /&gt;
|-&lt;br /&gt;
|Mohamed|| [[Webinar 2017 Introduction to SHARCNET Cloud|Introduction to SHARCNET Cloud]] || 2017/9/27 || 19 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Webinar 2017 Linear Algebra on GPU| Linear Algebra on GPU]] || 2017/10/11 || 20 || 16&lt;br /&gt;
|-&lt;br /&gt;
|Jose || [[Webinar 2017 Machine Learning using Jupyter Notebooks on Graham|Machine Learning using Jupyter Notebooks on Graham]]  || 2017/10/25 || 36  || 34&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[Webinar 2017 Introduction to LINUX/SHELL programming in SHARCNET|Introduction to LINUX/SHELL programming in SHARCNET]] || 2017/11/8 || 31 || 33&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2017 Serial farming on Graham|Serial farming on Graham]] || 2017/11/22 || 22 || 17&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[Webinar 2017 Introduction to Eclipse for debugging - Part I|Introduction to Eclipse for debugging - Part I]] || 2017/12/6 || 10 || 4&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2018 Intro to Intel Performance Tools|Intro to Intel Performance Tools]] || 2018/1/17 || 8 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[Webinar 2018 Deploying a Full Stack Web Solution on the Cloud for Cluster Access|Deploying a Full Stack Web Solution on the Cloud for Cluster Access]] || 2018/1/31 || 22 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[Webinar 2018 Singularity|Singularity]] || 2018/2/14 || 13 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[Webinar 2018 Visual Studio Code - Your Next Coding Companion for Advanced Research Computing|Visual Studio Code - Your Next Coding Companion for Advanced Research Computing]] || 2018/2/28 || 14 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[Webinar 2018 Using SSH for Good, not Evil|Using SSH for Good, not Evil]] || 2018/3/14 || 17 || 16&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 7 (Starting March 2018) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att !! Reg&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Using Computational Chemistry software effectively on Graham]] || 2018/3/28 || 14 || 4&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2018 Improving your Python programs with NumPy and SciPy|Improving your Python programs with NumPy and SciPy]] || 2018/4/11 || 24 || 22&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2018 All about job wait times in the Graham queue|All about job wait times in the Graham queue ]] || 2018/4/25 || 31 || 22&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2018 Summer School preview|Summer School preview]] || 2018/5/9 || 18 || 14&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || CANCELED || 2018/5/23 || 0 || &lt;br /&gt;
|-&lt;br /&gt;
|Jose || CANCELED || 2018/6/6 || 0 || &lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[webinar 2018 Fundamentals of working at the command line at Graham|Fundamentals of working at the command line at Graham]] || 2018/6/20 || 30 || 28&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2018 Debugging on Graham with DDT|Debugging on Graham with DDT]] || 2018/7/4 || 6 || 7&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||  [[webinar 2018 Mixed Source C, C++, and Fortran Programs|Mixed Source C, C++, and Fortran Programs]] || 2018/7/18 || 18 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||  [[webinar 2018 Introduction to MySQL on Graham|Introduction to MySQL on Graham]]|| 2018/8/1 || 15 || 14&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||  [[webinar 2018 Harnessing the Power of Heterogeneous Computing using Boost.Compute + OpenCL|Harnessing the Power of Heterogeneous Computing using Boost.Compute + OpenCL ]] || 2018/8/15 || 7 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2018 Concurrent File I/O by Multiple Processes|Concurrent File I/O by Multiple Processes]] || 2018/9/12 || 13 || 7&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[webinar 2018 The Benefits of GLOST for Many Jobs|The Benefits of GLOST for Many Jobs]] || 2018/9/26 || 9 || 9&lt;br /&gt;
|-&lt;br /&gt;
|James || [[webinar 2018 Understand (and potentially reduce) job wait times by examining scheduler configuration, load in the queue and account usage|Understand (and potentially reduce) job wait times by examining scheduler configuration, load in the queue and account usage]] || 2018/10/10 || 23 || 18&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[webinar 2018 Stock Prediction Using Recurrent Neural Network|Stock Prediction Using Recurrent Neural Network]] || 2018/10/24 || 33 || 29&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[webinar 2018 Using MATLAB effectively on Graham and Cedar|Using MATLAB effectively on Graham and Cedar]] || 2018/11/7 || 33 || -&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[webinar 2018 MySQL Part 2:  Relations and Joins|MySQL Part 2:  Relations and Joins]] || 2018/11/21 || 5 || -&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[webinar 2018 Using Pseudorandom Number Sequences in C++|Using Pseudorandom Number Sequences in C++]]  || 2018/12/5 || 7 || -&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2018 Code profiling on Graham|Code profiling on Graham]]|| 2018/12/19 || 26 || -&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[webinar 2018 The Monad Understanding Hurdle|The Monad Understanding Hurdle]]|| 2019/1/16 || 9 || -&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[webinar 2018 Best practices for newbies on Graham|Best practices for newbies on Graham]]|| 2019/1/30 || 35 || -&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[webinar 2019 What Happened To My Job?|What Happened To My Job? ]]|| 2019/2/13 || 15 || &lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2019 Dipping into C++17 Parallel Algorithms with Intel&amp;#039;s Parallel STL|Dipping into C++17 Parallel Algorithms with Intel&amp;#039;s Parallel STL]] || 2019/2/27 || 14 || &lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[webinar 2019 Exploring the Use of Application Software on Grahams Visualization Machine|Exploring the Use of Application Software on Grahams Visualization Machine]] || 2019/3/13 || 35 || &lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[webinar 2019 Introduction to parallel programming with MPI and Python|Introduction to parallel programming with MPI and Python]] || 2019/3/27 || 25 || - &lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[webinar 2019 Exploring Octave package dataframe|Exploring Octave package dataframe]] || 2019/4/10 || 2 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 8 (Starting April 2019) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James || [[Webinar 2019 PRE and POST production on Graham|PRE and POST production on Graham]] || 2019/4/24 || 12&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Webinar 2019 Pull your own data into ParaView|Pull your own data into ParaView]] || 2019/5/8 || 31&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[The New Development of OpenMP]] || 2019/5/22 || 22&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[Webinar 2019 Julia - A first perspective|Julia - A first perspective]] || 2019/6/5 || 45&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[Webinar 2019 Using C++&amp;#039;s Parallel Algorithms|Using C++&amp;#039;s Parallel Algorithms]]|| 2019/6/19 || 14&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || CANCELED || 2019/7/3 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Webinar 2019 The Monad Understanding Hurdle (Part 2)|The Monad Understanding Hurdle (Part 2)]] || 2019/7/17 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[Webinar 2019 Fundamentals of working at the command line at Graham| Fundamentals of working at the command line at Graham ]] || 2019/7/31 || 54&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[Webinar 2019 Is It Possible to Use C++ Parallel Algorithms in a Distributed Memory Setup (i.e. MPI)?|Is It Possible to Use C++ Parallel Algorithms in a Distributed Memory Setup (i.e. MPI)?]] || 2019/8/14 || 8&lt;br /&gt;
|-&lt;br /&gt;
|Doug || CANCELED || 2019/9/11 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[Webinar 2019 Using reduced numerical precision on Pascal, Volta and Turing GPUs|Using reduced numerical precision on Pascal, Volta and Turing GPUs]] || 2019/9/25 || 6&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui || [[Webinar 2019 Introduction to scalable computing with Dask in Python| Introduction to scalable computing with Dask in Python ]] || 2019/10/9 || 40&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2019 Leveraging Compiler Optimization Reports|Leveraging Compiler Optimization Reports ]] || 2019/10/23 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Webinar 2019 Using Multiple GPUs in Tensorflow|Using Multiple GPUs in Tensorflow]] || 2019/11/6 || 18&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[Webinar 2019 Julia: A second perspective|Julia: A second perspective]]  || 2019/11/20 || 5&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[Webinar 2019 Docker|Docker]]|| 2019/12/4 || 27&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Webinar 2019 Introduction to HPC Programming Language Chapel: Base Language Overview |Introduction to HPC Programming Language Chapel: Base Language Overview ]] || 2019/12/18 || 10&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Webinar 2019 The Monad Understanding Hurdle (Part 3)|The Monad Understanding Hurdle (Part 3)]] || 2020/1/15 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[Webinar 2019 Singularity 3.5|Singularity 3.5]]|| 2020/1/29 || 27&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2019 New User Seminar, Part II|New User Seminar, Part II]] || 2020/2/12 || 23&lt;br /&gt;
|-&lt;br /&gt;
|Isaac || [[Webinar_2020_how_to_run_AI_programs_in_Graham| How to Run AI programs in Graham]]|| 2020/2/26 || 44&lt;br /&gt;
|-&lt;br /&gt;
|Baolai|| [[Julia: A third perspective - parallel computing explained]] || 2020/3/11 || 18&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[Webinar_2020_Introduction_to_scalable_computing_with_Dask_in_Python_(Continued)|Introduction to scalable computing with Dask in Python (Continued)]] || 2020/3/25 || 15&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||  [[Webinar 2020 Using SSHFS to make CC storage more accessible|Using SSHFS to make CC storage more accessible]] || 2020/4/8 || 21&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Webinar 2020 Collaborative Groups in CUDA|Collaborative Groups in CUDA]] || 2020/4/22 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Doug||CANCELED || 2020/5/6 || &lt;br /&gt;
|-&lt;br /&gt;
|Armin ||CANCELED || 2020/5/20 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 9 (Starting July 2020) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Webinar 2020 Cython: A First Look|Cython: A First Look]] || 2020/7/8 || 60&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Webinar 2020 Visualizing job usage on the Compute Canada systems with the ViewClust Python package|Visualizing job usage on the Compute Canada systems with the ViewClust Python package]] || 2020/7/15 || 33&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Webinar 2020 How to Use C++ Parallel Algorithms in a Distributed Memory Setup (i.e. MPI)|How to Use C++ Parallel Algorithms in a Distributed Memory Setup (i.e. MPI)]] || 2020/7/29 || 15 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergio ||[[Webinar 2020 Bioinformatics in the terminal: Tips and tricks to make your life easier|Bioinformatics in the terminal: Tips and tricks to make your life easier]] || 2020/8/12 || 47 ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2020 Options for Solving Jobs with Many Tasks|Options for Solving Jobs with Many Tasks]]|| 2020/9/9 || 13 || 30&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[Webinar 2020 Is my neural network too big to fit into GPU?|Is my neural network too big to fit into GPU?]] || 2020/9/23 || 59 || 93&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Webinar 2020 Introduction to HPC Programming Language Chapel: Parallel Approaches|Introduction to HPC Programming Language Chapel: Parallel Approaches ]]|| 2020/10/7 || 7 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[Webinar 2020 Introduction to Git|Introduction to Git]] || 2020/10/21 || 50 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[Webinar 2020 Julia - Parallel computing revisited|Julia: Parallel computing revisited]] || 2020/11/4 || 8 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[Webinar 2020 NixOS: The second largest and the most up-to-date Linux distribution|NixOS: The second largest and the most up-to-date Linux distribution]] || 2020/11/18 || 18 ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Webinar 2020 Practical Singularity|Practical Singularity]] || 2020/12/2 || 28 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[Webinar 2020 Offload Analytics Workload in Python to GPUs with RAPIDS|Offload Analytics Workload in Python to GPUs with RAPIDS]]  || 2020/12/16 || 46 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[Webinar 2021 Programming GPUs with Fortran|Programming GPUs with Fortran]] || 2021/1/13 || 25 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[Webinar 2021 Computing in arbitrary precision|Computing in arbitrary precision]] || 2021/1/27 || 13 ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Isaac&amp;#039;&amp;#039;&amp;#039; || [[Webinar 2021 Some ML practices running GPUs in Compute Canada system|Using multiple GPUs for Machine Learning]] || 2021/2/10 || &amp;#039;&amp;#039;&amp;#039;63&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|James || [[Webinar 2021 Generating interactive visualizations with Plotly on Graham|Generating interactive visualizations with Plotly on Graham]]|| 2021/2/24 || 47 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Webinar 2021 Scalable Memory Allocation for Parallel Algorithms| Scalable Memory Allocation for Parallel Algorithms]] || &amp;#039;&amp;#039;&amp;#039;2021/3/17&amp;#039;&amp;#039;&amp;#039; || 7 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergio ||[[Webinar 2021 FauxConda: ways to use Conda without conda|FauxConda: ways to use Conda without conda]] || 2021/3/24 || 27 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[An Update to ADF/AMS software on Graham]]|| 2021/4/7 || 14 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2021 Debugging your code with DDT|Debugging your code with DDT]] || 2021/4/21 || 15 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler || [[Webinar 2021 Pandas Recipes for New Python Users|Pandas Recipes for New Python Users]] || 2021/5/5 || 53 ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[Webinar 2021 DIY Local Program Installation|DIY Local Program Installation]] || 2021/5/19 || 15 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||CANCELED  || 2021/6/2 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Webinar 2021 Learning from competition|Learning from competition]] || 2021/6/16 || 103 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || CANCELED || 2021/6/30 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[Webinar 2021 Hybrid MPI|Hybrid MPI]] || 2021/7/14 || 41 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[Webinar 2021 Comparing CPU, GPU, memory, interconnect and filesystem performance across National systems|Comparing CPU, GPU, memory, interconnect and filesystem performance across National systems]]|| 2021/7/28 || 22 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[Webinar 2021 Git Part 2 – Common Git Commands|Git Part 2 – Common Git Commands]] || 2021/8/11 || 41 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[Webinar 2021 Eclipse Part2|Introduction to Eclipse Part 2 - Developing and debugging MPI code]] || 2021/9/8 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Webinar 2021 ROCm: AMD&amp;#039;s platform for GPU computing|ROCm: AMD&amp;#039;s platform for GPU computing]] || 2021/9/22 || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[Webinar 2021 META: running a large number of jobs conveniently|META: running a large number of jobs conveniently]]|| 2021/10/6 || 74 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[Webinar 2021 Scaling Hyperparameter Tuning with Dask-ML on Clusters|Scaling Hyperparameter Tuning with Dask-ML on Clusters]] || 2021/10/20 || 51 ||&lt;br /&gt;
|-&lt;br /&gt;
|Isaac ||[[Webinar 2021 Running machine learning example (MNIST) on multi-cores/nodes in Graham |Running machine learning example (MNIST) on multi-cores/nodes in Graham]] || 2021/11/3 || 96 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Webinar 2021 The Layered Grammar of Graphics (gglot2/plotnine)|The Layered Grammar of Graphics (gglot2/plotnine)]] || 2021/11/17 || 59 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || [[Webinar 2021 Eclipse Part3|Introduction to Eclipse Part 3 - Debugging MPI code]] || 2021/12/1 || 9 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 10 (Starting December 2021) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[webinar 2021 Tips for identifying when job wait times can be reduced by job submission parameter changes|Tips for identifying when job wait times can be reduced by job submission parameter changes]] || 2021/12/15 || 68 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin || [[webinar 2022 Remote Development on Clusters with VSCode|Remote Development on Clusters with VSCode]] || 2022/1/12 || 62 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergio || [[webinar 2022 From histograms to dashboards: An introduction to data visualization with Python|From histograms to dashboards: An introduction to data visualization with Python]]|| 2022/1/26 || &amp;#039;&amp;#039;&amp;#039;116&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[webinar 2022 Conquering the Scheduler|Conquering the Scheduler]] || 2022/2/9 || 49 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || [[webinar 2022 Gaussian16 and NBO7 on Graham and Cedar|Gaussian16 and NBO7 on Graham and Cedar]] || 2022/2/23 || 50 ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug ||[[webinar 2022 More Options for Solving Jobs with Many Tasks|More Options for Solving Jobs with Many Tasks]] || 2022/3/9 || 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[webinar 2022 Using Tensorboard to debug and profile neural network models|Using Tensorboard to debug and profile neural network models]] || 2022/3/23 || 35 ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[webinar 2022 Apptainer|Apptainer]] || 2022/4/6 || 39 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark || [[webinar 2022 10 ways to optimize your workflow|10 ways to optimize your workflow]]|| 2022/4/20 || 39 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||  [[webinar 2022 Demystifying Web Portals|Demystifying Web Portals]] || 2022/5/4 || 29 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[webinar 2022 Profiling GPU codes with Nsight|Profiling GPU codes with Nsight]] || 2022/5/18 || 23 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[webinar 2022 Speeding up Python code with Numba|Speeding up Python code with Numba]] || 2022/6/1 || &amp;#039;&amp;#039;&amp;#039;58&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[webinar 2022 Realtime display with Gnuplot|Realtime display with Gnuplot]] || 2022/6/15 || 24 ||&lt;br /&gt;
|-&lt;br /&gt;
|Isaac ||[[webinar 2022 Running PyTorch codes with multi-GPU/nodes on national systems|Running PyTorch codes with multi-GPU/nodes on national systems]] || 2022/6/29 || 54 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[webinar 2022 Working with Jupyter on Clusters|Working with Jupyter on Clusters]] || 2022/7/13 || 56 ||&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[webinar 2022 Visualizing job properties for wait time assessment|Visualizing job properties for wait time assessment]] || 2022/7/27 || 31 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[webinar 2022 Debugging with ParaView|Debugging with ParaView]] || 2022/8/10 || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[webinar 2022 Remote Development on Clusters with VSCode - Part II|Remote Development on Clusters with VSCode - Part II]] || 2022/9/7 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[webinar 2022 Creating and Distributing Python Packages|Creating and Distributing Python Packages]] || 2022/9/21 ||  45||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[webinar 2022 Transfer Learning with Tensorflow Hub|Transfer Learning with Tensorflow Hub]] || 2022/10/5 ||  26||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || [[webinar 2022 Strategies For Managing Filesystem Quotas|Strategies For Managing Filesystem Quotas]]|| 2022/10/19 || 24 ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul || [[webinar 2022 Profiling &amp;amp; Performance Tuning CPU Programs| Profiling &amp;amp; Performance Tuning CPU Programs]] || 2022/11/2 ||  19||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || [[webinar 2022 Video Editing with KDEnLive|Video Editing with KDEnLive]]   || 2022/11/16 ||21||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[webinar 2022 Deploying a simple Express.js Web App|Deploying a simple Express.js Web App]] || 2022/11/30 ||  12||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[webinar 2022 Which GPU should I use?|Which GPU should I use?]] || 2022/12/14 || 24 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||[[colloquium 2023 Performance: current and upcoming systems|Performance: current and upcoming systems ]] || 2023/1/11 || 31 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jeff Moon ||[[colloquium 2023 How Research Data Management (RDM) Intersects with ARC and Why Should I Care?|How Research Data Management (RDM) Intersects with ARC and Why Should I Care?]] || 2023/1/25 || 49 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[colloquium 2023 An introduction to MPLAPACK, a multi-precision linear algebra library| An introduction to MPLAPACK, a multi-precision linear algebra library]] || 2023/2/8 || 15 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[colloquium 2023 Accelerated DataFrame with Dask-cuDF on multiple GPUs|Accelerated DataFrame with Dask-cuDF on multiple GPUs]] || 2023/2/22 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[colloquium 2023 plotnine: R&amp;#039;s Grammar of Graphics in Python|plotnine: R&amp;#039;s Grammar of Graphics in Python]]|| 2023/3/8 || 29 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 11 (Starting March 2023) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James || [[colloquium 2023 Before and after submitting Octave/Matlab jobs on the clusters|Before and after submitting Octave/Matlab jobs on the clusters]] || 2023/3/22 || 10 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[colloquium 2023 Running MATLAB on Alliance&amp;#039;s Clusters|Running MATLAB on Alliance&amp;#039;s Clusters]] || 2023/4/5 || 27 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[colloquium 2023 CUDA, ROCm, oneAPI – All for One or One for All?|CUDA, ROCm, oneAPI – All for One or One for All?]] || 2023/4/19 || 33 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[colloquium 2023 Modern Approaches to Profiling in Python with Scalene|Modern Approaches to Profiling in Python with Scalene]] || 2023/5/3 || 29 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[colloquium 2023 Contrastive learning|Contrastive learning]] || 2023/5/17 || &amp;#039;&amp;#039;&amp;#039;63&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul || CANCELED   || 2023/5/31 || ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || CANCELED || 2023/6/14 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey || CANCELED || 2023/6/28 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed || [[colloquium 2023 Leveraging the power of Linux on Windows with WSL|Leveraging the power of Linux on Windows with WSL]]|| 2023/7/12 || 40 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||[[colloquium 2023 DIY job monitoring, from cache misses to CO2 footprint|DIY job monitoring, from cache misses to CO2 footprint]] || 2023/7/26 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[colloquium 2023 Automating scientific workflows with AiiDA|Automating scientific workflows with AiiDA]] || 2023/8/9 || 33 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai || CANCELED || 2023/8/23 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul || CANCELED || 2023/9/6 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson || [[Colloquium 2023 Data Wrangling with Tidyverse|Data Wrangling with Tidyverse]]|| 2023/9/20 || 27 ||&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Colloquium 2023 Exploring job wait times on Alliance compute clusters: a holistic view| Exploring job wait times on Alliance compute clusters: a holistic view]] || 2023/10/4 || 27 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Colloquium 2023 p2rng – A C++ Parallel Random Number Generator Library for the Masses|p2rng – A C++ Parallel Random Number Generator Library for the Masses]] || 2023/10/18 || 7 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Colloquium 2023 Generalized End to End Python and Neuroscience Workflows on a Compute Cluster| Generalized End to End Python and Neuroscience Workflows on a Compute Cluster]] || 2023/11/1 || 17 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[Colloquium 2023 Squeeze more juice out of a single GPU in deep learning| Squeeze more juice out of a single GPU in deep learning]] || 2023/11/15 || 54 ||&lt;br /&gt;
|-&lt;br /&gt;
|Collin ||[[Colloquium 2023 Skorch: Training PyTorch models with scikit-learn|Skorch: Training PyTorch models with scikit-learn]] || 2023/11/29 || 34 ||&lt;br /&gt;
|-&lt;br /&gt;
|Doug || CANCELED || 2023/12/13 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Colloquium 2024 False Sharing and Contention in Parallel Codes|False Sharing and Contention in Parallel Codes]] || 2024/1/17 || 17 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Colloquium 2024 Introduction to GPU programming with OpenMP|Introduction to GPU programming with OpenMP]]|| 2024/1/31 || 30 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[Colloquium 2024 MySQL Part 3: Constraints and Joins|MySQL Part 3: Constraints and Joins]] || 2024/2/14 || 11 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[Colloquium 2024 Debugging your code with DDT|Debugging your code with DDT]] || 2024/2/28 || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||[[Colloquium 2024 Make: obsolete or elegant?|Make: obsolete or elegant?]] || 2024/3/13 || 16 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui || [[Colloquium 2024 Accelerating Graph Analysis on GPUs|Accelerating Graph Analysis on GPUs]]|| 2024/3/27 || 25 ||&lt;br /&gt;
|-&lt;br /&gt;
|Nastaran || [[Colloquium 2024 Accelerating data analytics with RAPIDS cuDF|Accelerating data analytics with RAPIDS cuDF]]|| 2024/4/10 || 17 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[Colloquium 2024 Data Wrangling with Tidyverse (part 2)|Data Wrangling with Tidyverse (part 2)]] || 2024/4/24 || 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel || [[Colloquium 2024 Compute Ontario Summer School 2024|Compute Ontario Summer School 2024]] || 2024/5/8 || 25 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 12 (Starting July 2024) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Colloquium 2024 Exploring Compute Usage from User Facing Portals on the National Clusters|Exploring Compute Usage from User Facing Portals on the National Clusters]] || 2024/7/17 || 13 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Colloquium 2024 The Emergence of WebAssembly (Wasm) in Scientific Computing|The Emergence of WebAssembly (Wasm) in Scientific Computing]] || 2024/8/7 || 12 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Colloquium 2024 Diagnosing Wasted Resources from User Facing Portals on the National Clusters|Diagnosing Wasted Resources from User Facing Portals on the National Clusters]] || 2024/8/14 || 21 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || [[Colloquium 2024 Using machine learning to predict rare events|Using machine learning to predict rare events]]|| 2024/8/28 || &amp;#039;&amp;#039;&amp;#039;51&amp;#039;&amp;#039;&amp;#039; ||&lt;br /&gt;
|-&lt;br /&gt;
|Collin ||[[Colloquium 2024 Debugging and Optimization of PyTorch Models|Debugging and Optimization of PyTorch Models]] || 2024/9/11 || 42 ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Colloquium 2024 Multidimensional Arrays in C++|Multidimensional Arrays in C++]] || 2024/9/25 || 13 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||[[Colloquium 2024 Introspection for Jobs: in-job monitoring of performance|Introspection for Jobs: in-job monitoring of performance]] || 2024/10/9 || 18 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Colloquium 2024 Parallel Programming: MPI I/O Basics|Parallel Programming: MPI I/O Basics]] || 2024/10/23 || 12 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[Colloquium 2024 Git Part 3: Managing Workflows|Git Part 3: Managing Workflows]] || 2024/11/6 || 10 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[Colloquium 2024 Survival guide for the upcoming GPU upgrades (more total power, but fewer GPUs)|Survival guide for the upcoming GPU upgrades (more total power, but fewer GPUs)]]  || 2024/11/20 || 30 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[Colloquium 2024 Data Wrangling with Tidyverse (part 3)|Data Wrangling with Tidyverse (part 3)]] || 2024/12/4 || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
|Nast ||[[Colloquium 2024 Unlocking the Power of Comet: Streamlining Machine Learning Experimentation|Unlocking the Power of Comet: Streamlining Machine Learning Experimentation]] || 2024/12/18 || 9 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||Canceled || 2025/1/15 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[Colloquium 2025 Converting Python code with NumPy to run on the GPU|Converting Python code with NumPy to run on the GPU]] || 2025/1/29 || 30 ||&lt;br /&gt;
|-&lt;br /&gt;
|Armin ||[[Colloquium 2025 High-Performance Data Science with Modern C++: Xeus-Cling and G3P|High-Performance Data Science with Modern C++: Xeus-Cling and G3P]] || 2025/2/12 || 9 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[Colloquium 2025 Reduction of errors, or the pursuit of correctness|Reduction of errors, or the pursuit of correctness]] || 2025/2/26 || 20 ||&lt;br /&gt;
|-&lt;br /&gt;
|James ||[[Colloquium 2025 Preview of the &amp;quot;Job Scheduling and Monitoring&amp;quot; self-paced course|Preview of the &amp;quot;Job Scheduling and Monitoring&amp;quot; self-paced course]] || 2025/3/12 || 4 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyler ||[[Colloquium 2025 Revisiting Cython: Is it still effective?|Revisiting Cython: Is it still effective?]] || 2025/3/26 || 14 ||&lt;br /&gt;
|-&lt;br /&gt;
|Collin ||[[Colloquium 2025 Too Big to Train: Large model training in PyTorch with Fully Sharded Data Parallel|Too Big to Train: Large model training in PyTorch with Fully Sharded Data Parallel]] || 2025/4/9 || 23 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jemmy ||[[Colloquium 2025 Parallel Programming: MPI I/O Advanced Features|Parallel Programming: MPI I/O Advanced Features]] || 2025/4/23 || 10 ||&lt;br /&gt;
|-&lt;br /&gt;
|Weiguang ||[[Colloquium 2025 Checkpoints: why, when and how|Checkpoints: why, when and how]] || 2025/5/7 || 14 ||&lt;br /&gt;
|-&lt;br /&gt;
|Mark ||CANCELED || 2025/5/21 ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|Paul ||[[Webinar 2025 Practical Multidimensional Arrays and Linear Algebra in C++|Practical Multidimensional Arrays and Linear Algebra in C++]] || 2025/7/2 || 10 ||&lt;br /&gt;
|-&lt;br /&gt;
|Ed ||[[Webinar 2025 Effortless Parallelism: Leveraging Julia Threads for High-Performance Scientific Computing|Effortless Parallelism: Leveraging Julia Threads for High-Performance Scientific Computing]] || 2025/7/16 || 18 ||&lt;br /&gt;
|-&lt;br /&gt;
|Sergey ||[[Webinar 2025 Migrating to the upgraded national systems|Migrating to the upgraded national systems]] || 2025/7/30 || 143 ||&lt;br /&gt;
|-&lt;br /&gt;
|Nast ||[[Webinar 2025 Interactive Interfaces for Machine Learning Using Gradio|Interactive Interfaces for Machine Learning Using Gradio]]  || 2025/8/13 || 21 ||&lt;br /&gt;
|-&lt;br /&gt;
|Tyson ||[[Webinar 2025 The Nibi&amp;#039;s web interface|The Nibi&amp;#039;s web interface]] || 2025/8/27 || 49 ||&lt;br /&gt;
|-&lt;br /&gt;
|Pawel ||[[Webinar 2025 Installing your software packages with Spack|Installing your software packages with Spack]] || 2025/9/10 || 24 ||&lt;br /&gt;
|-&lt;br /&gt;
|Jinhui ||[[Webinar 2025 Running JupyterLab on Nibi|Running JupyterLab on Nibi]] || 2025/9/24 || 40 ||&lt;br /&gt;
|-&lt;br /&gt;
|Baolai ||[[Webinar 2025 Running Linux on Windows and taking it with you anywhere|Running Linux on Windows and taking it with you anywhere]] || 2025/10/8 ||  ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Round 13 (Starting October 2025) ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;background:#fbfffa; text-align: left;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#9aff88;border-bottom: 3px solid grey;&amp;quot; align=&amp;quot;left&amp;quot;;&lt;br /&gt;
! Presenter !! Topic(s) !! Date !! Att&lt;br /&gt;
|-&lt;br /&gt;
|Doug ||[[Webinar 2025 Running Engineering Related Packages Interactively on Nibi|Running Engineering Related Packages Interactively on Nibi]] || 2025/10/22 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|James || || 2025/11/5 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Armin || || 2025/11/19 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Tyler || || 2025/12/3 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || || 2025/12/17 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Paul || || 2026/1/14 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Collin || || 2026/1/28 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || || 2026/2/11 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Ed || || 2026/2/25 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Mark || || 2026/3/11 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Jinhui || || 2026/3/25 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Sergey || || 2026/4/8 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Tyson || || 2026/4/22 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Baolai || || 2026/5/6 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Pawel || || 2026/7/15 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Nast || || 2026/7/29 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Doug || || 2026/8/12 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|James || || 2026/8/26 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Tyler || || 2026/9/9 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Armin || || 2026/9/23 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Paul || || 2026/10/7 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Weiguang || || 2026/10/21 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Ed || || 2026/11/4 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Collin || || 2026/11/18 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Mark || || 2026/12/2 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Jemmy || || 2026/12/16 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Baolai || || 2027/1/13 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Sergey || || 2027/1/27 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Jinhui || || 2027/2/10 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Tyson || || 2027/2/24 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Pawel || || 2027/3/10 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|Nast || || 2027/3/24 ||  || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Reporting]]&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=954</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=954"/>
		<updated>2024-09-17T18:01:06Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* How do I edit my program on a cluster? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Sharcnet_logo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== About SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== What is SHARCNET? ===&lt;br /&gt;
SHARCNET stands for Shared Hierarchical Academic Research Computing Network. Established in 2000, SHARCNET is the largest high performance computing consortium in Canada, involving 19 universities and colleges across southern, central and northern Ontario.&lt;br /&gt;
&lt;br /&gt;
SHARCNET is a member consortium in the [https://alliancecan.ca/en Digital Research Alliance of Canada (Alliance)]  national HPC platform.&lt;br /&gt;
&lt;br /&gt;
=== Where is SHARCNET? ===&lt;br /&gt;
The [http://www.sharcnet.ca/my/contact main office] of SHARCNET is located in the Western Science Centre at [http://www.uwo.ca/ The University of Western Ontario].&lt;br /&gt;
&lt;br /&gt;
=== What does SHARCNET have? ===&lt;br /&gt;
The primary SHARCNET compute system is [https://docs.computecanada.ca/wiki/Graham Graham heterogeneous cluster] located at the University of Waterloo.  It is named after Wes Graham, the first director of the Computing Centre at Waterloo.  It consists of 41,548 cores and 520 GPU devices, spread across 1,185 nodes of different configurations.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with SHARCNET? ===&lt;br /&gt;
If you have a program that takes months to run on your PC, you could probably run it within a few hours using hundreds of processors on SHARCNET / Alliance, provided your program is inherently parallelisable. If you have hundreds or thousands of test cases to run through on your PC or computers in your lab, then with hundreds of processors running those cases independently will significantly reduce your test cycles.&lt;br /&gt;
&lt;br /&gt;
=== Who is running SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
The daily operation and development of SHARCNET computational facilities is managed by a group of highly qualified system administrators. In addition, we have a team of high performance technical computing consultants, who are responsible for technical support on libraries, programming and application analysis.&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET? ===&lt;br /&gt;
For technical inquiries, you may send E-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] or [mailto:help@sharcnet.ca help@sharcnet.ca], or [https://www.sharcnet.ca/my/contact/directory#techteam contact your local system administrator or HPC specialist]. For general inquiries, you may contact the SHARCNET [http://www.sharcnet.ca/my/contact main office].&lt;br /&gt;
&lt;br /&gt;
== Getting an Account with SHARCNET and Related Issues ==&lt;br /&gt;
&lt;br /&gt;
To use SHARCNET (and any other national facilities in Alliance) one has to [https://www.alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account apply for an Alliance account].&lt;br /&gt;
&lt;br /&gt;
== Getting Help ==&lt;br /&gt;
&lt;br /&gt;
=== I have encountered a problem while using an Alliance /SHARCNET system and need help, who should I talk to? ===&lt;br /&gt;
We encourage you to use the problem ticketing system (described in detail [[FAQ#Alliance_Problem_Ticket_System|below]]) .  This is the most efficient way of reporting a problem.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the [https://www.sharcnet.ca/my/contact/directory directory] page.&lt;br /&gt;
&lt;br /&gt;
=== How long should I expect to wait for support? ===&lt;br /&gt;
Unfortunately Alliance/SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week.  User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .  &lt;br /&gt;
&lt;br /&gt;
Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.  &lt;br /&gt;
&lt;br /&gt;
=== Alliance Problem Ticket System ===&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;problem ticket system&amp;quot;? ====&lt;br /&gt;
&lt;br /&gt;
This is a system that allows anyone with an Alliance account to start a persistent email thread that is referred to as a &amp;quot;problem ticket&amp;quot;.    When a user submits a new ticket it will be brought to the attention of an appropriate and available Alliance/SHARCNET staff member for resolution.  &lt;br /&gt;
&lt;br /&gt;
You interact with the ticket system entirely via email.&lt;br /&gt;
&lt;br /&gt;
==== What do I need to specify in a ticket ? ====&lt;br /&gt;
&lt;br /&gt;
To help us address your question faster, please try to do the following when submitting a ticket:&lt;br /&gt;
&lt;br /&gt;
#specify which of our systems is involved &lt;br /&gt;
#if the problem pertains to a job, then report the &amp;lt;u&amp;gt;jobid&amp;lt;/u&amp;gt; associated with the job; this is an integer that is returned by the scheduler when you submit the job&lt;br /&gt;
#report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem; if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem&lt;br /&gt;
#if you&amp;#039;d like for a particular staff member to be aware of the ticket, mention them&lt;br /&gt;
&lt;br /&gt;
==== How do I submit a ticket? ====&lt;br /&gt;
&lt;br /&gt;
In general, you can submit a new ticket by emailing  [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca]  with the email address associated with your Alliance account.  If you are using another email address, please provide your full name, your Alliance default username (if available) and your university or institution.&lt;br /&gt;
&lt;br /&gt;
If you like, you can also target your inquiry more specifically, by using the following addresses to submit your ticket:&lt;br /&gt;
&lt;br /&gt;
* [mailto:help@sharcnet.ca help@sharcnet.ca] - questions specific to SHARCNET, for example relating to contributed SHARCNET systems&lt;br /&gt;
* [mailto:globus@tech.alliancecan.ca globus@tech.alliancecan.ca] -- Questions about [[Globus]] file transfer services&lt;br /&gt;
* [mailto:cloud@tech.alliancecan.ca cloud@tech.alliancecan.ca] -- Questions about using Alliance cloud resources&lt;br /&gt;
* [mailto:accounts@tech.alliancecan.ca accounts@tech.alliancecan.ca] -- Questions about Alliance accounts&lt;br /&gt;
* [mailto:renewals@tech.alliancecan.ca renewals@tech.alliancecan.ca] -- Questions about Alliance account renewals&lt;br /&gt;
&lt;br /&gt;
=== I am new to parallel programming, can you help me get started with my project? ===&lt;br /&gt;
Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research. If your programming project would involve a significant staff time, you should consider applying for Dedicated Programming support. (We run the competition annually; see https://www.sharcnet.ca/my/research/programming).&lt;br /&gt;
&lt;br /&gt;
=== Can you install a package on a cluster for me? ===&lt;br /&gt;
Certainly.  We suggest you make the request by sending e-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] with the specific request.&lt;br /&gt;
&lt;br /&gt;
=== I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that? ===&lt;br /&gt;
If you tell us what you want, we may be able to help you out.&lt;br /&gt;
&lt;br /&gt;
=== Does SHARCNET provide any training on programming and using the systems? ===&lt;br /&gt;
&lt;br /&gt;
Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every summer (usually late May to early June), SHARCNET holds [https://helpwiki.sharcnet.ca/wiki/Summer_Schools an annual HPC Summer School] with a variety of in-depth, hands-on workshops. &lt;br /&gt;
&lt;br /&gt;
SHARCNET also offers a series of online seminars (so-called &amp;quot;General interest webinars&amp;quot;), typically delivered every second Wednesday at lunch time.  These are announced via the SHARCNET events mailing list and one can see the schedule at the [https://www.sharcnet.ca/my/news/calendar SHARCNET event calendar].  Past seminars are recorded and posted on [http://youtube.sharcnet.ca our youtube channel]. A full listing of the past webinars is available on the [https://helpwiki.sharcnet.ca/wiki/Online_Seminars Online Seminars] page.&lt;br /&gt;
&lt;br /&gt;
=== Attending SHARCNET Webinars ===&lt;br /&gt;
{{:Attending SHARCNET Webinars}}&lt;br /&gt;
&lt;br /&gt;
== Logging in to Systems, Transferring and Editing Files ==&lt;br /&gt;
&lt;br /&gt;
=== How do I login to SHARCNET? ===&lt;br /&gt;
You access the SHARCNET clusters using ssh.  For Graham and other national systems Alliance credentials are required.  For the remaining (&amp;quot;Legacy&amp;quot;) systems, you will require SHARCNET credentials (submit a ticket to help@sharcnet.ca if you have questions).&lt;br /&gt;
&lt;br /&gt;
====Unix/Linux/OS X====&lt;br /&gt;
To login to a system, you need to use an [http://www.openssh.com/ Secure Shell (SSH)] connection. If you are logging in from a UNIX-based machine, make sure it has an SSH client (ssh) installed (this is almost always the case on UNIX/Linux/OS X). If you have the same login name on both your local system and SHARCNET, and you want to login to, say, &amp;lt;tt&amp;gt;graham&amp;lt;/tt&amp;gt;, you may use the command:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If your Alliance username is different from the username on your local systems, then you may use either of the following forms:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca -l username&lt;br /&gt;
 ssh username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If you want to establish an X window connection so that you can use graphics applications such as &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ddt&amp;lt;/tt&amp;gt;, you can add a &amp;lt;tt&amp;gt;-Y&amp;lt;/tt&amp;gt; to the command:&lt;br /&gt;
&lt;br /&gt;
 ssh -Y username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
This will automatically set the X DISPLAY variable when you login.&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
If you are logging from a computer running Windows and need some pointers we recommend consulting our [[SSH]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between Login Nodes and Compute Nodes? ===&lt;br /&gt;
====Login Nodes====&lt;br /&gt;
&lt;br /&gt;
Most of our clusters have distinct &amp;#039;&amp;#039;login nodes&amp;#039;&amp;#039; associated with them that you are automatically redirected to when you login to the cluster (some systems are directly logged into, eg. SMPs and smaller specialty systems).  You can use these to do most of your work preparing for jobs (compiling, editing configuration files) and other low-intensity tasks like moving and copying files.  &lt;br /&gt;
&lt;br /&gt;
You can also use them for other quick tasks, like simple post-processing, but any significant work should be submitted as a job to the compute nodes.  On most login nodes, each process is limited to 1 cpu-hour; this will be noticable if you perform anything compute-intensive, and can affect IO-oriented activity as well (such as very large &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; operations.)&lt;br /&gt;
&lt;br /&gt;
=== How can I suspend and resume my session? ===&lt;br /&gt;
&lt;br /&gt;
The program screen can start persistent terminals from which you can detach and reattach.  The simplest use of screen is&lt;br /&gt;
&lt;br /&gt;
 screen -dR&lt;br /&gt;
&lt;br /&gt;
which will either reattach you to any existing session or create a new one if one doesn&amp;#039;t exist.  To terminate the current screen session, type &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;.  To detach manually (you are automatically detached if the connection is lost) press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;d&amp;#039;&amp;#039;, you can the resume later as above (ideal for running background jobs).  Note that &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; is screen&amp;#039;s escape sequence, so you have to do &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;a&amp;#039;&amp;#039; to get the regular effect of pressing &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; inside a screen session (e.g., moving the cursor to the start of the line in a shell).&lt;br /&gt;
&lt;br /&gt;
For a list of other &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; key sequences, press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;?&amp;#039;&amp;#039;.  For further details and  command line options, see the [http://www.gnu.org/software/screen/manual/screen.html screen manual] (or type &amp;lt;tt&amp;gt;man screen&amp;lt;/tt&amp;gt; on any of the clusters).&lt;br /&gt;
&lt;br /&gt;
Other notes:&lt;br /&gt;
* If you want to create additional &amp;quot;text windows&amp;quot;, use Ctrl-A Ctrl-C. Remember to type &amp;quot;exit&amp;quot; to close it. &lt;br /&gt;
* To switch to a &amp;quot;text window&amp;quot; with a certain number, use Ctrl-A # (where # is 0 to 9).&lt;br /&gt;
* To see a list of window numbers use Ctrl-A w&lt;br /&gt;
* To be presented a list of windows and select one to use, use Ctrl-A &amp;quot; (This is handy if you&amp;#039;ve made too many windows.)&lt;br /&gt;
* If the program running in a screen &amp;quot;text window&amp;quot; refuses to die (i.e., it needs to be killed) you can use Ctrl-A K&lt;br /&gt;
* For brief help on keystrokes use Ctrl-A ?&lt;br /&gt;
* For extensive help, run &amp;quot;man screen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What operating systems are supported? ===&lt;br /&gt;
UNIX in general. Currently, Linux is the only operating system used within SHARCNET.&lt;br /&gt;
&lt;br /&gt;
=== What makes a cluster different than my UNIX workstation? ===&lt;br /&gt;
&lt;br /&gt;
If you are familiar with UNIX, then using a cluster is not much different from using a workstation. When you login to a cluster, you in fact only log in to one of the cluster nodes. In most cases, each cluster node is a physical machine, usually a server class machine, with one or several CPUs, that is more or less the same as a workstation you are familiar with. The difference is that these nodes are interconnected with special interconnect devices and the way you run your program is slightly different. Across SHARCNET clusters, you are not expected to run your program interactively. You will have to run your program through a queueing system. That also means where and when your program gets to run is not decided by you, but by the queueing system.&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Those primary programming languages such as C, C++, Fortran, and Python are supported. Other languages, such as Java, Pascal and Ada, are also supported, but with limited technical support from us. &lt;br /&gt;
&lt;br /&gt;
=== How do I organize my files? ===&lt;br /&gt;
[https://docs.computecanada.ca/wiki/Storage_and_file_management#Storage_types Main file systems on our National systems.]&lt;br /&gt;
&lt;br /&gt;
==== How do I transfer files/directories to/from or between cluster? ====&lt;br /&gt;
&lt;br /&gt;
=====Unix/Linux=====&lt;br /&gt;
To transfer files to and from a cluster on a UNIX machine, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt;. For example, if you want to upload file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; to cluster graham from your machine &amp;lt;tt&amp;gt;myhost&amp;lt;/tt&amp;gt;, use the following command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp foo.f graham.alliancecan.ca:&lt;br /&gt;
&lt;br /&gt;
assuming that your machine has &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; installed. If you want to transfer a file from Windows or Mac, you need have &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt; for Windows or Mac installed.&lt;br /&gt;
&lt;br /&gt;
If you transfer file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; between Alliance clusters, say from your home directory on cedar to your home directory on graham, simply use the following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp foo.f graham:/home/username/&lt;br /&gt;
&lt;br /&gt;
If you are transferring files between a UNIX machine and a cluster, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; command with &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; option. For instance, if you want to download the subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; in the directory &amp;lt;tt&amp;gt;project&amp;lt;/tt&amp;gt; in your home directory on graham to your local UNIX machine, on your local machine, use command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp -rp graham.alliancecan.ca:project/foo .&lt;br /&gt;
&lt;br /&gt;
Similarly, you can transfer the subdirectory between Alliance clusters. The following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp -r graham.alliancecan.ca:/home/username/scratch/foo .&lt;br /&gt;
&lt;br /&gt;
will download subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; from your scratch directory on graham to your home directory on cedar (note that the prompt indicates you are currently logged on to cedar).&lt;br /&gt;
&lt;br /&gt;
The use of &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; option above will preserve the time stamp of each file. For Windows and Mac, you need to check the documentation of &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; for features. &amp;#039;&amp;#039;&amp;#039;Do not use -p switch with scp or cp commands on clusters, when the destination is your project space&amp;#039;&amp;#039;&amp;#039;, or you might run into the infamous [https://docs.computecanada.ca/wiki/Frequently_Asked_Questions#Disk_quota_exceeded_error_on_.2Fproject_filesystems Disk quota exceeded issue].&lt;br /&gt;
&lt;br /&gt;
You may also &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; and compress the entire directory and then use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to save bandwidth. In the above example, first you login to graham, then do the following&lt;br /&gt;
&lt;br /&gt;
 [username@gra-login2:~]$ cd project&lt;br /&gt;
 [username@gra-login2:~]$ tar -cvf foo.tar foo&lt;br /&gt;
 [username@gra-login2:~]$ gzip foo.tar&lt;br /&gt;
&lt;br /&gt;
Then on your local machine myhost, use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to copy the tar file&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp graham.alliancecan.ca:project/foo.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Note for most Linux distributions, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; has an option &amp;lt;tt&amp;gt;-z&amp;lt;/tt&amp;gt; that will compress the &amp;lt;tt&amp;gt;.tar&amp;lt;/tt&amp;gt; file using &amp;lt;tt&amp;gt;gzip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Windows=====&lt;br /&gt;
You may read the instructions on using an ssh client. [[https://helpwiki.sharcnet.ca/wiki/SSH#Transfering_files_.28Secure_File_Transfer_Client.29]]&lt;br /&gt;
&lt;br /&gt;
====How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect?====&lt;br /&gt;
&lt;br /&gt;
In general, most users should be fine using &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to transfer data to and from SHARCNET systems.  If you need to transfer a lot of files &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; is recommended to ensure that you do not need to restart the transfer from scratch should there be a connection failure.  Although you can use &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to any cluster&amp;#039;s login node(s), it is often best to use gra-dtn1.alliancecan.ca - it is dedicated to data transfer. &lt;br /&gt;
&lt;br /&gt;
In general one should expect the following transfer rates with &amp;#039;&amp;#039;scp&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* If you are connecting to SHARCNET through a Research/Education network site (ORION, CANARIE, Internet2) and are on a fast local network (this is the case for most users connecting from academic institutions) then you should be able to attain sustained transfer speeds in excess of 10MB/s.  If your path is all gigabit or better, you should be able to reach rates above 50 MB/s.&lt;br /&gt;
* If you are transferring data over the wider internet, you will not be able to attain these speeds, as all traffic that does not enter/exit SHARCNET via the R&amp;amp;E net is restricted to a limited-bandwidth commercial feed. In this case one will typically see rates on the order of 1MB/s or less.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that filesystems and networks are  shared resources and suffer from contention; if they are busy the above rates may not be attainable&lt;br /&gt;
&lt;br /&gt;
For transferring large amounts of data (many gigabytes) the best approach is to use the online tool [https://docs.computecanada.ca/wiki/Transferring_data#Globus_transfer Globus].&lt;br /&gt;
&lt;br /&gt;
==== How do I access the same file from different subdirectories on the same cluster ? ====&lt;br /&gt;
&lt;br /&gt;
You should not need copy large files on the same cluster (e.g. from one user to another&lt;br /&gt;
or using the same file in different subdirectories).  Instead of using&lt;br /&gt;
scp you might consider issuing a &amp;quot;soft link&amp;quot; command. Assume that you need access&lt;br /&gt;
to the file large_file1 in subdirectory /home/user1/subdir1 and you need it to be in your&lt;br /&gt;
subdirectory /home/my_account/my_dir from where you will invoke it under the name&lt;br /&gt;
my_large_file1.  Then go to that directory and type:&lt;br /&gt;
&lt;br /&gt;
 ln -s /home/user1/subdir1/large_file1    my_large_file1&lt;br /&gt;
&lt;br /&gt;
Another example, assume that in subdirectory /home/my_account/PROJ1 you have several&lt;br /&gt;
subdirectories called CASE1, CASE2, ...  In each subdirectory CASEn you have a slightly&lt;br /&gt;
different code but all of them process the same data file called test_data. Rather than&lt;br /&gt;
copying the test_data file into each CASEn subdirectory, place test_data above i.e.&lt;br /&gt;
in /home/my_account/PROJ1 and then in each CASEn subdirectory issue following &amp;quot;soft link&amp;quot;&lt;br /&gt;
command:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../test_data  test_data&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;soft links&amp;quot; can be removed by using the rm command. For example, to remove the soft link from&lt;br /&gt;
/home/my_account/PROJ1/CASE2 type following command from this subdirectory:&lt;br /&gt;
&lt;br /&gt;
 rm -rf test_data&lt;br /&gt;
&lt;br /&gt;
Typing above command from subdirectory /home/my_account/PROJ1 would remove the actual file and then&lt;br /&gt;
none of the CASEn subdirectories would have access to it.&lt;br /&gt;
&lt;br /&gt;
==== How are files deleted from the /home/userid/scratch filesystems? ====&lt;br /&gt;
&lt;br /&gt;
All files on /home/userid/scratch that are over 2 months old (not old in the common sense, please see below) are automatically deleted. Data needed for long term storage and reference should be kept in either /project, /nearline, or other archival storage areas. The scratch filesystem is checked at the end of the month for files which will be candidates for expiry on the 15th of the following month. On the first day of the month, a login message is posted and a notification e-mail is sent to all users who have at least one file which is a candidate for purging and containing the location of a file which lists all the candidates for purging.  On the 12th of the month, a second scan is run to check for files that will still expire on the 15th, and again, users with candidates for expiry are sent a second warning email.  Lastly, on the 15th, all files which are due for expiry are removed.&lt;br /&gt;
&lt;br /&gt;
An unconventional aspect of this system is that it does not determine the age of a file based on the file&amp;#039;s attributes, e.g., the standard dates reported by the &amp;lt;i&amp;gt;stat&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;find&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;ls&amp;lt;/i&amp;gt;, etc. commands.  (This is known as the &amp;quot;mtime&amp;quot; of the file, for &amp;quot;modification time&amp;quot;, and is frequently inaccurate.) The age of a file is determined based on whether or not its data contents (i.e., the information stored in the file) have changed or been accessed, and this age is stored externally to the file.  Only files where the contents have changed or accessed will have their age counter &amp;quot;reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A list of your candidate files for expiry can be found in /home/scratch_to_delete/$USER  (where $USER is your userid).&lt;br /&gt;
&lt;br /&gt;
===== How do I check the age of a file =====&lt;br /&gt;
We define a file&amp;#039;s age as the most recent of:&lt;br /&gt;
&lt;br /&gt;
 *the access time (atime) and&lt;br /&gt;
 *the change time (ctime)&lt;br /&gt;
&lt;br /&gt;
You can find the ctime of a file using&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lc &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while the atime can be obtained with the command&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lu &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do not use the modify time (mtime) of the file because it can be modified by the user or by other programs to display incorrect information.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, simple use of the atime property would be sufficient, as it is updated by the system in sync with the ctime. However, userspace programs are able to alter atime, potentially to times in the past, which could result in early expiration of a file. The use of ctime as a fallback guards against this undesirable behaviour.&lt;br /&gt;
&lt;br /&gt;
It is also your responsibility to manage your stored data: most of the filesystems are not intended to provide an indefinite archiving service so when a given file or directory is no longer needed, you need to move it to a more appropriate filesystem which may well mean your personal workstation or some other storage system under your control. Moving significant amounts of data between your workstation and an Alliance system or between two Alliance systems should generally be done using Globus.&lt;br /&gt;
&lt;br /&gt;
==== How to archive my data? ====&lt;br /&gt;
&lt;br /&gt;
===== Use tar to archive files and directories =====&lt;br /&gt;
&lt;br /&gt;
The primary archiving utility on all Linux and Unix-like systems is the [https://www.gnu.org/software/tar/manual/tar.html tar] command. It will bundle a bunch of files or directories together and generate a single file, called an &amp;#039;&amp;#039;archive file&amp;#039;&amp;#039; or &amp;#039;&amp;#039;tar-file&amp;#039;&amp;#039;. By convention an archive file has &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; as the file name extension. When you archive a directory with &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, it will, by default, include all the files and sub-directories contained within it, and sub-sub-directories contained in those, and so on. So the command &amp;lt;code&amp;gt;tar --create --file project1.tar project1&amp;lt;/code&amp;gt; will pack all the content of directory &amp;#039;&amp;#039;project1&amp;#039;&amp;#039; into the file &amp;#039;&amp;#039;project1.tar&amp;#039;&amp;#039;. The original directory will remain unchanged, so this may double the amount of disk space occupied!&lt;br /&gt;
&lt;br /&gt;
You can extract files from an archive using the same command with a different option:&amp;lt;code&amp;gt;tar --extract --file project1.tar&amp;lt;/code&amp;gt;. If there is no directory with the original name, it will be created. If a directory of that name exists and contains files of the same names as in the archive file, they will be overwritten. Another option can be added to specify the destination directory where to extract the archive&amp;#039;s content.   &lt;br /&gt;
&lt;br /&gt;
===== Compress and uncompress tar files =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; archiving utility can compress an archive file at the same time it creates it. There are a number of compression methods to choose from. We recommend either &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;, which can be used as follows:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ tar --create --xz --file project1.tar.xz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --xz --file project1.tar.xz&lt;br /&gt;
 [user_name@localhost]$ tar --create --gzip --file project1.tar.gz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --gzip --file project1.tar.gz&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;code&amp;gt;--xz&amp;lt;/code&amp;gt; will produce a smaller compressed file (a &amp;quot;better compression ratio&amp;quot;) but takes longer and uses more RAM while working. &amp;lt;code&amp;gt;--gzip&amp;lt;/code&amp;gt; does not typically compress as small, but may be used if you encounter difficulties due to insufficient memory or excessive run time during &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt;. A third option, &amp;lt;code&amp;gt;--bzip2&amp;lt;/code&amp;gt;, is also available, that typically does not compress as small as &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; but takes longer than &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt; first without compression and then use the commands &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; in a separate step, although there is rarely a reason to do so. Similarly, you can run &amp;lt;code&amp;gt;xz -d&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip -d&amp;lt;/code&amp;gt; to decompress an archive file before running &amp;lt;code&amp;gt;tar --extract&amp;lt;/code&amp;gt;, but again there is rarely a reason to do so.&lt;br /&gt;
&lt;br /&gt;
The commands &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; can be used to compress any file, not just archive files:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ gzip bigfile&lt;br /&gt;
 [user_name@localhost]$ xz bigfile&lt;br /&gt;
&lt;br /&gt;
These commands will produce the files &amp;lt;code&amp;gt;bigfile.gz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigfile.xz&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
=====Archival Storage=====&lt;br /&gt;
&lt;br /&gt;
On Graham, files copied to ~/nearline will be subsequently moved to offline (tape-based) storage. See [https://docs.computecanada.ca/wiki/Using_nearline_storage this link] for more details.&lt;br /&gt;
&lt;br /&gt;
==== How can I check the hidden files in directory? ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;.&amp;quot; at the beginning of the name means that the file is &amp;quot;hidden&amp;quot;. You have to use the -a option with ls to see it. I.e. &amp;lt;code&amp;gt;ls -a &amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
If you want to display only the hidden files then type:&lt;br /&gt;
 ls -d .*&lt;br /&gt;
&lt;br /&gt;
Note: there is an alias which is loaded from /etc/bashrc (see your .bashrc file). The alias is defined by alias &amp;lt;code&amp;gt; l.=&amp;#039;ls -d .* --color=auto&amp;#039; &amp;lt;/code&amp;gt; and if you type:&lt;br /&gt;
 l.&lt;br /&gt;
you will also display only the hidden files.&lt;br /&gt;
&lt;br /&gt;
==== How can I count the number of files in a directory? ====&lt;br /&gt;
&lt;br /&gt;
One can use the following command to count the number of files in a directory (in this example, your /work directory):&lt;br /&gt;
&lt;br /&gt;
 find /home/$USER -type f   | wc -l&lt;br /&gt;
&lt;br /&gt;
It is always a good idea to [[Knowledge_Base#How_to_archive_my_data.3F|archive]] and/or compress files that are no longer needed on the filesystem (see [https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_to_organize_a_large_number_of_files.3F below]).  This helps minimize one&amp;#039;s footprint on the filesystem and as such the impact they have on other users of the shared resource.&lt;br /&gt;
&lt;br /&gt;
==== How to organize a large number of files? ====&lt;br /&gt;
&lt;br /&gt;
With parallel cluster filesystems, you will get best I/O performance writing data to a small number of large files. Since all metadata operations on each of our parallel filesystems are handled by a single file server, depending on how many files are being accessed the server can become overwhelmed leading to poor overall I/O performance for all users. If your workflow involves storing data in a large number of files, it is best to pack these files into a small number of larger archives, e.g. using tar command&lt;br /&gt;
&lt;br /&gt;
 tar cvf archiveFile.tar directoryToArchive&lt;br /&gt;
&lt;br /&gt;
For better performance with many files inside your archive, we recommend to use DAR (Disk ARchive utility), which is a disk analog of tar (Tape ARchive).  Dar can extract files from anywhere in the archive much faster than tar. The dar command is available by default on sharcnet systems. It can be used to pack files into a dar archive by doing something like: &lt;br /&gt;
&lt;br /&gt;
 dar -s 1G -w -c archiveFile -g directoryToArchive&lt;br /&gt;
&lt;br /&gt;
In this example we split the archive into 1GB chunks, and the archive files will be named archiveFile.1.dar, archiveFile.2.dar, and so on. To list the contents of the archive, you can type:&lt;br /&gt;
&lt;br /&gt;
 dar -l archiveFile&lt;br /&gt;
&lt;br /&gt;
To temporarily extract files for post-processing into current directory, you would type:&lt;br /&gt;
&lt;br /&gt;
 dar -R . -O -x archiveFile -v -g pathToYourFile/fileToExtract&lt;br /&gt;
&lt;br /&gt;
=== I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host ===&lt;br /&gt;
&lt;br /&gt;
The most likely cause of this behaviour is repeated failed login attempts.  Part of our security policies involves blocking the IP address of machines that attempt multiple logins with incorrect passwords over a short period of time---many brute-force attacks on systems do exactly this: looking for poor passwords, badly configured accounts, etc.  Unfortunately, it isn&amp;#039;t uncommon for a user to forget their password and make repeated login attempts with incorrect passwords and end up with that machine blacklisted and unable to connect at all.&lt;br /&gt;
&lt;br /&gt;
A temporary solution is simply to attempt to login from another machine.  If you have access to another machine at your site, you can shell to that machine first, and then shell to the SHARCNET system (as that machine&amp;#039;s IP shouldn&amp;#039;t be blacklisted).  In order to have your machine unblocked, you will have to email to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] as a system administrator must manually intervene in order to fix it.&lt;br /&gt;
&lt;br /&gt;
NOTE: there are other situations that can produce this message, however they are rarer and more transient.  If you are unable to log in from one machine, but can from another, it is most likely the IP blacklisting that is the problem and the above will provide a temporary work-around while your problem ticket is processed.&lt;br /&gt;
&lt;br /&gt;
=== I am unable to ssh/scp from SHARCNET to my local computer ===&lt;br /&gt;
&lt;br /&gt;
Most campus networks are behind some sort of firewall.  If you can ssh out to SHARCNET, but cannot establish a connection in the other direction, then you are probably behind a firewall and should speak with your local system administrator or campus IT department to determine if there are any exceptions or workarounds in place.&lt;br /&gt;
&lt;br /&gt;
=== SSH tells me SOMEONE IS DOING SOMETHING NASTY!? ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please first read the following:&lt;br /&gt;
&lt;br /&gt;
https://docs.alliancecan.ca/wiki/SSH_security_improvements&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suppose you attempt to login to SHARCNET, but instead get an alarming message like this:&lt;br /&gt;
&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that the RSA host key has just been changed.&lt;br /&gt;
 The fingerprint for the RSA key sent by the remote host is&lt;br /&gt;
 fe:65:ab:89:9a:23:34:5a:50:1e:05:d6:bf:ec:da:67.&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending key in /home/user/.ssh/known_hosts:42&lt;br /&gt;
 RSA host key for requin has changed and you have requested strict checking.&lt;br /&gt;
 Host key verification failed. &lt;br /&gt;
&lt;br /&gt;
SSH begins a connection by verifying that the host you&amp;#039;re connecting to is authentic. It does this by caching the hosts&amp;#039;s &amp;quot;hostkey&amp;quot; in your  &amp;lt;tt&amp;gt;~/.ssh/known_hosts&amp;lt;/tt&amp;gt; file. At times, a hostkey may be changed legitimately; when this happens, you may see such a message. It&amp;#039;s a good idea to verify this with us, you may be able to check the fingerprint yourself by logging into another sharcnet system and running:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub &lt;br /&gt;
&lt;br /&gt;
If the fingerprint is OK, the normal way to fix the problem is to simply remove the old hostkey from your &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. On machines with commandline SSH, you can do this with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -R thehostname&lt;br /&gt;
&lt;br /&gt;
You can use your choice of editor if you&amp;#039;re comfortable doing so (it&amp;#039;s a plain text file, but has long lines). On a unix-compatible machine, you can also use the following very small script (Substitute the line(s) printed in the warning message illustrated above for &amp;#039;42&amp;#039; here.):&lt;br /&gt;
&lt;br /&gt;
 perl -pi -e &amp;#039;undef $_ if (++$line == 42)&amp;#039; ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
Another solution is brute-force: remove the whole &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. This throws away any authentication checking, and afterwards, your first connection to any machine will prompt you to accept a newly discovered host key.&lt;br /&gt;
&lt;br /&gt;
=== Ssh works, but scp doesn&amp;#039;t! ===&lt;br /&gt;
&lt;br /&gt;
If you can &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; to a cluster successfully, but cannot &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to to it, the problem is likely that your login scripts print unexpected messages which confuse &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; is based on the same &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, but assumes that the connection is &amp;quot;clean&amp;quot;: that is, that it does not produce any un-asked-for content. If you have something like:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; will be confused by the salutation. To avoid this, simply ensure that the message is only printed on an interactive login:&lt;br /&gt;
&lt;br /&gt;
 if [ -t 0 ]; then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
or in csh/tcsh syntax:&lt;br /&gt;
&lt;br /&gt;
 if ( -t 0 ) then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
=== How do I edit my program on a cluster? ===&lt;br /&gt;
&lt;br /&gt;
We provide a variety of editors, such as the traditional text-mode &amp;lt;tt&amp;gt;emacs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; (vim), as well as a simpler one called &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;. If you have X on your desktop (and tunneled through SSH), you can use the GUI versions (&amp;lt;tt&amp;gt;xemacs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If your desktop supports FUSE, it&amp;#039;s very convenient to simply mount your home tree like this:&lt;br /&gt;
 mkdir sharcnet&lt;br /&gt;
 sshfs graham.alliancecan.ca: sharcnet&lt;br /&gt;
you can then use any local editor of your choice.&lt;br /&gt;
&lt;br /&gt;
If you run emacs on your desktop, you can also edit a remote file from within your local emacs client using [http://www.gnu.org/software/tramp Tramp], opening and saving a file as /username@cluster.alliancecan.ca:path/file.&lt;br /&gt;
&lt;br /&gt;
== Research at SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== I have a research project I would like to collaborate on with SHARCNET, who should I talk to? ===&lt;br /&gt;
&lt;br /&gt;
You may contact [mailto:barb@sharcnet.ca SHARCNET head office] or contact members of the [https://www.sharcnet.ca/my/contact/directory#techteam SHARCNET technical staff].&lt;br /&gt;
&lt;br /&gt;
=== How can I contribute compute resources to SHARCNET so that other researchers can share it? ===&lt;br /&gt;
&lt;br /&gt;
Most people&amp;#039;s research is &amp;quot;bursty&amp;quot; - there are usually sparse periods of time when some computation is urgently needed, and other periods when there is less demand. One problem with this is that if you purchase the equipment you need to meet your &amp;quot;burst&amp;quot; needs, it&amp;#039;ll probably sit, underutilized, during other times.&lt;br /&gt;
&lt;br /&gt;
An alternative is to donate control of this equipment to SHARCNET, and let us arrange for other users to use it when you are not. We prefer to be involved in the selection and configuration of such equipment. Our promise to contributors is that as much as possible, they should obtain as much benefit from the cluster as if it were not shared. Owners get preferential access. Naturally, owners are also able to burst to higher peak usage, since their equipment has been pooled with other contributions. (Technically, SHARCNET cannot itself own such equipment — it remains owned by the institution in question, and will be returned to the contributor upon request.) If you think this model will also work for you and you would like to contribute your computational resource to help the research community at SHARCNET, you can contact us for such arrangement.&lt;br /&gt;
&lt;br /&gt;
=== I do not know much about computation, nor is it my research interest. But I am interested in getting my research done faster with the help of the high performance computing technology. In other words, I do not care about the process and mechanism, but only the final results. Can SHARCNET provide this type of help? ===&lt;br /&gt;
&lt;br /&gt;
We will be happy to bring the technology of high performance computing to you to accelerate your research, if at all possible. If you would like to discuss your plan with us, please feel free to contact our [https://www.sharcnet.ca/my/contact/directory#techteam high performance computing specialists]. They will be happy to listen to your needs and are ready to provide appropriate suggestions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET participates in the Alliance national RAC (Resource Allocation Competition) and provides a continual competition for groups that require more than the default level of access to our resources.  Please see [[Dedicated Resources]] for further information.&lt;br /&gt;
&lt;br /&gt;
=== I heard SHARCNET offers fellowships, where can I get more information? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET no longer actively runs a fellowship program.  You may find information regarding past fellowships and other dedicated resource opportunities on the [https://www.sharcnet.ca/my/research/fellowships Research Fellowships page] of the web portal.&lt;br /&gt;
&lt;br /&gt;
=== I would like to do some research at SHARCNET as a visiting scholar, how should I apply? ===&lt;br /&gt;
&lt;br /&gt;
In general, you will need to find a hosting department or a person affiliated with one of the SHARCNET institutions. You may also [http://www.sharcnet.ca/my/contact contact us] directly for more specific information.&lt;br /&gt;
&lt;br /&gt;
=== I would like to send my students to SHARCNET to do some work for me. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
See above.&lt;br /&gt;
&lt;br /&gt;
== Contacting SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for research, academic exchanges, and technical issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for business development, education and other issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact a specific staff member at SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
See [https://www.sharcnet.ca/my/contact/directory staff directory] for contact information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Acknowledge SHARCNET in Publications ==&lt;br /&gt;
&lt;br /&gt;
=== How do I acknowledge SHARCNET in my publications? ===&lt;br /&gt;
&lt;br /&gt;
We recommend one cite the following:&lt;br /&gt;
&lt;br /&gt;
 This work was made possible by the facilities of the Shared Hierarchical &lt;br /&gt;
 Academic Research Computing Network (SHARCNET:www.sharcnet.ca) and Digital Research Alliance of Canada (https://alliancecan.ca/en).&lt;br /&gt;
&lt;br /&gt;
=== I&amp;#039;ve seen different spellings of the name, what is the standard spelling of SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
We suggest the spelling SHARCNET, all in upper case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What types of research programs / support are provided to the research community? ==&lt;br /&gt;
&lt;br /&gt;
Our overall intent is to provide support that can both respond to the range of needs that the user community presents and help to increase the sophistication of the community and enable new and larger-in-scope applications making use of SHARCNET&amp;#039;s HPC facilities. The range of support can perhaps best be understood in terms of a pyramid:&lt;br /&gt;
&lt;br /&gt;
=== Level 1 ===&lt;br /&gt;
&lt;br /&gt;
At the apex of the pyramid, SHARCNET supports a small number of projects with dedicated programmer support. The intent is to enable projects that will have a lasting impact and may lead to a &amp;quot;step change&amp;quot; in the way research is done at SHARCNET. Inter-disciplinary and inter-institutional projects are particularly welcomed. For the latest information about the program, including application guidelines, please see the  [https://www.sharcnet.ca/my/research/programming Programming Competition] page in our web portal.&lt;br /&gt;
&lt;br /&gt;
=== Level 2 ===&lt;br /&gt;
&lt;br /&gt;
The middle layers of support are provided through a number of initiatives.&lt;br /&gt;
&lt;br /&gt;
These include:&lt;br /&gt;
* Programming support of more modest duration (several days to one month engagement, usually part time)&lt;br /&gt;
* Training on a variety of topics through [https://helpwiki.sharcnet.ca/wiki/Training workshops, seminars and online training materials]&lt;br /&gt;
* Consultation. This may include user-initiated interactions on particular programs, algorithms, techniques, debugging, optimization etc., as well as unsolicited help to ensure effective use of SHARCNET systems&lt;br /&gt;
* Site Leaders play an important role in working with the community to help researchers connect with SHARCNET staff and to obtain appropriate help and support.&lt;br /&gt;
&lt;br /&gt;
=== Level 3 ===&lt;br /&gt;
&lt;br /&gt;
The base level of the pyramid handles the very large number of small requests that are essential to keeping the user community working effectively with the infrastructure on a day-to-day basis. Several of these can be answered by this FAQ; many of the issues are presented through the [https://www.sharcnet.ca/help/index.php/Knowledge_Base#Compute_Canada_Problem_Ticket_System ticketing system]. The support is largely problem oriented with each problem being time limited.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=953</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=953"/>
		<updated>2024-09-17T18:00:39Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Sharcnet_logo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== About SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== What is SHARCNET? ===&lt;br /&gt;
SHARCNET stands for Shared Hierarchical Academic Research Computing Network. Established in 2000, SHARCNET is the largest high performance computing consortium in Canada, involving 19 universities and colleges across southern, central and northern Ontario.&lt;br /&gt;
&lt;br /&gt;
SHARCNET is a member consortium in the [https://alliancecan.ca/en Digital Research Alliance of Canada (Alliance)]  national HPC platform.&lt;br /&gt;
&lt;br /&gt;
=== Where is SHARCNET? ===&lt;br /&gt;
The [http://www.sharcnet.ca/my/contact main office] of SHARCNET is located in the Western Science Centre at [http://www.uwo.ca/ The University of Western Ontario].&lt;br /&gt;
&lt;br /&gt;
=== What does SHARCNET have? ===&lt;br /&gt;
The primary SHARCNET compute system is [https://docs.computecanada.ca/wiki/Graham Graham heterogeneous cluster] located at the University of Waterloo.  It is named after Wes Graham, the first director of the Computing Centre at Waterloo.  It consists of 41,548 cores and 520 GPU devices, spread across 1,185 nodes of different configurations.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with SHARCNET? ===&lt;br /&gt;
If you have a program that takes months to run on your PC, you could probably run it within a few hours using hundreds of processors on SHARCNET / Alliance, provided your program is inherently parallelisable. If you have hundreds or thousands of test cases to run through on your PC or computers in your lab, then with hundreds of processors running those cases independently will significantly reduce your test cycles.&lt;br /&gt;
&lt;br /&gt;
=== Who is running SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
The daily operation and development of SHARCNET computational facilities is managed by a group of highly qualified system administrators. In addition, we have a team of high performance technical computing consultants, who are responsible for technical support on libraries, programming and application analysis.&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET? ===&lt;br /&gt;
For technical inquiries, you may send E-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] or [mailto:help@sharcnet.ca help@sharcnet.ca], or [https://www.sharcnet.ca/my/contact/directory#techteam contact your local system administrator or HPC specialist]. For general inquiries, you may contact the SHARCNET [http://www.sharcnet.ca/my/contact main office].&lt;br /&gt;
&lt;br /&gt;
== Getting an Account with SHARCNET and Related Issues ==&lt;br /&gt;
&lt;br /&gt;
To use SHARCNET (and any other national facilities in Alliance) one has to [https://www.alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account apply for an Alliance account].&lt;br /&gt;
&lt;br /&gt;
== Getting Help ==&lt;br /&gt;
&lt;br /&gt;
=== I have encountered a problem while using an Alliance /SHARCNET system and need help, who should I talk to? ===&lt;br /&gt;
We encourage you to use the problem ticketing system (described in detail [[FAQ#Alliance_Problem_Ticket_System|below]]) .  This is the most efficient way of reporting a problem.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the [https://www.sharcnet.ca/my/contact/directory directory] page.&lt;br /&gt;
&lt;br /&gt;
=== How long should I expect to wait for support? ===&lt;br /&gt;
Unfortunately Alliance/SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week.  User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .  &lt;br /&gt;
&lt;br /&gt;
Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.  &lt;br /&gt;
&lt;br /&gt;
=== Alliance Problem Ticket System ===&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;problem ticket system&amp;quot;? ====&lt;br /&gt;
&lt;br /&gt;
This is a system that allows anyone with an Alliance account to start a persistent email thread that is referred to as a &amp;quot;problem ticket&amp;quot;.    When a user submits a new ticket it will be brought to the attention of an appropriate and available Alliance/SHARCNET staff member for resolution.  &lt;br /&gt;
&lt;br /&gt;
You interact with the ticket system entirely via email.&lt;br /&gt;
&lt;br /&gt;
==== What do I need to specify in a ticket ? ====&lt;br /&gt;
&lt;br /&gt;
To help us address your question faster, please try to do the following when submitting a ticket:&lt;br /&gt;
&lt;br /&gt;
#specify which of our systems is involved &lt;br /&gt;
#if the problem pertains to a job, then report the &amp;lt;u&amp;gt;jobid&amp;lt;/u&amp;gt; associated with the job; this is an integer that is returned by the scheduler when you submit the job&lt;br /&gt;
#report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem; if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem&lt;br /&gt;
#if you&amp;#039;d like for a particular staff member to be aware of the ticket, mention them&lt;br /&gt;
&lt;br /&gt;
==== How do I submit a ticket? ====&lt;br /&gt;
&lt;br /&gt;
In general, you can submit a new ticket by emailing  [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca]  with the email address associated with your Alliance account.  If you are using another email address, please provide your full name, your Alliance default username (if available) and your university or institution.&lt;br /&gt;
&lt;br /&gt;
If you like, you can also target your inquiry more specifically, by using the following addresses to submit your ticket:&lt;br /&gt;
&lt;br /&gt;
* [mailto:help@sharcnet.ca help@sharcnet.ca] - questions specific to SHARCNET, for example relating to contributed SHARCNET systems&lt;br /&gt;
* [mailto:globus@tech.alliancecan.ca globus@tech.alliancecan.ca] -- Questions about [[Globus]] file transfer services&lt;br /&gt;
* [mailto:cloud@tech.alliancecan.ca cloud@tech.alliancecan.ca] -- Questions about using Alliance cloud resources&lt;br /&gt;
* [mailto:accounts@tech.alliancecan.ca accounts@tech.alliancecan.ca] -- Questions about Alliance accounts&lt;br /&gt;
* [mailto:renewals@tech.alliancecan.ca renewals@tech.alliancecan.ca] -- Questions about Alliance account renewals&lt;br /&gt;
&lt;br /&gt;
=== I am new to parallel programming, can you help me get started with my project? ===&lt;br /&gt;
Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research. If your programming project would involve a significant staff time, you should consider applying for Dedicated Programming support. (We run the competition annually; see https://www.sharcnet.ca/my/research/programming).&lt;br /&gt;
&lt;br /&gt;
=== Can you install a package on a cluster for me? ===&lt;br /&gt;
Certainly.  We suggest you make the request by sending e-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] with the specific request.&lt;br /&gt;
&lt;br /&gt;
=== I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that? ===&lt;br /&gt;
If you tell us what you want, we may be able to help you out.&lt;br /&gt;
&lt;br /&gt;
=== Does SHARCNET provide any training on programming and using the systems? ===&lt;br /&gt;
&lt;br /&gt;
Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every summer (usually late May to early June), SHARCNET holds [https://helpwiki.sharcnet.ca/wiki/Summer_Schools an annual HPC Summer School] with a variety of in-depth, hands-on workshops. &lt;br /&gt;
&lt;br /&gt;
SHARCNET also offers a series of online seminars (so-called &amp;quot;General interest webinars&amp;quot;), typically delivered every second Wednesday at lunch time.  These are announced via the SHARCNET events mailing list and one can see the schedule at the [https://www.sharcnet.ca/my/news/calendar SHARCNET event calendar].  Past seminars are recorded and posted on [http://youtube.sharcnet.ca our youtube channel]. A full listing of the past webinars is available on the [https://helpwiki.sharcnet.ca/wiki/Online_Seminars Online Seminars] page.&lt;br /&gt;
&lt;br /&gt;
=== Attending SHARCNET Webinars ===&lt;br /&gt;
{{:Attending SHARCNET Webinars}}&lt;br /&gt;
&lt;br /&gt;
== Logging in to Systems, Transferring and Editing Files ==&lt;br /&gt;
&lt;br /&gt;
=== How do I login to SHARCNET? ===&lt;br /&gt;
You access the SHARCNET clusters using ssh.  For Graham and other national systems Alliance credentials are required.  For the remaining (&amp;quot;Legacy&amp;quot;) systems, you will require SHARCNET credentials (submit a ticket to help@sharcnet.ca if you have questions).&lt;br /&gt;
&lt;br /&gt;
====Unix/Linux/OS X====&lt;br /&gt;
To login to a system, you need to use an [http://www.openssh.com/ Secure Shell (SSH)] connection. If you are logging in from a UNIX-based machine, make sure it has an SSH client (ssh) installed (this is almost always the case on UNIX/Linux/OS X). If you have the same login name on both your local system and SHARCNET, and you want to login to, say, &amp;lt;tt&amp;gt;graham&amp;lt;/tt&amp;gt;, you may use the command:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If your Alliance username is different from the username on your local systems, then you may use either of the following forms:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca -l username&lt;br /&gt;
 ssh username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If you want to establish an X window connection so that you can use graphics applications such as &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ddt&amp;lt;/tt&amp;gt;, you can add a &amp;lt;tt&amp;gt;-Y&amp;lt;/tt&amp;gt; to the command:&lt;br /&gt;
&lt;br /&gt;
 ssh -Y username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
This will automatically set the X DISPLAY variable when you login.&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
If you are logging from a computer running Windows and need some pointers we recommend consulting our [[SSH]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between Login Nodes and Compute Nodes? ===&lt;br /&gt;
====Login Nodes====&lt;br /&gt;
&lt;br /&gt;
Most of our clusters have distinct &amp;#039;&amp;#039;login nodes&amp;#039;&amp;#039; associated with them that you are automatically redirected to when you login to the cluster (some systems are directly logged into, eg. SMPs and smaller specialty systems).  You can use these to do most of your work preparing for jobs (compiling, editing configuration files) and other low-intensity tasks like moving and copying files.  &lt;br /&gt;
&lt;br /&gt;
You can also use them for other quick tasks, like simple post-processing, but any significant work should be submitted as a job to the compute nodes.  On most login nodes, each process is limited to 1 cpu-hour; this will be noticable if you perform anything compute-intensive, and can affect IO-oriented activity as well (such as very large &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; operations.)&lt;br /&gt;
&lt;br /&gt;
=== How can I suspend and resume my session? ===&lt;br /&gt;
&lt;br /&gt;
The program screen can start persistent terminals from which you can detach and reattach.  The simplest use of screen is&lt;br /&gt;
&lt;br /&gt;
 screen -dR&lt;br /&gt;
&lt;br /&gt;
which will either reattach you to any existing session or create a new one if one doesn&amp;#039;t exist.  To terminate the current screen session, type &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;.  To detach manually (you are automatically detached if the connection is lost) press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;d&amp;#039;&amp;#039;, you can the resume later as above (ideal for running background jobs).  Note that &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; is screen&amp;#039;s escape sequence, so you have to do &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;a&amp;#039;&amp;#039; to get the regular effect of pressing &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; inside a screen session (e.g., moving the cursor to the start of the line in a shell).&lt;br /&gt;
&lt;br /&gt;
For a list of other &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; key sequences, press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;?&amp;#039;&amp;#039;.  For further details and  command line options, see the [http://www.gnu.org/software/screen/manual/screen.html screen manual] (or type &amp;lt;tt&amp;gt;man screen&amp;lt;/tt&amp;gt; on any of the clusters).&lt;br /&gt;
&lt;br /&gt;
Other notes:&lt;br /&gt;
* If you want to create additional &amp;quot;text windows&amp;quot;, use Ctrl-A Ctrl-C. Remember to type &amp;quot;exit&amp;quot; to close it. &lt;br /&gt;
* To switch to a &amp;quot;text window&amp;quot; with a certain number, use Ctrl-A # (where # is 0 to 9).&lt;br /&gt;
* To see a list of window numbers use Ctrl-A w&lt;br /&gt;
* To be presented a list of windows and select one to use, use Ctrl-A &amp;quot; (This is handy if you&amp;#039;ve made too many windows.)&lt;br /&gt;
* If the program running in a screen &amp;quot;text window&amp;quot; refuses to die (i.e., it needs to be killed) you can use Ctrl-A K&lt;br /&gt;
* For brief help on keystrokes use Ctrl-A ?&lt;br /&gt;
* For extensive help, run &amp;quot;man screen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What operating systems are supported? ===&lt;br /&gt;
UNIX in general. Currently, Linux is the only operating system used within SHARCNET.&lt;br /&gt;
&lt;br /&gt;
=== What makes a cluster different than my UNIX workstation? ===&lt;br /&gt;
&lt;br /&gt;
If you are familiar with UNIX, then using a cluster is not much different from using a workstation. When you login to a cluster, you in fact only log in to one of the cluster nodes. In most cases, each cluster node is a physical machine, usually a server class machine, with one or several CPUs, that is more or less the same as a workstation you are familiar with. The difference is that these nodes are interconnected with special interconnect devices and the way you run your program is slightly different. Across SHARCNET clusters, you are not expected to run your program interactively. You will have to run your program through a queueing system. That also means where and when your program gets to run is not decided by you, but by the queueing system.&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Those primary programming languages such as C, C++, Fortran, and Python are supported. Other languages, such as Java, Pascal and Ada, are also supported, but with limited technical support from us. &lt;br /&gt;
&lt;br /&gt;
=== How do I organize my files? ===&lt;br /&gt;
[https://docs.computecanada.ca/wiki/Storage_and_file_management#Storage_types Main file systems on our National systems.]&lt;br /&gt;
&lt;br /&gt;
==== How do I transfer files/directories to/from or between cluster? ====&lt;br /&gt;
&lt;br /&gt;
=====Unix/Linux=====&lt;br /&gt;
To transfer files to and from a cluster on a UNIX machine, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt;. For example, if you want to upload file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; to cluster graham from your machine &amp;lt;tt&amp;gt;myhost&amp;lt;/tt&amp;gt;, use the following command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp foo.f graham.alliancecan.ca:&lt;br /&gt;
&lt;br /&gt;
assuming that your machine has &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; installed. If you want to transfer a file from Windows or Mac, you need have &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt; for Windows or Mac installed.&lt;br /&gt;
&lt;br /&gt;
If you transfer file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; between Alliance clusters, say from your home directory on cedar to your home directory on graham, simply use the following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp foo.f graham:/home/username/&lt;br /&gt;
&lt;br /&gt;
If you are transferring files between a UNIX machine and a cluster, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; command with &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; option. For instance, if you want to download the subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; in the directory &amp;lt;tt&amp;gt;project&amp;lt;/tt&amp;gt; in your home directory on graham to your local UNIX machine, on your local machine, use command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp -rp graham.alliancecan.ca:project/foo .&lt;br /&gt;
&lt;br /&gt;
Similarly, you can transfer the subdirectory between Alliance clusters. The following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp -r graham.alliancecan.ca:/home/username/scratch/foo .&lt;br /&gt;
&lt;br /&gt;
will download subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; from your scratch directory on graham to your home directory on cedar (note that the prompt indicates you are currently logged on to cedar).&lt;br /&gt;
&lt;br /&gt;
The use of &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; option above will preserve the time stamp of each file. For Windows and Mac, you need to check the documentation of &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; for features. &amp;#039;&amp;#039;&amp;#039;Do not use -p switch with scp or cp commands on clusters, when the destination is your project space&amp;#039;&amp;#039;&amp;#039;, or you might run into the infamous [https://docs.computecanada.ca/wiki/Frequently_Asked_Questions#Disk_quota_exceeded_error_on_.2Fproject_filesystems Disk quota exceeded issue].&lt;br /&gt;
&lt;br /&gt;
You may also &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; and compress the entire directory and then use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to save bandwidth. In the above example, first you login to graham, then do the following&lt;br /&gt;
&lt;br /&gt;
 [username@gra-login2:~]$ cd project&lt;br /&gt;
 [username@gra-login2:~]$ tar -cvf foo.tar foo&lt;br /&gt;
 [username@gra-login2:~]$ gzip foo.tar&lt;br /&gt;
&lt;br /&gt;
Then on your local machine myhost, use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to copy the tar file&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp graham.alliancecan.ca:project/foo.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Note for most Linux distributions, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; has an option &amp;lt;tt&amp;gt;-z&amp;lt;/tt&amp;gt; that will compress the &amp;lt;tt&amp;gt;.tar&amp;lt;/tt&amp;gt; file using &amp;lt;tt&amp;gt;gzip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Windows=====&lt;br /&gt;
You may read the instructions on using an ssh client. [[https://helpwiki.sharcnet.ca/wiki/SSH#Transfering_files_.28Secure_File_Transfer_Client.29]]&lt;br /&gt;
&lt;br /&gt;
====How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect?====&lt;br /&gt;
&lt;br /&gt;
In general, most users should be fine using &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to transfer data to and from SHARCNET systems.  If you need to transfer a lot of files &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; is recommended to ensure that you do not need to restart the transfer from scratch should there be a connection failure.  Although you can use &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to any cluster&amp;#039;s login node(s), it is often best to use gra-dtn1.alliancecan.ca - it is dedicated to data transfer. &lt;br /&gt;
&lt;br /&gt;
In general one should expect the following transfer rates with &amp;#039;&amp;#039;scp&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* If you are connecting to SHARCNET through a Research/Education network site (ORION, CANARIE, Internet2) and are on a fast local network (this is the case for most users connecting from academic institutions) then you should be able to attain sustained transfer speeds in excess of 10MB/s.  If your path is all gigabit or better, you should be able to reach rates above 50 MB/s.&lt;br /&gt;
* If you are transferring data over the wider internet, you will not be able to attain these speeds, as all traffic that does not enter/exit SHARCNET via the R&amp;amp;E net is restricted to a limited-bandwidth commercial feed. In this case one will typically see rates on the order of 1MB/s or less.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that filesystems and networks are  shared resources and suffer from contention; if they are busy the above rates may not be attainable&lt;br /&gt;
&lt;br /&gt;
For transferring large amounts of data (many gigabytes) the best approach is to use the online tool [https://docs.computecanada.ca/wiki/Transferring_data#Globus_transfer Globus].&lt;br /&gt;
&lt;br /&gt;
==== How do I access the same file from different subdirectories on the same cluster ? ====&lt;br /&gt;
&lt;br /&gt;
You should not need copy large files on the same cluster (e.g. from one user to another&lt;br /&gt;
or using the same file in different subdirectories).  Instead of using&lt;br /&gt;
scp you might consider issuing a &amp;quot;soft link&amp;quot; command. Assume that you need access&lt;br /&gt;
to the file large_file1 in subdirectory /home/user1/subdir1 and you need it to be in your&lt;br /&gt;
subdirectory /home/my_account/my_dir from where you will invoke it under the name&lt;br /&gt;
my_large_file1.  Then go to that directory and type:&lt;br /&gt;
&lt;br /&gt;
 ln -s /home/user1/subdir1/large_file1    my_large_file1&lt;br /&gt;
&lt;br /&gt;
Another example, assume that in subdirectory /home/my_account/PROJ1 you have several&lt;br /&gt;
subdirectories called CASE1, CASE2, ...  In each subdirectory CASEn you have a slightly&lt;br /&gt;
different code but all of them process the same data file called test_data. Rather than&lt;br /&gt;
copying the test_data file into each CASEn subdirectory, place test_data above i.e.&lt;br /&gt;
in /home/my_account/PROJ1 and then in each CASEn subdirectory issue following &amp;quot;soft link&amp;quot;&lt;br /&gt;
command:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../test_data  test_data&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;soft links&amp;quot; can be removed by using the rm command. For example, to remove the soft link from&lt;br /&gt;
/home/my_account/PROJ1/CASE2 type following command from this subdirectory:&lt;br /&gt;
&lt;br /&gt;
 rm -rf test_data&lt;br /&gt;
&lt;br /&gt;
Typing above command from subdirectory /home/my_account/PROJ1 would remove the actual file and then&lt;br /&gt;
none of the CASEn subdirectories would have access to it.&lt;br /&gt;
&lt;br /&gt;
==== How are files deleted from the /home/userid/scratch filesystems? ====&lt;br /&gt;
&lt;br /&gt;
All files on /home/userid/scratch that are over 2 months old (not old in the common sense, please see below) are automatically deleted. Data needed for long term storage and reference should be kept in either /project, /nearline, or other archival storage areas. The scratch filesystem is checked at the end of the month for files which will be candidates for expiry on the 15th of the following month. On the first day of the month, a login message is posted and a notification e-mail is sent to all users who have at least one file which is a candidate for purging and containing the location of a file which lists all the candidates for purging.  On the 12th of the month, a second scan is run to check for files that will still expire on the 15th, and again, users with candidates for expiry are sent a second warning email.  Lastly, on the 15th, all files which are due for expiry are removed.&lt;br /&gt;
&lt;br /&gt;
An unconventional aspect of this system is that it does not determine the age of a file based on the file&amp;#039;s attributes, e.g., the standard dates reported by the &amp;lt;i&amp;gt;stat&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;find&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;ls&amp;lt;/i&amp;gt;, etc. commands.  (This is known as the &amp;quot;mtime&amp;quot; of the file, for &amp;quot;modification time&amp;quot;, and is frequently inaccurate.) The age of a file is determined based on whether or not its data contents (i.e., the information stored in the file) have changed or been accessed, and this age is stored externally to the file.  Only files where the contents have changed or accessed will have their age counter &amp;quot;reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A list of your candidate files for expiry can be found in /home/scratch_to_delete/$USER  (where $USER is your userid).&lt;br /&gt;
&lt;br /&gt;
===== How do I check the age of a file =====&lt;br /&gt;
We define a file&amp;#039;s age as the most recent of:&lt;br /&gt;
&lt;br /&gt;
 *the access time (atime) and&lt;br /&gt;
 *the change time (ctime)&lt;br /&gt;
&lt;br /&gt;
You can find the ctime of a file using&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lc &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while the atime can be obtained with the command&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lu &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do not use the modify time (mtime) of the file because it can be modified by the user or by other programs to display incorrect information.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, simple use of the atime property would be sufficient, as it is updated by the system in sync with the ctime. However, userspace programs are able to alter atime, potentially to times in the past, which could result in early expiration of a file. The use of ctime as a fallback guards against this undesirable behaviour.&lt;br /&gt;
&lt;br /&gt;
It is also your responsibility to manage your stored data: most of the filesystems are not intended to provide an indefinite archiving service so when a given file or directory is no longer needed, you need to move it to a more appropriate filesystem which may well mean your personal workstation or some other storage system under your control. Moving significant amounts of data between your workstation and an Alliance system or between two Alliance systems should generally be done using Globus.&lt;br /&gt;
&lt;br /&gt;
==== How to archive my data? ====&lt;br /&gt;
&lt;br /&gt;
===== Use tar to archive files and directories =====&lt;br /&gt;
&lt;br /&gt;
The primary archiving utility on all Linux and Unix-like systems is the [https://www.gnu.org/software/tar/manual/tar.html tar] command. It will bundle a bunch of files or directories together and generate a single file, called an &amp;#039;&amp;#039;archive file&amp;#039;&amp;#039; or &amp;#039;&amp;#039;tar-file&amp;#039;&amp;#039;. By convention an archive file has &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; as the file name extension. When you archive a directory with &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, it will, by default, include all the files and sub-directories contained within it, and sub-sub-directories contained in those, and so on. So the command &amp;lt;code&amp;gt;tar --create --file project1.tar project1&amp;lt;/code&amp;gt; will pack all the content of directory &amp;#039;&amp;#039;project1&amp;#039;&amp;#039; into the file &amp;#039;&amp;#039;project1.tar&amp;#039;&amp;#039;. The original directory will remain unchanged, so this may double the amount of disk space occupied!&lt;br /&gt;
&lt;br /&gt;
You can extract files from an archive using the same command with a different option:&amp;lt;code&amp;gt;tar --extract --file project1.tar&amp;lt;/code&amp;gt;. If there is no directory with the original name, it will be created. If a directory of that name exists and contains files of the same names as in the archive file, they will be overwritten. Another option can be added to specify the destination directory where to extract the archive&amp;#039;s content.   &lt;br /&gt;
&lt;br /&gt;
===== Compress and uncompress tar files =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; archiving utility can compress an archive file at the same time it creates it. There are a number of compression methods to choose from. We recommend either &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;, which can be used as follows:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ tar --create --xz --file project1.tar.xz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --xz --file project1.tar.xz&lt;br /&gt;
 [user_name@localhost]$ tar --create --gzip --file project1.tar.gz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --gzip --file project1.tar.gz&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;code&amp;gt;--xz&amp;lt;/code&amp;gt; will produce a smaller compressed file (a &amp;quot;better compression ratio&amp;quot;) but takes longer and uses more RAM while working. &amp;lt;code&amp;gt;--gzip&amp;lt;/code&amp;gt; does not typically compress as small, but may be used if you encounter difficulties due to insufficient memory or excessive run time during &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt;. A third option, &amp;lt;code&amp;gt;--bzip2&amp;lt;/code&amp;gt;, is also available, that typically does not compress as small as &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; but takes longer than &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt; first without compression and then use the commands &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; in a separate step, although there is rarely a reason to do so. Similarly, you can run &amp;lt;code&amp;gt;xz -d&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip -d&amp;lt;/code&amp;gt; to decompress an archive file before running &amp;lt;code&amp;gt;tar --extract&amp;lt;/code&amp;gt;, but again there is rarely a reason to do so.&lt;br /&gt;
&lt;br /&gt;
The commands &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; can be used to compress any file, not just archive files:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ gzip bigfile&lt;br /&gt;
 [user_name@localhost]$ xz bigfile&lt;br /&gt;
&lt;br /&gt;
These commands will produce the files &amp;lt;code&amp;gt;bigfile.gz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigfile.xz&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
=====Archival Storage=====&lt;br /&gt;
&lt;br /&gt;
On Graham, files copied to ~/nearline will be subsequently moved to offline (tape-based) storage. See [https://docs.computecanada.ca/wiki/Using_nearline_storage this link] for more details.&lt;br /&gt;
&lt;br /&gt;
==== How can I check the hidden files in directory? ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;.&amp;quot; at the beginning of the name means that the file is &amp;quot;hidden&amp;quot;. You have to use the -a option with ls to see it. I.e. &amp;lt;code&amp;gt;ls -a &amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
If you want to display only the hidden files then type:&lt;br /&gt;
 ls -d .*&lt;br /&gt;
&lt;br /&gt;
Note: there is an alias which is loaded from /etc/bashrc (see your .bashrc file). The alias is defined by alias &amp;lt;code&amp;gt; l.=&amp;#039;ls -d .* --color=auto&amp;#039; &amp;lt;/code&amp;gt; and if you type:&lt;br /&gt;
 l.&lt;br /&gt;
you will also display only the hidden files.&lt;br /&gt;
&lt;br /&gt;
==== How can I count the number of files in a directory? ====&lt;br /&gt;
&lt;br /&gt;
One can use the following command to count the number of files in a directory (in this example, your /work directory):&lt;br /&gt;
&lt;br /&gt;
 find /home/$USER -type f   | wc -l&lt;br /&gt;
&lt;br /&gt;
It is always a good idea to [[Knowledge_Base#How_to_archive_my_data.3F|archive]] and/or compress files that are no longer needed on the filesystem (see [https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_to_organize_a_large_number_of_files.3F below]).  This helps minimize one&amp;#039;s footprint on the filesystem and as such the impact they have on other users of the shared resource.&lt;br /&gt;
&lt;br /&gt;
==== How to organize a large number of files? ====&lt;br /&gt;
&lt;br /&gt;
With parallel cluster filesystems, you will get best I/O performance writing data to a small number of large files. Since all metadata operations on each of our parallel filesystems are handled by a single file server, depending on how many files are being accessed the server can become overwhelmed leading to poor overall I/O performance for all users. If your workflow involves storing data in a large number of files, it is best to pack these files into a small number of larger archives, e.g. using tar command&lt;br /&gt;
&lt;br /&gt;
 tar cvf archiveFile.tar directoryToArchive&lt;br /&gt;
&lt;br /&gt;
For better performance with many files inside your archive, we recommend to use DAR (Disk ARchive utility), which is a disk analog of tar (Tape ARchive).  Dar can extract files from anywhere in the archive much faster than tar. The dar command is available by default on sharcnet systems. It can be used to pack files into a dar archive by doing something like: &lt;br /&gt;
&lt;br /&gt;
 dar -s 1G -w -c archiveFile -g directoryToArchive&lt;br /&gt;
&lt;br /&gt;
In this example we split the archive into 1GB chunks, and the archive files will be named archiveFile.1.dar, archiveFile.2.dar, and so on. To list the contents of the archive, you can type:&lt;br /&gt;
&lt;br /&gt;
 dar -l archiveFile&lt;br /&gt;
&lt;br /&gt;
To temporarily extract files for post-processing into current directory, you would type:&lt;br /&gt;
&lt;br /&gt;
 dar -R . -O -x archiveFile -v -g pathToYourFile/fileToExtract&lt;br /&gt;
&lt;br /&gt;
=== I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host ===&lt;br /&gt;
&lt;br /&gt;
The most likely cause of this behaviour is repeated failed login attempts.  Part of our security policies involves blocking the IP address of machines that attempt multiple logins with incorrect passwords over a short period of time---many brute-force attacks on systems do exactly this: looking for poor passwords, badly configured accounts, etc.  Unfortunately, it isn&amp;#039;t uncommon for a user to forget their password and make repeated login attempts with incorrect passwords and end up with that machine blacklisted and unable to connect at all.&lt;br /&gt;
&lt;br /&gt;
A temporary solution is simply to attempt to login from another machine.  If you have access to another machine at your site, you can shell to that machine first, and then shell to the SHARCNET system (as that machine&amp;#039;s IP shouldn&amp;#039;t be blacklisted).  In order to have your machine unblocked, you will have to email to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] as a system administrator must manually intervene in order to fix it.&lt;br /&gt;
&lt;br /&gt;
NOTE: there are other situations that can produce this message, however they are rarer and more transient.  If you are unable to log in from one machine, but can from another, it is most likely the IP blacklisting that is the problem and the above will provide a temporary work-around while your problem ticket is processed.&lt;br /&gt;
&lt;br /&gt;
=== I am unable to ssh/scp from SHARCNET to my local computer ===&lt;br /&gt;
&lt;br /&gt;
Most campus networks are behind some sort of firewall.  If you can ssh out to SHARCNET, but cannot establish a connection in the other direction, then you are probably behind a firewall and should speak with your local system administrator or campus IT department to determine if there are any exceptions or workarounds in place.&lt;br /&gt;
&lt;br /&gt;
=== SSH tells me SOMEONE IS DOING SOMETHING NASTY!? ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please first read the following:&lt;br /&gt;
&lt;br /&gt;
https://docs.alliancecan.ca/wiki/SSH_security_improvements&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suppose you attempt to login to SHARCNET, but instead get an alarming message like this:&lt;br /&gt;
&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that the RSA host key has just been changed.&lt;br /&gt;
 The fingerprint for the RSA key sent by the remote host is&lt;br /&gt;
 fe:65:ab:89:9a:23:34:5a:50:1e:05:d6:bf:ec:da:67.&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending key in /home/user/.ssh/known_hosts:42&lt;br /&gt;
 RSA host key for requin has changed and you have requested strict checking.&lt;br /&gt;
 Host key verification failed. &lt;br /&gt;
&lt;br /&gt;
SSH begins a connection by verifying that the host you&amp;#039;re connecting to is authentic. It does this by caching the hosts&amp;#039;s &amp;quot;hostkey&amp;quot; in your  &amp;lt;tt&amp;gt;~/.ssh/known_hosts&amp;lt;/tt&amp;gt; file. At times, a hostkey may be changed legitimately; when this happens, you may see such a message. It&amp;#039;s a good idea to verify this with us, you may be able to check the fingerprint yourself by logging into another sharcnet system and running:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub &lt;br /&gt;
&lt;br /&gt;
If the fingerprint is OK, the normal way to fix the problem is to simply remove the old hostkey from your &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. On machines with commandline SSH, you can do this with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -R thehostname&lt;br /&gt;
&lt;br /&gt;
You can use your choice of editor if you&amp;#039;re comfortable doing so (it&amp;#039;s a plain text file, but has long lines). On a unix-compatible machine, you can also use the following very small script (Substitute the line(s) printed in the warning message illustrated above for &amp;#039;42&amp;#039; here.):&lt;br /&gt;
&lt;br /&gt;
 perl -pi -e &amp;#039;undef $_ if (++$line == 42)&amp;#039; ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
Another solution is brute-force: remove the whole &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. This throws away any authentication checking, and afterwards, your first connection to any machine will prompt you to accept a newly discovered host key.&lt;br /&gt;
&lt;br /&gt;
=== Ssh works, but scp doesn&amp;#039;t! ===&lt;br /&gt;
&lt;br /&gt;
If you can &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; to a cluster successfully, but cannot &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to to it, the problem is likely that your login scripts print unexpected messages which confuse &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; is based on the same &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, but assumes that the connection is &amp;quot;clean&amp;quot;: that is, that it does not produce any un-asked-for content. If you have something like:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; will be confused by the salutation. To avoid this, simply ensure that the message is only printed on an interactive login:&lt;br /&gt;
&lt;br /&gt;
 if [ -t 0 ]; then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
or in csh/tcsh syntax:&lt;br /&gt;
&lt;br /&gt;
 if ( -t 0 ) then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
=== How do I edit my program on a cluster? ===&lt;br /&gt;
&lt;br /&gt;
We provide a variety of editors, such as the traditional text-mode &amp;lt;tt&amp;gt;emacs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; (vim), as well as a simpler one called &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;. If you have X on your desktop (and tunneled through SSH), you can use the GUI versions (&amp;lt;tt&amp;gt;xemacs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If your desktop supports FUSE, it&amp;#039;s very convenient to simply mount your home tree like this:&lt;br /&gt;
 mkdir sharcnet&lt;br /&gt;
 sshfs graham.alliancecan.ca: sharcnet&lt;br /&gt;
you can then use any local editor of your choice.&lt;br /&gt;
&lt;br /&gt;
If you run emacs on your desktop, you can also edit a remote file from within your local emacs client using [http://www.gnu.org/software/tramp Tramp], opening and saving a file as /username@cluster.computecanada.ca:path/file.&lt;br /&gt;
&lt;br /&gt;
== Research at SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== I have a research project I would like to collaborate on with SHARCNET, who should I talk to? ===&lt;br /&gt;
&lt;br /&gt;
You may contact [mailto:barb@sharcnet.ca SHARCNET head office] or contact members of the [https://www.sharcnet.ca/my/contact/directory#techteam SHARCNET technical staff].&lt;br /&gt;
&lt;br /&gt;
=== How can I contribute compute resources to SHARCNET so that other researchers can share it? ===&lt;br /&gt;
&lt;br /&gt;
Most people&amp;#039;s research is &amp;quot;bursty&amp;quot; - there are usually sparse periods of time when some computation is urgently needed, and other periods when there is less demand. One problem with this is that if you purchase the equipment you need to meet your &amp;quot;burst&amp;quot; needs, it&amp;#039;ll probably sit, underutilized, during other times.&lt;br /&gt;
&lt;br /&gt;
An alternative is to donate control of this equipment to SHARCNET, and let us arrange for other users to use it when you are not. We prefer to be involved in the selection and configuration of such equipment. Our promise to contributors is that as much as possible, they should obtain as much benefit from the cluster as if it were not shared. Owners get preferential access. Naturally, owners are also able to burst to higher peak usage, since their equipment has been pooled with other contributions. (Technically, SHARCNET cannot itself own such equipment — it remains owned by the institution in question, and will be returned to the contributor upon request.) If you think this model will also work for you and you would like to contribute your computational resource to help the research community at SHARCNET, you can contact us for such arrangement.&lt;br /&gt;
&lt;br /&gt;
=== I do not know much about computation, nor is it my research interest. But I am interested in getting my research done faster with the help of the high performance computing technology. In other words, I do not care about the process and mechanism, but only the final results. Can SHARCNET provide this type of help? ===&lt;br /&gt;
&lt;br /&gt;
We will be happy to bring the technology of high performance computing to you to accelerate your research, if at all possible. If you would like to discuss your plan with us, please feel free to contact our [https://www.sharcnet.ca/my/contact/directory#techteam high performance computing specialists]. They will be happy to listen to your needs and are ready to provide appropriate suggestions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET participates in the Alliance national RAC (Resource Allocation Competition) and provides a continual competition for groups that require more than the default level of access to our resources.  Please see [[Dedicated Resources]] for further information.&lt;br /&gt;
&lt;br /&gt;
=== I heard SHARCNET offers fellowships, where can I get more information? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET no longer actively runs a fellowship program.  You may find information regarding past fellowships and other dedicated resource opportunities on the [https://www.sharcnet.ca/my/research/fellowships Research Fellowships page] of the web portal.&lt;br /&gt;
&lt;br /&gt;
=== I would like to do some research at SHARCNET as a visiting scholar, how should I apply? ===&lt;br /&gt;
&lt;br /&gt;
In general, you will need to find a hosting department or a person affiliated with one of the SHARCNET institutions. You may also [http://www.sharcnet.ca/my/contact contact us] directly for more specific information.&lt;br /&gt;
&lt;br /&gt;
=== I would like to send my students to SHARCNET to do some work for me. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
See above.&lt;br /&gt;
&lt;br /&gt;
== Contacting SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for research, academic exchanges, and technical issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for business development, education and other issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact a specific staff member at SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
See [https://www.sharcnet.ca/my/contact/directory staff directory] for contact information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Acknowledge SHARCNET in Publications ==&lt;br /&gt;
&lt;br /&gt;
=== How do I acknowledge SHARCNET in my publications? ===&lt;br /&gt;
&lt;br /&gt;
We recommend one cite the following:&lt;br /&gt;
&lt;br /&gt;
 This work was made possible by the facilities of the Shared Hierarchical &lt;br /&gt;
 Academic Research Computing Network (SHARCNET:www.sharcnet.ca) and Digital Research Alliance of Canada (https://alliancecan.ca/en).&lt;br /&gt;
&lt;br /&gt;
=== I&amp;#039;ve seen different spellings of the name, what is the standard spelling of SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
We suggest the spelling SHARCNET, all in upper case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What types of research programs / support are provided to the research community? ==&lt;br /&gt;
&lt;br /&gt;
Our overall intent is to provide support that can both respond to the range of needs that the user community presents and help to increase the sophistication of the community and enable new and larger-in-scope applications making use of SHARCNET&amp;#039;s HPC facilities. The range of support can perhaps best be understood in terms of a pyramid:&lt;br /&gt;
&lt;br /&gt;
=== Level 1 ===&lt;br /&gt;
&lt;br /&gt;
At the apex of the pyramid, SHARCNET supports a small number of projects with dedicated programmer support. The intent is to enable projects that will have a lasting impact and may lead to a &amp;quot;step change&amp;quot; in the way research is done at SHARCNET. Inter-disciplinary and inter-institutional projects are particularly welcomed. For the latest information about the program, including application guidelines, please see the  [https://www.sharcnet.ca/my/research/programming Programming Competition] page in our web portal.&lt;br /&gt;
&lt;br /&gt;
=== Level 2 ===&lt;br /&gt;
&lt;br /&gt;
The middle layers of support are provided through a number of initiatives.&lt;br /&gt;
&lt;br /&gt;
These include:&lt;br /&gt;
* Programming support of more modest duration (several days to one month engagement, usually part time)&lt;br /&gt;
* Training on a variety of topics through [https://helpwiki.sharcnet.ca/wiki/Training workshops, seminars and online training materials]&lt;br /&gt;
* Consultation. This may include user-initiated interactions on particular programs, algorithms, techniques, debugging, optimization etc., as well as unsolicited help to ensure effective use of SHARCNET systems&lt;br /&gt;
* Site Leaders play an important role in working with the community to help researchers connect with SHARCNET staff and to obtain appropriate help and support.&lt;br /&gt;
&lt;br /&gt;
=== Level 3 ===&lt;br /&gt;
&lt;br /&gt;
The base level of the pyramid handles the very large number of small requests that are essential to keeping the user community working effectively with the infrastructure on a day-to-day basis. Several of these can be answered by this FAQ; many of the issues are presented through the [https://www.sharcnet.ca/help/index.php/Knowledge_Base#Compute_Canada_Problem_Ticket_System ticketing system]. The support is largely problem oriented with each problem being time limited.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=952</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=952"/>
		<updated>2024-09-17T17:59:39Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* Unix/Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Sharcnet_logo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== About SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== What is SHARCNET? ===&lt;br /&gt;
SHARCNET stands for Shared Hierarchical Academic Research Computing Network. Established in 2000, SHARCNET is the largest high performance computing consortium in Canada, involving 19 universities and colleges across southern, central and northern Ontario.&lt;br /&gt;
&lt;br /&gt;
SHARCNET is a member consortium in the [https://alliancecan.ca/en Digital Research Alliance of Canada (Alliance)]  national HPC platform.&lt;br /&gt;
&lt;br /&gt;
=== Where is SHARCNET? ===&lt;br /&gt;
The [http://www.sharcnet.ca/my/contact main office] of SHARCNET is located in the Western Science Centre at [http://www.uwo.ca/ The University of Western Ontario].&lt;br /&gt;
&lt;br /&gt;
=== What does SHARCNET have? ===&lt;br /&gt;
The primary SHARCNET compute system is [https://docs.computecanada.ca/wiki/Graham Graham heterogeneous cluster] located at the University of Waterloo.  It is named after Wes Graham, the first director of the Computing Centre at Waterloo.  It consists of 41,548 cores and 520 GPU devices, spread across 1,185 nodes of different configurations.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with SHARCNET? ===&lt;br /&gt;
If you have a program that takes months to run on your PC, you could probably run it within a few hours using hundreds of processors on SHARCNET / Alliance, provided your program is inherently parallelisable. If you have hundreds or thousands of test cases to run through on your PC or computers in your lab, then with hundreds of processors running those cases independently will significantly reduce your test cycles.&lt;br /&gt;
&lt;br /&gt;
=== Who is running SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
The daily operation and development of SHARCNET computational facilities is managed by a group of highly qualified system administrators. In addition, we have a team of high performance technical computing consultants, who are responsible for technical support on libraries, programming and application analysis.&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET? ===&lt;br /&gt;
For technical inquiries, you may send E-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] or [mailto:help@sharcnet.ca help@sharcnet.ca], or [https://www.sharcnet.ca/my/contact/directory#techteam contact your local system administrator or HPC specialist]. For general inquiries, you may contact the SHARCNET [http://www.sharcnet.ca/my/contact main office].&lt;br /&gt;
&lt;br /&gt;
== Getting an Account with SHARCNET and Related Issues ==&lt;br /&gt;
&lt;br /&gt;
To use SHARCNET (and any other national facilities in Alliance) one has to [https://www.alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account apply for an Alliance account].&lt;br /&gt;
&lt;br /&gt;
== Getting Help ==&lt;br /&gt;
&lt;br /&gt;
=== I have encountered a problem while using an Alliance /SHARCNET system and need help, who should I talk to? ===&lt;br /&gt;
We encourage you to use the problem ticketing system (described in detail [[FAQ#Alliance_Problem_Ticket_System|below]]) .  This is the most efficient way of reporting a problem.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the [https://www.sharcnet.ca/my/contact/directory directory] page.&lt;br /&gt;
&lt;br /&gt;
=== How long should I expect to wait for support? ===&lt;br /&gt;
Unfortunately Alliance/SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week.  User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .  &lt;br /&gt;
&lt;br /&gt;
Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.  &lt;br /&gt;
&lt;br /&gt;
=== Alliance Problem Ticket System ===&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;problem ticket system&amp;quot;? ====&lt;br /&gt;
&lt;br /&gt;
This is a system that allows anyone with an Alliance account to start a persistent email thread that is referred to as a &amp;quot;problem ticket&amp;quot;.    When a user submits a new ticket it will be brought to the attention of an appropriate and available Alliance/SHARCNET staff member for resolution.  &lt;br /&gt;
&lt;br /&gt;
You interact with the ticket system entirely via email.&lt;br /&gt;
&lt;br /&gt;
==== What do I need to specify in a ticket ? ====&lt;br /&gt;
&lt;br /&gt;
To help us address your question faster, please try to do the following when submitting a ticket:&lt;br /&gt;
&lt;br /&gt;
#specify which of our systems is involved &lt;br /&gt;
#if the problem pertains to a job, then report the &amp;lt;u&amp;gt;jobid&amp;lt;/u&amp;gt; associated with the job; this is an integer that is returned by the scheduler when you submit the job&lt;br /&gt;
#report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem; if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem&lt;br /&gt;
#if you&amp;#039;d like for a particular staff member to be aware of the ticket, mention them&lt;br /&gt;
&lt;br /&gt;
==== How do I submit a ticket? ====&lt;br /&gt;
&lt;br /&gt;
In general, you can submit a new ticket by emailing  [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca]  with the email address associated with your Alliance account.  If you are using another email address, please provide your full name, your Alliance default username (if available) and your university or institution.&lt;br /&gt;
&lt;br /&gt;
If you like, you can also target your inquiry more specifically, by using the following addresses to submit your ticket:&lt;br /&gt;
&lt;br /&gt;
* [mailto:help@sharcnet.ca help@sharcnet.ca] - questions specific to SHARCNET, for example relating to contributed SHARCNET systems&lt;br /&gt;
* [mailto:globus@tech.alliancecan.ca globus@tech.alliancecan.ca] -- Questions about [[Globus]] file transfer services&lt;br /&gt;
* [mailto:cloud@tech.alliancecan.ca cloud@tech.alliancecan.ca] -- Questions about using Alliance cloud resources&lt;br /&gt;
* [mailto:accounts@tech.alliancecan.ca accounts@tech.alliancecan.ca] -- Questions about Alliance accounts&lt;br /&gt;
* [mailto:renewals@tech.alliancecan.ca renewals@tech.alliancecan.ca] -- Questions about Alliance account renewals&lt;br /&gt;
&lt;br /&gt;
=== I am new to parallel programming, can you help me get started with my project? ===&lt;br /&gt;
Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research. If your programming project would involve a significant staff time, you should consider applying for Dedicated Programming support. (We run the competition annually; see https://www.sharcnet.ca/my/research/programming).&lt;br /&gt;
&lt;br /&gt;
=== Can you install a package on a cluster for me? ===&lt;br /&gt;
Certainly.  We suggest you make the request by sending e-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] with the specific request.&lt;br /&gt;
&lt;br /&gt;
=== I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that? ===&lt;br /&gt;
If you tell us what you want, we may be able to help you out.&lt;br /&gt;
&lt;br /&gt;
=== Does SHARCNET provide any training on programming and using the systems? ===&lt;br /&gt;
&lt;br /&gt;
Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every summer (usually late May to early June), SHARCNET holds [https://helpwiki.sharcnet.ca/wiki/Summer_Schools an annual HPC Summer School] with a variety of in-depth, hands-on workshops. &lt;br /&gt;
&lt;br /&gt;
SHARCNET also offers a series of online seminars (so-called &amp;quot;General interest webinars&amp;quot;), typically delivered every second Wednesday at lunch time.  These are announced via the SHARCNET events mailing list and one can see the schedule at the [https://www.sharcnet.ca/my/news/calendar SHARCNET event calendar].  Past seminars are recorded and posted on [http://youtube.sharcnet.ca our youtube channel]. A full listing of the past webinars is available on the [https://helpwiki.sharcnet.ca/wiki/Online_Seminars Online Seminars] page.&lt;br /&gt;
&lt;br /&gt;
=== Attending SHARCNET Webinars ===&lt;br /&gt;
{{:Attending SHARCNET Webinars}}&lt;br /&gt;
&lt;br /&gt;
== Logging in to Systems, Transferring and Editing Files ==&lt;br /&gt;
&lt;br /&gt;
=== How do I login to SHARCNET? ===&lt;br /&gt;
You access the SHARCNET clusters using ssh.  For Graham and other national systems Alliance credentials are required.  For the remaining (&amp;quot;Legacy&amp;quot;) systems, you will require SHARCNET credentials (submit a ticket to help@sharcnet.ca if you have questions).&lt;br /&gt;
&lt;br /&gt;
====Unix/Linux/OS X====&lt;br /&gt;
To login to a system, you need to use an [http://www.openssh.com/ Secure Shell (SSH)] connection. If you are logging in from a UNIX-based machine, make sure it has an SSH client (ssh) installed (this is almost always the case on UNIX/Linux/OS X). If you have the same login name on both your local system and SHARCNET, and you want to login to, say, &amp;lt;tt&amp;gt;graham&amp;lt;/tt&amp;gt;, you may use the command:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If your Alliance username is different from the username on your local systems, then you may use either of the following forms:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca -l username&lt;br /&gt;
 ssh username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If you want to establish an X window connection so that you can use graphics applications such as &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ddt&amp;lt;/tt&amp;gt;, you can add a &amp;lt;tt&amp;gt;-Y&amp;lt;/tt&amp;gt; to the command:&lt;br /&gt;
&lt;br /&gt;
 ssh -Y username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
This will automatically set the X DISPLAY variable when you login.&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
If you are logging from a computer running Windows and need some pointers we recommend consulting our [[SSH]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between Login Nodes and Compute Nodes? ===&lt;br /&gt;
====Login Nodes====&lt;br /&gt;
&lt;br /&gt;
Most of our clusters have distinct &amp;#039;&amp;#039;login nodes&amp;#039;&amp;#039; associated with them that you are automatically redirected to when you login to the cluster (some systems are directly logged into, eg. SMPs and smaller specialty systems).  You can use these to do most of your work preparing for jobs (compiling, editing configuration files) and other low-intensity tasks like moving and copying files.  &lt;br /&gt;
&lt;br /&gt;
You can also use them for other quick tasks, like simple post-processing, but any significant work should be submitted as a job to the compute nodes.  On most login nodes, each process is limited to 1 cpu-hour; this will be noticable if you perform anything compute-intensive, and can affect IO-oriented activity as well (such as very large &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; operations.)&lt;br /&gt;
&lt;br /&gt;
=== How can I suspend and resume my session? ===&lt;br /&gt;
&lt;br /&gt;
The program screen can start persistent terminals from which you can detach and reattach.  The simplest use of screen is&lt;br /&gt;
&lt;br /&gt;
 screen -dR&lt;br /&gt;
&lt;br /&gt;
which will either reattach you to any existing session or create a new one if one doesn&amp;#039;t exist.  To terminate the current screen session, type &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;.  To detach manually (you are automatically detached if the connection is lost) press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;d&amp;#039;&amp;#039;, you can the resume later as above (ideal for running background jobs).  Note that &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; is screen&amp;#039;s escape sequence, so you have to do &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;a&amp;#039;&amp;#039; to get the regular effect of pressing &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; inside a screen session (e.g., moving the cursor to the start of the line in a shell).&lt;br /&gt;
&lt;br /&gt;
For a list of other &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; key sequences, press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;?&amp;#039;&amp;#039;.  For further details and  command line options, see the [http://www.gnu.org/software/screen/manual/screen.html screen manual] (or type &amp;lt;tt&amp;gt;man screen&amp;lt;/tt&amp;gt; on any of the clusters).&lt;br /&gt;
&lt;br /&gt;
Other notes:&lt;br /&gt;
* If you want to create additional &amp;quot;text windows&amp;quot;, use Ctrl-A Ctrl-C. Remember to type &amp;quot;exit&amp;quot; to close it. &lt;br /&gt;
* To switch to a &amp;quot;text window&amp;quot; with a certain number, use Ctrl-A # (where # is 0 to 9).&lt;br /&gt;
* To see a list of window numbers use Ctrl-A w&lt;br /&gt;
* To be presented a list of windows and select one to use, use Ctrl-A &amp;quot; (This is handy if you&amp;#039;ve made too many windows.)&lt;br /&gt;
* If the program running in a screen &amp;quot;text window&amp;quot; refuses to die (i.e., it needs to be killed) you can use Ctrl-A K&lt;br /&gt;
* For brief help on keystrokes use Ctrl-A ?&lt;br /&gt;
* For extensive help, run &amp;quot;man screen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What operating systems are supported? ===&lt;br /&gt;
UNIX in general. Currently, Linux is the only operating system used within SHARCNET.&lt;br /&gt;
&lt;br /&gt;
=== What makes a cluster different than my UNIX workstation? ===&lt;br /&gt;
&lt;br /&gt;
If you are familiar with UNIX, then using a cluster is not much different from using a workstation. When you login to a cluster, you in fact only log in to one of the cluster nodes. In most cases, each cluster node is a physical machine, usually a server class machine, with one or several CPUs, that is more or less the same as a workstation you are familiar with. The difference is that these nodes are interconnected with special interconnect devices and the way you run your program is slightly different. Across SHARCNET clusters, you are not expected to run your program interactively. You will have to run your program through a queueing system. That also means where and when your program gets to run is not decided by you, but by the queueing system.&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Those primary programming languages such as C, C++, Fortran, and Python are supported. Other languages, such as Java, Pascal and Ada, are also supported, but with limited technical support from us. &lt;br /&gt;
&lt;br /&gt;
=== How do I organize my files? ===&lt;br /&gt;
[https://docs.computecanada.ca/wiki/Storage_and_file_management#Storage_types Main file systems on our National systems.]&lt;br /&gt;
&lt;br /&gt;
==== How do I transfer files/directories to/from or between cluster? ====&lt;br /&gt;
&lt;br /&gt;
=====Unix/Linux=====&lt;br /&gt;
To transfer files to and from a cluster on a UNIX machine, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt;. For example, if you want to upload file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; to cluster graham from your machine &amp;lt;tt&amp;gt;myhost&amp;lt;/tt&amp;gt;, use the following command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp foo.f graham.alliancecan.ca:&lt;br /&gt;
&lt;br /&gt;
assuming that your machine has &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; installed. If you want to transfer a file from Windows or Mac, you need have &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt; for Windows or Mac installed.&lt;br /&gt;
&lt;br /&gt;
If you transfer file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; between Alliance clusters, say from your home directory on cedar to your home directory on graham, simply use the following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp foo.f graham:/home/username/&lt;br /&gt;
&lt;br /&gt;
If you are transferring files between a UNIX machine and a cluster, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; command with &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; option. For instance, if you want to download the subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; in the directory &amp;lt;tt&amp;gt;project&amp;lt;/tt&amp;gt; in your home directory on graham to your local UNIX machine, on your local machine, use command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp -rp graham.alliancecan.ca:project/foo .&lt;br /&gt;
&lt;br /&gt;
Similarly, you can transfer the subdirectory between Alliance clusters. The following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp -r graham.alliancecan.ca:/home/username/scratch/foo .&lt;br /&gt;
&lt;br /&gt;
will download subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; from your scratch directory on graham to your home directory on cedar (note that the prompt indicates you are currently logged on to cedar).&lt;br /&gt;
&lt;br /&gt;
The use of &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; option above will preserve the time stamp of each file. For Windows and Mac, you need to check the documentation of &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; for features. &amp;#039;&amp;#039;&amp;#039;Do not use -p switch with scp or cp commands on clusters, when the destination is your project space&amp;#039;&amp;#039;&amp;#039;, or you might run into the infamous [https://docs.computecanada.ca/wiki/Frequently_Asked_Questions#Disk_quota_exceeded_error_on_.2Fproject_filesystems Disk quota exceeded issue].&lt;br /&gt;
&lt;br /&gt;
You may also &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; and compress the entire directory and then use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to save bandwidth. In the above example, first you login to graham, then do the following&lt;br /&gt;
&lt;br /&gt;
 [username@gra-login2:~]$ cd project&lt;br /&gt;
 [username@gra-login2:~]$ tar -cvf foo.tar foo&lt;br /&gt;
 [username@gra-login2:~]$ gzip foo.tar&lt;br /&gt;
&lt;br /&gt;
Then on your local machine myhost, use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to copy the tar file&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp graham.alliancecan.ca:project/foo.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Note for most Linux distributions, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; has an option &amp;lt;tt&amp;gt;-z&amp;lt;/tt&amp;gt; that will compress the &amp;lt;tt&amp;gt;.tar&amp;lt;/tt&amp;gt; file using &amp;lt;tt&amp;gt;gzip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Windows=====&lt;br /&gt;
You may read the instructions on using an ssh client. [[https://helpwiki.sharcnet.ca/wiki/SSH#Transfering_files_.28Secure_File_Transfer_Client.29]]&lt;br /&gt;
&lt;br /&gt;
====How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect?====&lt;br /&gt;
&lt;br /&gt;
In general, most users should be fine using &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to transfer data to and from SHARCNET systems.  If you need to transfer a lot of files &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; is recommended to ensure that you do not need to restart the transfer from scratch should there be a connection failure.  Although you can use &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to any cluster&amp;#039;s login node(s), it is often best to use gra-dtn1.computecanada.ca - it is dedicated to data transfer. &lt;br /&gt;
&lt;br /&gt;
In general one should expect the following transfer rates with &amp;#039;&amp;#039;scp&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* If you are connecting to SHARCNET through a Research/Education network site (ORION, CANARIE, Internet2) and are on a fast local network (this is the case for most users connecting from academic institutions) then you should be able to attain sustained transfer speeds in excess of 10MB/s.  If your path is all gigabit or better, you should be able to reach rates above 50 MB/s.&lt;br /&gt;
* If you are transferring data over the wider internet, you will not be able to attain these speeds, as all traffic that does not enter/exit SHARCNET via the R&amp;amp;E net is restricted to a limited-bandwidth commercial feed. In this case one will typically see rates on the order of 1MB/s or less.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that filesystems and networks are  shared resources and suffer from contention; if they are busy the above rates may not be attainable&lt;br /&gt;
&lt;br /&gt;
For transferring large amounts of data (many gigabytes) the best approach is to use the online tool [https://docs.computecanada.ca/wiki/Transferring_data#Globus_transfer Globus].&lt;br /&gt;
&lt;br /&gt;
==== How do I access the same file from different subdirectories on the same cluster ? ====&lt;br /&gt;
&lt;br /&gt;
You should not need copy large files on the same cluster (e.g. from one user to another&lt;br /&gt;
or using the same file in different subdirectories).  Instead of using&lt;br /&gt;
scp you might consider issuing a &amp;quot;soft link&amp;quot; command. Assume that you need access&lt;br /&gt;
to the file large_file1 in subdirectory /home/user1/subdir1 and you need it to be in your&lt;br /&gt;
subdirectory /home/my_account/my_dir from where you will invoke it under the name&lt;br /&gt;
my_large_file1.  Then go to that directory and type:&lt;br /&gt;
&lt;br /&gt;
 ln -s /home/user1/subdir1/large_file1    my_large_file1&lt;br /&gt;
&lt;br /&gt;
Another example, assume that in subdirectory /home/my_account/PROJ1 you have several&lt;br /&gt;
subdirectories called CASE1, CASE2, ...  In each subdirectory CASEn you have a slightly&lt;br /&gt;
different code but all of them process the same data file called test_data. Rather than&lt;br /&gt;
copying the test_data file into each CASEn subdirectory, place test_data above i.e.&lt;br /&gt;
in /home/my_account/PROJ1 and then in each CASEn subdirectory issue following &amp;quot;soft link&amp;quot;&lt;br /&gt;
command:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../test_data  test_data&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;soft links&amp;quot; can be removed by using the rm command. For example, to remove the soft link from&lt;br /&gt;
/home/my_account/PROJ1/CASE2 type following command from this subdirectory:&lt;br /&gt;
&lt;br /&gt;
 rm -rf test_data&lt;br /&gt;
&lt;br /&gt;
Typing above command from subdirectory /home/my_account/PROJ1 would remove the actual file and then&lt;br /&gt;
none of the CASEn subdirectories would have access to it.&lt;br /&gt;
&lt;br /&gt;
==== How are files deleted from the /home/userid/scratch filesystems? ====&lt;br /&gt;
&lt;br /&gt;
All files on /home/userid/scratch that are over 2 months old (not old in the common sense, please see below) are automatically deleted. Data needed for long term storage and reference should be kept in either /project, /nearline, or other archival storage areas. The scratch filesystem is checked at the end of the month for files which will be candidates for expiry on the 15th of the following month. On the first day of the month, a login message is posted and a notification e-mail is sent to all users who have at least one file which is a candidate for purging and containing the location of a file which lists all the candidates for purging.  On the 12th of the month, a second scan is run to check for files that will still expire on the 15th, and again, users with candidates for expiry are sent a second warning email.  Lastly, on the 15th, all files which are due for expiry are removed.&lt;br /&gt;
&lt;br /&gt;
An unconventional aspect of this system is that it does not determine the age of a file based on the file&amp;#039;s attributes, e.g., the standard dates reported by the &amp;lt;i&amp;gt;stat&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;find&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;ls&amp;lt;/i&amp;gt;, etc. commands.  (This is known as the &amp;quot;mtime&amp;quot; of the file, for &amp;quot;modification time&amp;quot;, and is frequently inaccurate.) The age of a file is determined based on whether or not its data contents (i.e., the information stored in the file) have changed or been accessed, and this age is stored externally to the file.  Only files where the contents have changed or accessed will have their age counter &amp;quot;reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A list of your candidate files for expiry can be found in /home/scratch_to_delete/$USER  (where $USER is your userid).&lt;br /&gt;
&lt;br /&gt;
===== How do I check the age of a file =====&lt;br /&gt;
We define a file&amp;#039;s age as the most recent of:&lt;br /&gt;
&lt;br /&gt;
 *the access time (atime) and&lt;br /&gt;
 *the change time (ctime)&lt;br /&gt;
&lt;br /&gt;
You can find the ctime of a file using&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lc &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while the atime can be obtained with the command&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lu &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do not use the modify time (mtime) of the file because it can be modified by the user or by other programs to display incorrect information.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, simple use of the atime property would be sufficient, as it is updated by the system in sync with the ctime. However, userspace programs are able to alter atime, potentially to times in the past, which could result in early expiration of a file. The use of ctime as a fallback guards against this undesirable behaviour.&lt;br /&gt;
&lt;br /&gt;
It is also your responsibility to manage your stored data: most of the filesystems are not intended to provide an indefinite archiving service so when a given file or directory is no longer needed, you need to move it to a more appropriate filesystem which may well mean your personal workstation or some other storage system under your control. Moving significant amounts of data between your workstation and an Alliance system or between two Alliance systems should generally be done using Globus.&lt;br /&gt;
&lt;br /&gt;
==== How to archive my data? ====&lt;br /&gt;
&lt;br /&gt;
===== Use tar to archive files and directories =====&lt;br /&gt;
&lt;br /&gt;
The primary archiving utility on all Linux and Unix-like systems is the [https://www.gnu.org/software/tar/manual/tar.html tar] command. It will bundle a bunch of files or directories together and generate a single file, called an &amp;#039;&amp;#039;archive file&amp;#039;&amp;#039; or &amp;#039;&amp;#039;tar-file&amp;#039;&amp;#039;. By convention an archive file has &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; as the file name extension. When you archive a directory with &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, it will, by default, include all the files and sub-directories contained within it, and sub-sub-directories contained in those, and so on. So the command &amp;lt;code&amp;gt;tar --create --file project1.tar project1&amp;lt;/code&amp;gt; will pack all the content of directory &amp;#039;&amp;#039;project1&amp;#039;&amp;#039; into the file &amp;#039;&amp;#039;project1.tar&amp;#039;&amp;#039;. The original directory will remain unchanged, so this may double the amount of disk space occupied!&lt;br /&gt;
&lt;br /&gt;
You can extract files from an archive using the same command with a different option:&amp;lt;code&amp;gt;tar --extract --file project1.tar&amp;lt;/code&amp;gt;. If there is no directory with the original name, it will be created. If a directory of that name exists and contains files of the same names as in the archive file, they will be overwritten. Another option can be added to specify the destination directory where to extract the archive&amp;#039;s content.   &lt;br /&gt;
&lt;br /&gt;
===== Compress and uncompress tar files =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; archiving utility can compress an archive file at the same time it creates it. There are a number of compression methods to choose from. We recommend either &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;, which can be used as follows:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ tar --create --xz --file project1.tar.xz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --xz --file project1.tar.xz&lt;br /&gt;
 [user_name@localhost]$ tar --create --gzip --file project1.tar.gz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --gzip --file project1.tar.gz&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;code&amp;gt;--xz&amp;lt;/code&amp;gt; will produce a smaller compressed file (a &amp;quot;better compression ratio&amp;quot;) but takes longer and uses more RAM while working. &amp;lt;code&amp;gt;--gzip&amp;lt;/code&amp;gt; does not typically compress as small, but may be used if you encounter difficulties due to insufficient memory or excessive run time during &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt;. A third option, &amp;lt;code&amp;gt;--bzip2&amp;lt;/code&amp;gt;, is also available, that typically does not compress as small as &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; but takes longer than &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt; first without compression and then use the commands &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; in a separate step, although there is rarely a reason to do so. Similarly, you can run &amp;lt;code&amp;gt;xz -d&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip -d&amp;lt;/code&amp;gt; to decompress an archive file before running &amp;lt;code&amp;gt;tar --extract&amp;lt;/code&amp;gt;, but again there is rarely a reason to do so.&lt;br /&gt;
&lt;br /&gt;
The commands &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; can be used to compress any file, not just archive files:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ gzip bigfile&lt;br /&gt;
 [user_name@localhost]$ xz bigfile&lt;br /&gt;
&lt;br /&gt;
These commands will produce the files &amp;lt;code&amp;gt;bigfile.gz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigfile.xz&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
=====Archival Storage=====&lt;br /&gt;
&lt;br /&gt;
On Graham, files copied to ~/nearline will be subsequently moved to offline (tape-based) storage. See [https://docs.computecanada.ca/wiki/Using_nearline_storage this link] for more details.&lt;br /&gt;
&lt;br /&gt;
==== How can I check the hidden files in directory? ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;.&amp;quot; at the beginning of the name means that the file is &amp;quot;hidden&amp;quot;. You have to use the -a option with ls to see it. I.e. &amp;lt;code&amp;gt;ls -a &amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
If you want to display only the hidden files then type:&lt;br /&gt;
 ls -d .*&lt;br /&gt;
&lt;br /&gt;
Note: there is an alias which is loaded from /etc/bashrc (see your .bashrc file). The alias is defined by alias &amp;lt;code&amp;gt; l.=&amp;#039;ls -d .* --color=auto&amp;#039; &amp;lt;/code&amp;gt; and if you type:&lt;br /&gt;
 l.&lt;br /&gt;
you will also display only the hidden files.&lt;br /&gt;
&lt;br /&gt;
==== How can I count the number of files in a directory? ====&lt;br /&gt;
&lt;br /&gt;
One can use the following command to count the number of files in a directory (in this example, your /work directory):&lt;br /&gt;
&lt;br /&gt;
 find /home/$USER -type f   | wc -l&lt;br /&gt;
&lt;br /&gt;
It is always a good idea to [[Knowledge_Base#How_to_archive_my_data.3F|archive]] and/or compress files that are no longer needed on the filesystem (see [https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_to_organize_a_large_number_of_files.3F below]).  This helps minimize one&amp;#039;s footprint on the filesystem and as such the impact they have on other users of the shared resource.&lt;br /&gt;
&lt;br /&gt;
==== How to organize a large number of files? ====&lt;br /&gt;
&lt;br /&gt;
With parallel cluster filesystems, you will get best I/O performance writing data to a small number of large files. Since all metadata operations on each of our parallel filesystems are handled by a single file server, depending on how many files are being accessed the server can become overwhelmed leading to poor overall I/O performance for all users. If your workflow involves storing data in a large number of files, it is best to pack these files into a small number of larger archives, e.g. using tar command&lt;br /&gt;
&lt;br /&gt;
 tar cvf archiveFile.tar directoryToArchive&lt;br /&gt;
&lt;br /&gt;
For better performance with many files inside your archive, we recommend to use DAR (Disk ARchive utility), which is a disk analog of tar (Tape ARchive).  Dar can extract files from anywhere in the archive much faster than tar. The dar command is available by default on sharcnet systems. It can be used to pack files into a dar archive by doing something like: &lt;br /&gt;
&lt;br /&gt;
 dar -s 1G -w -c archiveFile -g directoryToArchive&lt;br /&gt;
&lt;br /&gt;
In this example we split the archive into 1GB chunks, and the archive files will be named archiveFile.1.dar, archiveFile.2.dar, and so on. To list the contents of the archive, you can type:&lt;br /&gt;
&lt;br /&gt;
 dar -l archiveFile&lt;br /&gt;
&lt;br /&gt;
To temporarily extract files for post-processing into current directory, you would type:&lt;br /&gt;
&lt;br /&gt;
 dar -R . -O -x archiveFile -v -g pathToYourFile/fileToExtract&lt;br /&gt;
&lt;br /&gt;
=== I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host ===&lt;br /&gt;
&lt;br /&gt;
The most likely cause of this behaviour is repeated failed login attempts.  Part of our security policies involves blocking the IP address of machines that attempt multiple logins with incorrect passwords over a short period of time---many brute-force attacks on systems do exactly this: looking for poor passwords, badly configured accounts, etc.  Unfortunately, it isn&amp;#039;t uncommon for a user to forget their password and make repeated login attempts with incorrect passwords and end up with that machine blacklisted and unable to connect at all.&lt;br /&gt;
&lt;br /&gt;
A temporary solution is simply to attempt to login from another machine.  If you have access to another machine at your site, you can shell to that machine first, and then shell to the SHARCNET system (as that machine&amp;#039;s IP shouldn&amp;#039;t be blacklisted).  In order to have your machine unblocked, you will have to email to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] as a system administrator must manually intervene in order to fix it.&lt;br /&gt;
&lt;br /&gt;
NOTE: there are other situations that can produce this message, however they are rarer and more transient.  If you are unable to log in from one machine, but can from another, it is most likely the IP blacklisting that is the problem and the above will provide a temporary work-around while your problem ticket is processed.&lt;br /&gt;
&lt;br /&gt;
=== I am unable to ssh/scp from SHARCNET to my local computer ===&lt;br /&gt;
&lt;br /&gt;
Most campus networks are behind some sort of firewall.  If you can ssh out to SHARCNET, but cannot establish a connection in the other direction, then you are probably behind a firewall and should speak with your local system administrator or campus IT department to determine if there are any exceptions or workarounds in place.&lt;br /&gt;
&lt;br /&gt;
=== SSH tells me SOMEONE IS DOING SOMETHING NASTY!? ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please first read the following:&lt;br /&gt;
&lt;br /&gt;
https://docs.alliancecan.ca/wiki/SSH_security_improvements&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suppose you attempt to login to SHARCNET, but instead get an alarming message like this:&lt;br /&gt;
&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that the RSA host key has just been changed.&lt;br /&gt;
 The fingerprint for the RSA key sent by the remote host is&lt;br /&gt;
 fe:65:ab:89:9a:23:34:5a:50:1e:05:d6:bf:ec:da:67.&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending key in /home/user/.ssh/known_hosts:42&lt;br /&gt;
 RSA host key for requin has changed and you have requested strict checking.&lt;br /&gt;
 Host key verification failed. &lt;br /&gt;
&lt;br /&gt;
SSH begins a connection by verifying that the host you&amp;#039;re connecting to is authentic. It does this by caching the hosts&amp;#039;s &amp;quot;hostkey&amp;quot; in your  &amp;lt;tt&amp;gt;~/.ssh/known_hosts&amp;lt;/tt&amp;gt; file. At times, a hostkey may be changed legitimately; when this happens, you may see such a message. It&amp;#039;s a good idea to verify this with us, you may be able to check the fingerprint yourself by logging into another sharcnet system and running:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub &lt;br /&gt;
&lt;br /&gt;
If the fingerprint is OK, the normal way to fix the problem is to simply remove the old hostkey from your &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. On machines with commandline SSH, you can do this with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -R thehostname&lt;br /&gt;
&lt;br /&gt;
You can use your choice of editor if you&amp;#039;re comfortable doing so (it&amp;#039;s a plain text file, but has long lines). On a unix-compatible machine, you can also use the following very small script (Substitute the line(s) printed in the warning message illustrated above for &amp;#039;42&amp;#039; here.):&lt;br /&gt;
&lt;br /&gt;
 perl -pi -e &amp;#039;undef $_ if (++$line == 42)&amp;#039; ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
Another solution is brute-force: remove the whole &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. This throws away any authentication checking, and afterwards, your first connection to any machine will prompt you to accept a newly discovered host key.&lt;br /&gt;
&lt;br /&gt;
=== Ssh works, but scp doesn&amp;#039;t! ===&lt;br /&gt;
&lt;br /&gt;
If you can &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; to a cluster successfully, but cannot &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to to it, the problem is likely that your login scripts print unexpected messages which confuse &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; is based on the same &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, but assumes that the connection is &amp;quot;clean&amp;quot;: that is, that it does not produce any un-asked-for content. If you have something like:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; will be confused by the salutation. To avoid this, simply ensure that the message is only printed on an interactive login:&lt;br /&gt;
&lt;br /&gt;
 if [ -t 0 ]; then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
or in csh/tcsh syntax:&lt;br /&gt;
&lt;br /&gt;
 if ( -t 0 ) then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
=== How do I edit my program on a cluster? ===&lt;br /&gt;
&lt;br /&gt;
We provide a variety of editors, such as the traditional text-mode &amp;lt;tt&amp;gt;emacs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; (vim), as well as a simpler one called &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;. If you have X on your desktop (and tunneled through SSH), you can use the GUI versions (&amp;lt;tt&amp;gt;xemacs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If your desktop supports FUSE, it&amp;#039;s very convenient to simply mount your home tree like this:&lt;br /&gt;
 mkdir sharcnet&lt;br /&gt;
 sshfs graham.alliancecan.ca: sharcnet&lt;br /&gt;
you can then use any local editor of your choice.&lt;br /&gt;
&lt;br /&gt;
If you run emacs on your desktop, you can also edit a remote file from within your local emacs client using [http://www.gnu.org/software/tramp Tramp], opening and saving a file as /username@cluster.computecanada.ca:path/file.&lt;br /&gt;
&lt;br /&gt;
== Research at SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== I have a research project I would like to collaborate on with SHARCNET, who should I talk to? ===&lt;br /&gt;
&lt;br /&gt;
You may contact [mailto:barb@sharcnet.ca SHARCNET head office] or contact members of the [https://www.sharcnet.ca/my/contact/directory#techteam SHARCNET technical staff].&lt;br /&gt;
&lt;br /&gt;
=== How can I contribute compute resources to SHARCNET so that other researchers can share it? ===&lt;br /&gt;
&lt;br /&gt;
Most people&amp;#039;s research is &amp;quot;bursty&amp;quot; - there are usually sparse periods of time when some computation is urgently needed, and other periods when there is less demand. One problem with this is that if you purchase the equipment you need to meet your &amp;quot;burst&amp;quot; needs, it&amp;#039;ll probably sit, underutilized, during other times.&lt;br /&gt;
&lt;br /&gt;
An alternative is to donate control of this equipment to SHARCNET, and let us arrange for other users to use it when you are not. We prefer to be involved in the selection and configuration of such equipment. Our promise to contributors is that as much as possible, they should obtain as much benefit from the cluster as if it were not shared. Owners get preferential access. Naturally, owners are also able to burst to higher peak usage, since their equipment has been pooled with other contributions. (Technically, SHARCNET cannot itself own such equipment — it remains owned by the institution in question, and will be returned to the contributor upon request.) If you think this model will also work for you and you would like to contribute your computational resource to help the research community at SHARCNET, you can contact us for such arrangement.&lt;br /&gt;
&lt;br /&gt;
=== I do not know much about computation, nor is it my research interest. But I am interested in getting my research done faster with the help of the high performance computing technology. In other words, I do not care about the process and mechanism, but only the final results. Can SHARCNET provide this type of help? ===&lt;br /&gt;
&lt;br /&gt;
We will be happy to bring the technology of high performance computing to you to accelerate your research, if at all possible. If you would like to discuss your plan with us, please feel free to contact our [https://www.sharcnet.ca/my/contact/directory#techteam high performance computing specialists]. They will be happy to listen to your needs and are ready to provide appropriate suggestions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET participates in the Alliance national RAC (Resource Allocation Competition) and provides a continual competition for groups that require more than the default level of access to our resources.  Please see [[Dedicated Resources]] for further information.&lt;br /&gt;
&lt;br /&gt;
=== I heard SHARCNET offers fellowships, where can I get more information? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET no longer actively runs a fellowship program.  You may find information regarding past fellowships and other dedicated resource opportunities on the [https://www.sharcnet.ca/my/research/fellowships Research Fellowships page] of the web portal.&lt;br /&gt;
&lt;br /&gt;
=== I would like to do some research at SHARCNET as a visiting scholar, how should I apply? ===&lt;br /&gt;
&lt;br /&gt;
In general, you will need to find a hosting department or a person affiliated with one of the SHARCNET institutions. You may also [http://www.sharcnet.ca/my/contact contact us] directly for more specific information.&lt;br /&gt;
&lt;br /&gt;
=== I would like to send my students to SHARCNET to do some work for me. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
See above.&lt;br /&gt;
&lt;br /&gt;
== Contacting SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for research, academic exchanges, and technical issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for business development, education and other issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact a specific staff member at SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
See [https://www.sharcnet.ca/my/contact/directory staff directory] for contact information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Acknowledge SHARCNET in Publications ==&lt;br /&gt;
&lt;br /&gt;
=== How do I acknowledge SHARCNET in my publications? ===&lt;br /&gt;
&lt;br /&gt;
We recommend one cite the following:&lt;br /&gt;
&lt;br /&gt;
 This work was made possible by the facilities of the Shared Hierarchical &lt;br /&gt;
 Academic Research Computing Network (SHARCNET:www.sharcnet.ca) and Digital Research Alliance of Canada (https://alliancecan.ca/en).&lt;br /&gt;
&lt;br /&gt;
=== I&amp;#039;ve seen different spellings of the name, what is the standard spelling of SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
We suggest the spelling SHARCNET, all in upper case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What types of research programs / support are provided to the research community? ==&lt;br /&gt;
&lt;br /&gt;
Our overall intent is to provide support that can both respond to the range of needs that the user community presents and help to increase the sophistication of the community and enable new and larger-in-scope applications making use of SHARCNET&amp;#039;s HPC facilities. The range of support can perhaps best be understood in terms of a pyramid:&lt;br /&gt;
&lt;br /&gt;
=== Level 1 ===&lt;br /&gt;
&lt;br /&gt;
At the apex of the pyramid, SHARCNET supports a small number of projects with dedicated programmer support. The intent is to enable projects that will have a lasting impact and may lead to a &amp;quot;step change&amp;quot; in the way research is done at SHARCNET. Inter-disciplinary and inter-institutional projects are particularly welcomed. For the latest information about the program, including application guidelines, please see the  [https://www.sharcnet.ca/my/research/programming Programming Competition] page in our web portal.&lt;br /&gt;
&lt;br /&gt;
=== Level 2 ===&lt;br /&gt;
&lt;br /&gt;
The middle layers of support are provided through a number of initiatives.&lt;br /&gt;
&lt;br /&gt;
These include:&lt;br /&gt;
* Programming support of more modest duration (several days to one month engagement, usually part time)&lt;br /&gt;
* Training on a variety of topics through [https://helpwiki.sharcnet.ca/wiki/Training workshops, seminars and online training materials]&lt;br /&gt;
* Consultation. This may include user-initiated interactions on particular programs, algorithms, techniques, debugging, optimization etc., as well as unsolicited help to ensure effective use of SHARCNET systems&lt;br /&gt;
* Site Leaders play an important role in working with the community to help researchers connect with SHARCNET staff and to obtain appropriate help and support.&lt;br /&gt;
&lt;br /&gt;
=== Level 3 ===&lt;br /&gt;
&lt;br /&gt;
The base level of the pyramid handles the very large number of small requests that are essential to keeping the user community working effectively with the infrastructure on a day-to-day basis. Several of these can be answered by this FAQ; many of the issues are presented through the [https://www.sharcnet.ca/help/index.php/Knowledge_Base#Compute_Canada_Problem_Ticket_System ticketing system]. The support is largely problem oriented with each problem being time limited.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=951</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=951"/>
		<updated>2024-09-17T17:54:33Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Sharcnet_logo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== About SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== What is SHARCNET? ===&lt;br /&gt;
SHARCNET stands for Shared Hierarchical Academic Research Computing Network. Established in 2000, SHARCNET is the largest high performance computing consortium in Canada, involving 19 universities and colleges across southern, central and northern Ontario.&lt;br /&gt;
&lt;br /&gt;
SHARCNET is a member consortium in the [https://alliancecan.ca/en Digital Research Alliance of Canada (Alliance)]  national HPC platform.&lt;br /&gt;
&lt;br /&gt;
=== Where is SHARCNET? ===&lt;br /&gt;
The [http://www.sharcnet.ca/my/contact main office] of SHARCNET is located in the Western Science Centre at [http://www.uwo.ca/ The University of Western Ontario].&lt;br /&gt;
&lt;br /&gt;
=== What does SHARCNET have? ===&lt;br /&gt;
The primary SHARCNET compute system is [https://docs.computecanada.ca/wiki/Graham Graham heterogeneous cluster] located at the University of Waterloo.  It is named after Wes Graham, the first director of the Computing Centre at Waterloo.  It consists of 41,548 cores and 520 GPU devices, spread across 1,185 nodes of different configurations.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with SHARCNET? ===&lt;br /&gt;
If you have a program that takes months to run on your PC, you could probably run it within a few hours using hundreds of processors on SHARCNET / Alliance, provided your program is inherently parallelisable. If you have hundreds or thousands of test cases to run through on your PC or computers in your lab, then with hundreds of processors running those cases independently will significantly reduce your test cycles.&lt;br /&gt;
&lt;br /&gt;
=== Who is running SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
The daily operation and development of SHARCNET computational facilities is managed by a group of highly qualified system administrators. In addition, we have a team of high performance technical computing consultants, who are responsible for technical support on libraries, programming and application analysis.&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET? ===&lt;br /&gt;
For technical inquiries, you may send E-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] or [mailto:help@sharcnet.ca help@sharcnet.ca], or [https://www.sharcnet.ca/my/contact/directory#techteam contact your local system administrator or HPC specialist]. For general inquiries, you may contact the SHARCNET [http://www.sharcnet.ca/my/contact main office].&lt;br /&gt;
&lt;br /&gt;
== Getting an Account with SHARCNET and Related Issues ==&lt;br /&gt;
&lt;br /&gt;
To use SHARCNET (and any other national facilities in Alliance) one has to [https://www.alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account apply for an Alliance account].&lt;br /&gt;
&lt;br /&gt;
== Getting Help ==&lt;br /&gt;
&lt;br /&gt;
=== I have encountered a problem while using an Alliance /SHARCNET system and need help, who should I talk to? ===&lt;br /&gt;
We encourage you to use the problem ticketing system (described in detail [[FAQ#Alliance_Problem_Ticket_System|below]]) .  This is the most efficient way of reporting a problem.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the [https://www.sharcnet.ca/my/contact/directory directory] page.&lt;br /&gt;
&lt;br /&gt;
=== How long should I expect to wait for support? ===&lt;br /&gt;
Unfortunately Alliance/SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week.  User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .  &lt;br /&gt;
&lt;br /&gt;
Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.  &lt;br /&gt;
&lt;br /&gt;
=== Alliance Problem Ticket System ===&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;problem ticket system&amp;quot;? ====&lt;br /&gt;
&lt;br /&gt;
This is a system that allows anyone with an Alliance account to start a persistent email thread that is referred to as a &amp;quot;problem ticket&amp;quot;.    When a user submits a new ticket it will be brought to the attention of an appropriate and available Alliance/SHARCNET staff member for resolution.  &lt;br /&gt;
&lt;br /&gt;
You interact with the ticket system entirely via email.&lt;br /&gt;
&lt;br /&gt;
==== What do I need to specify in a ticket ? ====&lt;br /&gt;
&lt;br /&gt;
To help us address your question faster, please try to do the following when submitting a ticket:&lt;br /&gt;
&lt;br /&gt;
#specify which of our systems is involved &lt;br /&gt;
#if the problem pertains to a job, then report the &amp;lt;u&amp;gt;jobid&amp;lt;/u&amp;gt; associated with the job; this is an integer that is returned by the scheduler when you submit the job&lt;br /&gt;
#report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem; if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem&lt;br /&gt;
#if you&amp;#039;d like for a particular staff member to be aware of the ticket, mention them&lt;br /&gt;
&lt;br /&gt;
==== How do I submit a ticket? ====&lt;br /&gt;
&lt;br /&gt;
In general, you can submit a new ticket by emailing  [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca]  with the email address associated with your Alliance account.  If you are using another email address, please provide your full name, your Alliance default username (if available) and your university or institution.&lt;br /&gt;
&lt;br /&gt;
If you like, you can also target your inquiry more specifically, by using the following addresses to submit your ticket:&lt;br /&gt;
&lt;br /&gt;
* [mailto:help@sharcnet.ca help@sharcnet.ca] - questions specific to SHARCNET, for example relating to contributed SHARCNET systems&lt;br /&gt;
* [mailto:globus@tech.alliancecan.ca globus@tech.alliancecan.ca] -- Questions about [[Globus]] file transfer services&lt;br /&gt;
* [mailto:cloud@tech.alliancecan.ca cloud@tech.alliancecan.ca] -- Questions about using Alliance cloud resources&lt;br /&gt;
* [mailto:accounts@tech.alliancecan.ca accounts@tech.alliancecan.ca] -- Questions about Alliance accounts&lt;br /&gt;
* [mailto:renewals@tech.alliancecan.ca renewals@tech.alliancecan.ca] -- Questions about Alliance account renewals&lt;br /&gt;
&lt;br /&gt;
=== I am new to parallel programming, can you help me get started with my project? ===&lt;br /&gt;
Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research. If your programming project would involve a significant staff time, you should consider applying for Dedicated Programming support. (We run the competition annually; see https://www.sharcnet.ca/my/research/programming).&lt;br /&gt;
&lt;br /&gt;
=== Can you install a package on a cluster for me? ===&lt;br /&gt;
Certainly.  We suggest you make the request by sending e-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] with the specific request.&lt;br /&gt;
&lt;br /&gt;
=== I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that? ===&lt;br /&gt;
If you tell us what you want, we may be able to help you out.&lt;br /&gt;
&lt;br /&gt;
=== Does SHARCNET provide any training on programming and using the systems? ===&lt;br /&gt;
&lt;br /&gt;
Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every summer (usually late May to early June), SHARCNET holds [https://helpwiki.sharcnet.ca/wiki/Summer_Schools an annual HPC Summer School] with a variety of in-depth, hands-on workshops. &lt;br /&gt;
&lt;br /&gt;
SHARCNET also offers a series of online seminars (so-called &amp;quot;General interest webinars&amp;quot;), typically delivered every second Wednesday at lunch time.  These are announced via the SHARCNET events mailing list and one can see the schedule at the [https://www.sharcnet.ca/my/news/calendar SHARCNET event calendar].  Past seminars are recorded and posted on [http://youtube.sharcnet.ca our youtube channel]. A full listing of the past webinars is available on the [https://helpwiki.sharcnet.ca/wiki/Online_Seminars Online Seminars] page.&lt;br /&gt;
&lt;br /&gt;
=== Attending SHARCNET Webinars ===&lt;br /&gt;
{{:Attending SHARCNET Webinars}}&lt;br /&gt;
&lt;br /&gt;
== Logging in to Systems, Transferring and Editing Files ==&lt;br /&gt;
&lt;br /&gt;
=== How do I login to SHARCNET? ===&lt;br /&gt;
You access the SHARCNET clusters using ssh.  For Graham and other national systems Alliance credentials are required.  For the remaining (&amp;quot;Legacy&amp;quot;) systems, you will require SHARCNET credentials (submit a ticket to help@sharcnet.ca if you have questions).&lt;br /&gt;
&lt;br /&gt;
====Unix/Linux/OS X====&lt;br /&gt;
To login to a system, you need to use an [http://www.openssh.com/ Secure Shell (SSH)] connection. If you are logging in from a UNIX-based machine, make sure it has an SSH client (ssh) installed (this is almost always the case on UNIX/Linux/OS X). If you have the same login name on both your local system and SHARCNET, and you want to login to, say, &amp;lt;tt&amp;gt;graham&amp;lt;/tt&amp;gt;, you may use the command:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If your Alliance username is different from the username on your local systems, then you may use either of the following forms:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca -l username&lt;br /&gt;
 ssh username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If you want to establish an X window connection so that you can use graphics applications such as &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ddt&amp;lt;/tt&amp;gt;, you can add a &amp;lt;tt&amp;gt;-Y&amp;lt;/tt&amp;gt; to the command:&lt;br /&gt;
&lt;br /&gt;
 ssh -Y username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
This will automatically set the X DISPLAY variable when you login.&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
If you are logging from a computer running Windows and need some pointers we recommend consulting our [[SSH]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between Login Nodes and Compute Nodes? ===&lt;br /&gt;
====Login Nodes====&lt;br /&gt;
&lt;br /&gt;
Most of our clusters have distinct &amp;#039;&amp;#039;login nodes&amp;#039;&amp;#039; associated with them that you are automatically redirected to when you login to the cluster (some systems are directly logged into, eg. SMPs and smaller specialty systems).  You can use these to do most of your work preparing for jobs (compiling, editing configuration files) and other low-intensity tasks like moving and copying files.  &lt;br /&gt;
&lt;br /&gt;
You can also use them for other quick tasks, like simple post-processing, but any significant work should be submitted as a job to the compute nodes.  On most login nodes, each process is limited to 1 cpu-hour; this will be noticable if you perform anything compute-intensive, and can affect IO-oriented activity as well (such as very large &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; operations.)&lt;br /&gt;
&lt;br /&gt;
=== How can I suspend and resume my session? ===&lt;br /&gt;
&lt;br /&gt;
The program screen can start persistent terminals from which you can detach and reattach.  The simplest use of screen is&lt;br /&gt;
&lt;br /&gt;
 screen -dR&lt;br /&gt;
&lt;br /&gt;
which will either reattach you to any existing session or create a new one if one doesn&amp;#039;t exist.  To terminate the current screen session, type &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;.  To detach manually (you are automatically detached if the connection is lost) press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;d&amp;#039;&amp;#039;, you can the resume later as above (ideal for running background jobs).  Note that &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; is screen&amp;#039;s escape sequence, so you have to do &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;a&amp;#039;&amp;#039; to get the regular effect of pressing &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; inside a screen session (e.g., moving the cursor to the start of the line in a shell).&lt;br /&gt;
&lt;br /&gt;
For a list of other &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; key sequences, press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;?&amp;#039;&amp;#039;.  For further details and  command line options, see the [http://www.gnu.org/software/screen/manual/screen.html screen manual] (or type &amp;lt;tt&amp;gt;man screen&amp;lt;/tt&amp;gt; on any of the clusters).&lt;br /&gt;
&lt;br /&gt;
Other notes:&lt;br /&gt;
* If you want to create additional &amp;quot;text windows&amp;quot;, use Ctrl-A Ctrl-C. Remember to type &amp;quot;exit&amp;quot; to close it. &lt;br /&gt;
* To switch to a &amp;quot;text window&amp;quot; with a certain number, use Ctrl-A # (where # is 0 to 9).&lt;br /&gt;
* To see a list of window numbers use Ctrl-A w&lt;br /&gt;
* To be presented a list of windows and select one to use, use Ctrl-A &amp;quot; (This is handy if you&amp;#039;ve made too many windows.)&lt;br /&gt;
* If the program running in a screen &amp;quot;text window&amp;quot; refuses to die (i.e., it needs to be killed) you can use Ctrl-A K&lt;br /&gt;
* For brief help on keystrokes use Ctrl-A ?&lt;br /&gt;
* For extensive help, run &amp;quot;man screen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What operating systems are supported? ===&lt;br /&gt;
UNIX in general. Currently, Linux is the only operating system used within SHARCNET.&lt;br /&gt;
&lt;br /&gt;
=== What makes a cluster different than my UNIX workstation? ===&lt;br /&gt;
&lt;br /&gt;
If you are familiar with UNIX, then using a cluster is not much different from using a workstation. When you login to a cluster, you in fact only log in to one of the cluster nodes. In most cases, each cluster node is a physical machine, usually a server class machine, with one or several CPUs, that is more or less the same as a workstation you are familiar with. The difference is that these nodes are interconnected with special interconnect devices and the way you run your program is slightly different. Across SHARCNET clusters, you are not expected to run your program interactively. You will have to run your program through a queueing system. That also means where and when your program gets to run is not decided by you, but by the queueing system.&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Those primary programming languages such as C, C++, Fortran, and Python are supported. Other languages, such as Java, Pascal and Ada, are also supported, but with limited technical support from us. &lt;br /&gt;
&lt;br /&gt;
=== How do I organize my files? ===&lt;br /&gt;
[https://docs.computecanada.ca/wiki/Storage_and_file_management#Storage_types Main file systems on our National systems.]&lt;br /&gt;
&lt;br /&gt;
==== How do I transfer files/directories to/from or between cluster? ====&lt;br /&gt;
&lt;br /&gt;
=====Unix/Linux=====&lt;br /&gt;
To transfer files to and from a cluster on a UNIX machine, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt;. For example, if you want to upload file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; to cluster graham from your machine &amp;lt;tt&amp;gt;myhost&amp;lt;/tt&amp;gt;, use the following command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp foo.f graham.alliancecan.ca:&lt;br /&gt;
&lt;br /&gt;
assuming that your machine has &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; installed. If you want to transfer a file from Windows or Mac, you need have &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt; for Windows or Mac installed.&lt;br /&gt;
&lt;br /&gt;
If you transfer file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; between Alliance clusters, say from your home directory on cedar to your home directory on graham, simply use the following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp foo.f graham:/home/username/&lt;br /&gt;
&lt;br /&gt;
If you are transferring files between a UNIX machine and a cluster, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; command with &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; option. For instance, if you want to download the subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; in the directory &amp;lt;tt&amp;gt;project&amp;lt;/tt&amp;gt; in your home directory on graham to your local UNIX machine, on your local machine, use command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp -rp graham.alliancecan.ca:project/foo .&lt;br /&gt;
&lt;br /&gt;
Similarly, you can transfer the subdirectory between Alliance clusters. The following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp -r graham:/home/username/scratch/foo .&lt;br /&gt;
&lt;br /&gt;
will download subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; from your scratch directory on graham to your home directory on cedar (note that the prompt indicates you are currently logged on to cedar).&lt;br /&gt;
&lt;br /&gt;
The use of &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; option above will preserve the time stamp of each file. For Windows and Mac, you need to check the documentation of &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; for features. &amp;#039;&amp;#039;&amp;#039;Do not use -p switch with scp or cp commands on clusters, when the destination is your project space&amp;#039;&amp;#039;&amp;#039;, or you might run into the infamous [https://docs.computecanada.ca/wiki/Frequently_Asked_Questions#Disk_quota_exceeded_error_on_.2Fproject_filesystems Disk quota exceeded issue].&lt;br /&gt;
&lt;br /&gt;
You may also &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; and compress the entire directory and then use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to save bandwidth. In the above example, first you login to graham, then do the following&lt;br /&gt;
&lt;br /&gt;
 [username@gra-login2:~]$ cd project&lt;br /&gt;
 [username@gra-login2:~]$ tar -cvf foo.tar foo&lt;br /&gt;
 [username@gra-login2:~]$ gzip foo.tar&lt;br /&gt;
&lt;br /&gt;
Then on your local machine myhost, use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to copy the tar file&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp graham.computecanada.ca:project/foo.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Note for most Linux distributions, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; has an option &amp;lt;tt&amp;gt;-z&amp;lt;/tt&amp;gt; that will compress the &amp;lt;tt&amp;gt;.tar&amp;lt;/tt&amp;gt; file using &amp;lt;tt&amp;gt;gzip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Windows=====&lt;br /&gt;
You may read the instructions on using an ssh client. [[https://helpwiki.sharcnet.ca/wiki/SSH#Transfering_files_.28Secure_File_Transfer_Client.29]]&lt;br /&gt;
&lt;br /&gt;
====How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect?====&lt;br /&gt;
&lt;br /&gt;
In general, most users should be fine using &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to transfer data to and from SHARCNET systems.  If you need to transfer a lot of files &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; is recommended to ensure that you do not need to restart the transfer from scratch should there be a connection failure.  Although you can use &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to any cluster&amp;#039;s login node(s), it is often best to use gra-dtn1.computecanada.ca - it is dedicated to data transfer. &lt;br /&gt;
&lt;br /&gt;
In general one should expect the following transfer rates with &amp;#039;&amp;#039;scp&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* If you are connecting to SHARCNET through a Research/Education network site (ORION, CANARIE, Internet2) and are on a fast local network (this is the case for most users connecting from academic institutions) then you should be able to attain sustained transfer speeds in excess of 10MB/s.  If your path is all gigabit or better, you should be able to reach rates above 50 MB/s.&lt;br /&gt;
* If you are transferring data over the wider internet, you will not be able to attain these speeds, as all traffic that does not enter/exit SHARCNET via the R&amp;amp;E net is restricted to a limited-bandwidth commercial feed. In this case one will typically see rates on the order of 1MB/s or less.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that filesystems and networks are  shared resources and suffer from contention; if they are busy the above rates may not be attainable&lt;br /&gt;
&lt;br /&gt;
For transferring large amounts of data (many gigabytes) the best approach is to use the online tool [https://docs.computecanada.ca/wiki/Transferring_data#Globus_transfer Globus].&lt;br /&gt;
&lt;br /&gt;
==== How do I access the same file from different subdirectories on the same cluster ? ====&lt;br /&gt;
&lt;br /&gt;
You should not need copy large files on the same cluster (e.g. from one user to another&lt;br /&gt;
or using the same file in different subdirectories).  Instead of using&lt;br /&gt;
scp you might consider issuing a &amp;quot;soft link&amp;quot; command. Assume that you need access&lt;br /&gt;
to the file large_file1 in subdirectory /home/user1/subdir1 and you need it to be in your&lt;br /&gt;
subdirectory /home/my_account/my_dir from where you will invoke it under the name&lt;br /&gt;
my_large_file1.  Then go to that directory and type:&lt;br /&gt;
&lt;br /&gt;
 ln -s /home/user1/subdir1/large_file1    my_large_file1&lt;br /&gt;
&lt;br /&gt;
Another example, assume that in subdirectory /home/my_account/PROJ1 you have several&lt;br /&gt;
subdirectories called CASE1, CASE2, ...  In each subdirectory CASEn you have a slightly&lt;br /&gt;
different code but all of them process the same data file called test_data. Rather than&lt;br /&gt;
copying the test_data file into each CASEn subdirectory, place test_data above i.e.&lt;br /&gt;
in /home/my_account/PROJ1 and then in each CASEn subdirectory issue following &amp;quot;soft link&amp;quot;&lt;br /&gt;
command:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../test_data  test_data&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;soft links&amp;quot; can be removed by using the rm command. For example, to remove the soft link from&lt;br /&gt;
/home/my_account/PROJ1/CASE2 type following command from this subdirectory:&lt;br /&gt;
&lt;br /&gt;
 rm -rf test_data&lt;br /&gt;
&lt;br /&gt;
Typing above command from subdirectory /home/my_account/PROJ1 would remove the actual file and then&lt;br /&gt;
none of the CASEn subdirectories would have access to it.&lt;br /&gt;
&lt;br /&gt;
==== How are files deleted from the /home/userid/scratch filesystems? ====&lt;br /&gt;
&lt;br /&gt;
All files on /home/userid/scratch that are over 2 months old (not old in the common sense, please see below) are automatically deleted. Data needed for long term storage and reference should be kept in either /project, /nearline, or other archival storage areas. The scratch filesystem is checked at the end of the month for files which will be candidates for expiry on the 15th of the following month. On the first day of the month, a login message is posted and a notification e-mail is sent to all users who have at least one file which is a candidate for purging and containing the location of a file which lists all the candidates for purging.  On the 12th of the month, a second scan is run to check for files that will still expire on the 15th, and again, users with candidates for expiry are sent a second warning email.  Lastly, on the 15th, all files which are due for expiry are removed.&lt;br /&gt;
&lt;br /&gt;
An unconventional aspect of this system is that it does not determine the age of a file based on the file&amp;#039;s attributes, e.g., the standard dates reported by the &amp;lt;i&amp;gt;stat&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;find&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;ls&amp;lt;/i&amp;gt;, etc. commands.  (This is known as the &amp;quot;mtime&amp;quot; of the file, for &amp;quot;modification time&amp;quot;, and is frequently inaccurate.) The age of a file is determined based on whether or not its data contents (i.e., the information stored in the file) have changed or been accessed, and this age is stored externally to the file.  Only files where the contents have changed or accessed will have their age counter &amp;quot;reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A list of your candidate files for expiry can be found in /home/scratch_to_delete/$USER  (where $USER is your userid).&lt;br /&gt;
&lt;br /&gt;
===== How do I check the age of a file =====&lt;br /&gt;
We define a file&amp;#039;s age as the most recent of:&lt;br /&gt;
&lt;br /&gt;
 *the access time (atime) and&lt;br /&gt;
 *the change time (ctime)&lt;br /&gt;
&lt;br /&gt;
You can find the ctime of a file using&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lc &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while the atime can be obtained with the command&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lu &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do not use the modify time (mtime) of the file because it can be modified by the user or by other programs to display incorrect information.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, simple use of the atime property would be sufficient, as it is updated by the system in sync with the ctime. However, userspace programs are able to alter atime, potentially to times in the past, which could result in early expiration of a file. The use of ctime as a fallback guards against this undesirable behaviour.&lt;br /&gt;
&lt;br /&gt;
It is also your responsibility to manage your stored data: most of the filesystems are not intended to provide an indefinite archiving service so when a given file or directory is no longer needed, you need to move it to a more appropriate filesystem which may well mean your personal workstation or some other storage system under your control. Moving significant amounts of data between your workstation and an Alliance system or between two Alliance systems should generally be done using Globus.&lt;br /&gt;
&lt;br /&gt;
==== How to archive my data? ====&lt;br /&gt;
&lt;br /&gt;
===== Use tar to archive files and directories =====&lt;br /&gt;
&lt;br /&gt;
The primary archiving utility on all Linux and Unix-like systems is the [https://www.gnu.org/software/tar/manual/tar.html tar] command. It will bundle a bunch of files or directories together and generate a single file, called an &amp;#039;&amp;#039;archive file&amp;#039;&amp;#039; or &amp;#039;&amp;#039;tar-file&amp;#039;&amp;#039;. By convention an archive file has &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; as the file name extension. When you archive a directory with &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, it will, by default, include all the files and sub-directories contained within it, and sub-sub-directories contained in those, and so on. So the command &amp;lt;code&amp;gt;tar --create --file project1.tar project1&amp;lt;/code&amp;gt; will pack all the content of directory &amp;#039;&amp;#039;project1&amp;#039;&amp;#039; into the file &amp;#039;&amp;#039;project1.tar&amp;#039;&amp;#039;. The original directory will remain unchanged, so this may double the amount of disk space occupied!&lt;br /&gt;
&lt;br /&gt;
You can extract files from an archive using the same command with a different option:&amp;lt;code&amp;gt;tar --extract --file project1.tar&amp;lt;/code&amp;gt;. If there is no directory with the original name, it will be created. If a directory of that name exists and contains files of the same names as in the archive file, they will be overwritten. Another option can be added to specify the destination directory where to extract the archive&amp;#039;s content.   &lt;br /&gt;
&lt;br /&gt;
===== Compress and uncompress tar files =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; archiving utility can compress an archive file at the same time it creates it. There are a number of compression methods to choose from. We recommend either &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;, which can be used as follows:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ tar --create --xz --file project1.tar.xz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --xz --file project1.tar.xz&lt;br /&gt;
 [user_name@localhost]$ tar --create --gzip --file project1.tar.gz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --gzip --file project1.tar.gz&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;code&amp;gt;--xz&amp;lt;/code&amp;gt; will produce a smaller compressed file (a &amp;quot;better compression ratio&amp;quot;) but takes longer and uses more RAM while working. &amp;lt;code&amp;gt;--gzip&amp;lt;/code&amp;gt; does not typically compress as small, but may be used if you encounter difficulties due to insufficient memory or excessive run time during &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt;. A third option, &amp;lt;code&amp;gt;--bzip2&amp;lt;/code&amp;gt;, is also available, that typically does not compress as small as &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; but takes longer than &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt; first without compression and then use the commands &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; in a separate step, although there is rarely a reason to do so. Similarly, you can run &amp;lt;code&amp;gt;xz -d&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip -d&amp;lt;/code&amp;gt; to decompress an archive file before running &amp;lt;code&amp;gt;tar --extract&amp;lt;/code&amp;gt;, but again there is rarely a reason to do so.&lt;br /&gt;
&lt;br /&gt;
The commands &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; can be used to compress any file, not just archive files:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ gzip bigfile&lt;br /&gt;
 [user_name@localhost]$ xz bigfile&lt;br /&gt;
&lt;br /&gt;
These commands will produce the files &amp;lt;code&amp;gt;bigfile.gz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigfile.xz&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
=====Archival Storage=====&lt;br /&gt;
&lt;br /&gt;
On Graham, files copied to ~/nearline will be subsequently moved to offline (tape-based) storage. See [https://docs.computecanada.ca/wiki/Using_nearline_storage this link] for more details.&lt;br /&gt;
&lt;br /&gt;
==== How can I check the hidden files in directory? ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;.&amp;quot; at the beginning of the name means that the file is &amp;quot;hidden&amp;quot;. You have to use the -a option with ls to see it. I.e. &amp;lt;code&amp;gt;ls -a &amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
If you want to display only the hidden files then type:&lt;br /&gt;
 ls -d .*&lt;br /&gt;
&lt;br /&gt;
Note: there is an alias which is loaded from /etc/bashrc (see your .bashrc file). The alias is defined by alias &amp;lt;code&amp;gt; l.=&amp;#039;ls -d .* --color=auto&amp;#039; &amp;lt;/code&amp;gt; and if you type:&lt;br /&gt;
 l.&lt;br /&gt;
you will also display only the hidden files.&lt;br /&gt;
&lt;br /&gt;
==== How can I count the number of files in a directory? ====&lt;br /&gt;
&lt;br /&gt;
One can use the following command to count the number of files in a directory (in this example, your /work directory):&lt;br /&gt;
&lt;br /&gt;
 find /home/$USER -type f   | wc -l&lt;br /&gt;
&lt;br /&gt;
It is always a good idea to [[Knowledge_Base#How_to_archive_my_data.3F|archive]] and/or compress files that are no longer needed on the filesystem (see [https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_to_organize_a_large_number_of_files.3F below]).  This helps minimize one&amp;#039;s footprint on the filesystem and as such the impact they have on other users of the shared resource.&lt;br /&gt;
&lt;br /&gt;
==== How to organize a large number of files? ====&lt;br /&gt;
&lt;br /&gt;
With parallel cluster filesystems, you will get best I/O performance writing data to a small number of large files. Since all metadata operations on each of our parallel filesystems are handled by a single file server, depending on how many files are being accessed the server can become overwhelmed leading to poor overall I/O performance for all users. If your workflow involves storing data in a large number of files, it is best to pack these files into a small number of larger archives, e.g. using tar command&lt;br /&gt;
&lt;br /&gt;
 tar cvf archiveFile.tar directoryToArchive&lt;br /&gt;
&lt;br /&gt;
For better performance with many files inside your archive, we recommend to use DAR (Disk ARchive utility), which is a disk analog of tar (Tape ARchive).  Dar can extract files from anywhere in the archive much faster than tar. The dar command is available by default on sharcnet systems. It can be used to pack files into a dar archive by doing something like: &lt;br /&gt;
&lt;br /&gt;
 dar -s 1G -w -c archiveFile -g directoryToArchive&lt;br /&gt;
&lt;br /&gt;
In this example we split the archive into 1GB chunks, and the archive files will be named archiveFile.1.dar, archiveFile.2.dar, and so on. To list the contents of the archive, you can type:&lt;br /&gt;
&lt;br /&gt;
 dar -l archiveFile&lt;br /&gt;
&lt;br /&gt;
To temporarily extract files for post-processing into current directory, you would type:&lt;br /&gt;
&lt;br /&gt;
 dar -R . -O -x archiveFile -v -g pathToYourFile/fileToExtract&lt;br /&gt;
&lt;br /&gt;
=== I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host ===&lt;br /&gt;
&lt;br /&gt;
The most likely cause of this behaviour is repeated failed login attempts.  Part of our security policies involves blocking the IP address of machines that attempt multiple logins with incorrect passwords over a short period of time---many brute-force attacks on systems do exactly this: looking for poor passwords, badly configured accounts, etc.  Unfortunately, it isn&amp;#039;t uncommon for a user to forget their password and make repeated login attempts with incorrect passwords and end up with that machine blacklisted and unable to connect at all.&lt;br /&gt;
&lt;br /&gt;
A temporary solution is simply to attempt to login from another machine.  If you have access to another machine at your site, you can shell to that machine first, and then shell to the SHARCNET system (as that machine&amp;#039;s IP shouldn&amp;#039;t be blacklisted).  In order to have your machine unblocked, you will have to email to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] as a system administrator must manually intervene in order to fix it.&lt;br /&gt;
&lt;br /&gt;
NOTE: there are other situations that can produce this message, however they are rarer and more transient.  If you are unable to log in from one machine, but can from another, it is most likely the IP blacklisting that is the problem and the above will provide a temporary work-around while your problem ticket is processed.&lt;br /&gt;
&lt;br /&gt;
=== I am unable to ssh/scp from SHARCNET to my local computer ===&lt;br /&gt;
&lt;br /&gt;
Most campus networks are behind some sort of firewall.  If you can ssh out to SHARCNET, but cannot establish a connection in the other direction, then you are probably behind a firewall and should speak with your local system administrator or campus IT department to determine if there are any exceptions or workarounds in place.&lt;br /&gt;
&lt;br /&gt;
=== SSH tells me SOMEONE IS DOING SOMETHING NASTY!? ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please first read the following:&lt;br /&gt;
&lt;br /&gt;
https://docs.alliancecan.ca/wiki/SSH_security_improvements&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suppose you attempt to login to SHARCNET, but instead get an alarming message like this:&lt;br /&gt;
&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that the RSA host key has just been changed.&lt;br /&gt;
 The fingerprint for the RSA key sent by the remote host is&lt;br /&gt;
 fe:65:ab:89:9a:23:34:5a:50:1e:05:d6:bf:ec:da:67.&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending key in /home/user/.ssh/known_hosts:42&lt;br /&gt;
 RSA host key for requin has changed and you have requested strict checking.&lt;br /&gt;
 Host key verification failed. &lt;br /&gt;
&lt;br /&gt;
SSH begins a connection by verifying that the host you&amp;#039;re connecting to is authentic. It does this by caching the hosts&amp;#039;s &amp;quot;hostkey&amp;quot; in your  &amp;lt;tt&amp;gt;~/.ssh/known_hosts&amp;lt;/tt&amp;gt; file. At times, a hostkey may be changed legitimately; when this happens, you may see such a message. It&amp;#039;s a good idea to verify this with us, you may be able to check the fingerprint yourself by logging into another sharcnet system and running:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub &lt;br /&gt;
&lt;br /&gt;
If the fingerprint is OK, the normal way to fix the problem is to simply remove the old hostkey from your &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. On machines with commandline SSH, you can do this with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -R thehostname&lt;br /&gt;
&lt;br /&gt;
You can use your choice of editor if you&amp;#039;re comfortable doing so (it&amp;#039;s a plain text file, but has long lines). On a unix-compatible machine, you can also use the following very small script (Substitute the line(s) printed in the warning message illustrated above for &amp;#039;42&amp;#039; here.):&lt;br /&gt;
&lt;br /&gt;
 perl -pi -e &amp;#039;undef $_ if (++$line == 42)&amp;#039; ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
Another solution is brute-force: remove the whole &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. This throws away any authentication checking, and afterwards, your first connection to any machine will prompt you to accept a newly discovered host key.&lt;br /&gt;
&lt;br /&gt;
=== Ssh works, but scp doesn&amp;#039;t! ===&lt;br /&gt;
&lt;br /&gt;
If you can &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; to a cluster successfully, but cannot &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to to it, the problem is likely that your login scripts print unexpected messages which confuse &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; is based on the same &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, but assumes that the connection is &amp;quot;clean&amp;quot;: that is, that it does not produce any un-asked-for content. If you have something like:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; will be confused by the salutation. To avoid this, simply ensure that the message is only printed on an interactive login:&lt;br /&gt;
&lt;br /&gt;
 if [ -t 0 ]; then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
or in csh/tcsh syntax:&lt;br /&gt;
&lt;br /&gt;
 if ( -t 0 ) then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
=== How do I edit my program on a cluster? ===&lt;br /&gt;
&lt;br /&gt;
We provide a variety of editors, such as the traditional text-mode &amp;lt;tt&amp;gt;emacs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; (vim), as well as a simpler one called &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;. If you have X on your desktop (and tunneled through SSH), you can use the GUI versions (&amp;lt;tt&amp;gt;xemacs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If your desktop supports FUSE, it&amp;#039;s very convenient to simply mount your home tree like this:&lt;br /&gt;
 mkdir sharcnet&lt;br /&gt;
 sshfs graham.alliancecan.ca: sharcnet&lt;br /&gt;
you can then use any local editor of your choice.&lt;br /&gt;
&lt;br /&gt;
If you run emacs on your desktop, you can also edit a remote file from within your local emacs client using [http://www.gnu.org/software/tramp Tramp], opening and saving a file as /username@cluster.computecanada.ca:path/file.&lt;br /&gt;
&lt;br /&gt;
== Research at SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== I have a research project I would like to collaborate on with SHARCNET, who should I talk to? ===&lt;br /&gt;
&lt;br /&gt;
You may contact [mailto:barb@sharcnet.ca SHARCNET head office] or contact members of the [https://www.sharcnet.ca/my/contact/directory#techteam SHARCNET technical staff].&lt;br /&gt;
&lt;br /&gt;
=== How can I contribute compute resources to SHARCNET so that other researchers can share it? ===&lt;br /&gt;
&lt;br /&gt;
Most people&amp;#039;s research is &amp;quot;bursty&amp;quot; - there are usually sparse periods of time when some computation is urgently needed, and other periods when there is less demand. One problem with this is that if you purchase the equipment you need to meet your &amp;quot;burst&amp;quot; needs, it&amp;#039;ll probably sit, underutilized, during other times.&lt;br /&gt;
&lt;br /&gt;
An alternative is to donate control of this equipment to SHARCNET, and let us arrange for other users to use it when you are not. We prefer to be involved in the selection and configuration of such equipment. Our promise to contributors is that as much as possible, they should obtain as much benefit from the cluster as if it were not shared. Owners get preferential access. Naturally, owners are also able to burst to higher peak usage, since their equipment has been pooled with other contributions. (Technically, SHARCNET cannot itself own such equipment — it remains owned by the institution in question, and will be returned to the contributor upon request.) If you think this model will also work for you and you would like to contribute your computational resource to help the research community at SHARCNET, you can contact us for such arrangement.&lt;br /&gt;
&lt;br /&gt;
=== I do not know much about computation, nor is it my research interest. But I am interested in getting my research done faster with the help of the high performance computing technology. In other words, I do not care about the process and mechanism, but only the final results. Can SHARCNET provide this type of help? ===&lt;br /&gt;
&lt;br /&gt;
We will be happy to bring the technology of high performance computing to you to accelerate your research, if at all possible. If you would like to discuss your plan with us, please feel free to contact our [https://www.sharcnet.ca/my/contact/directory#techteam high performance computing specialists]. They will be happy to listen to your needs and are ready to provide appropriate suggestions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET participates in the Alliance national RAC (Resource Allocation Competition) and provides a continual competition for groups that require more than the default level of access to our resources.  Please see [[Dedicated Resources]] for further information.&lt;br /&gt;
&lt;br /&gt;
=== I heard SHARCNET offers fellowships, where can I get more information? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET no longer actively runs a fellowship program.  You may find information regarding past fellowships and other dedicated resource opportunities on the [https://www.sharcnet.ca/my/research/fellowships Research Fellowships page] of the web portal.&lt;br /&gt;
&lt;br /&gt;
=== I would like to do some research at SHARCNET as a visiting scholar, how should I apply? ===&lt;br /&gt;
&lt;br /&gt;
In general, you will need to find a hosting department or a person affiliated with one of the SHARCNET institutions. You may also [http://www.sharcnet.ca/my/contact contact us] directly for more specific information.&lt;br /&gt;
&lt;br /&gt;
=== I would like to send my students to SHARCNET to do some work for me. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
See above.&lt;br /&gt;
&lt;br /&gt;
== Contacting SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for research, academic exchanges, and technical issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for business development, education and other issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact a specific staff member at SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
See [https://www.sharcnet.ca/my/contact/directory staff directory] for contact information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Acknowledge SHARCNET in Publications ==&lt;br /&gt;
&lt;br /&gt;
=== How do I acknowledge SHARCNET in my publications? ===&lt;br /&gt;
&lt;br /&gt;
We recommend one cite the following:&lt;br /&gt;
&lt;br /&gt;
 This work was made possible by the facilities of the Shared Hierarchical &lt;br /&gt;
 Academic Research Computing Network (SHARCNET:www.sharcnet.ca) and Digital Research Alliance of Canada (https://alliancecan.ca/en).&lt;br /&gt;
&lt;br /&gt;
=== I&amp;#039;ve seen different spellings of the name, what is the standard spelling of SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
We suggest the spelling SHARCNET, all in upper case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What types of research programs / support are provided to the research community? ==&lt;br /&gt;
&lt;br /&gt;
Our overall intent is to provide support that can both respond to the range of needs that the user community presents and help to increase the sophistication of the community and enable new and larger-in-scope applications making use of SHARCNET&amp;#039;s HPC facilities. The range of support can perhaps best be understood in terms of a pyramid:&lt;br /&gt;
&lt;br /&gt;
=== Level 1 ===&lt;br /&gt;
&lt;br /&gt;
At the apex of the pyramid, SHARCNET supports a small number of projects with dedicated programmer support. The intent is to enable projects that will have a lasting impact and may lead to a &amp;quot;step change&amp;quot; in the way research is done at SHARCNET. Inter-disciplinary and inter-institutional projects are particularly welcomed. For the latest information about the program, including application guidelines, please see the  [https://www.sharcnet.ca/my/research/programming Programming Competition] page in our web portal.&lt;br /&gt;
&lt;br /&gt;
=== Level 2 ===&lt;br /&gt;
&lt;br /&gt;
The middle layers of support are provided through a number of initiatives.&lt;br /&gt;
&lt;br /&gt;
These include:&lt;br /&gt;
* Programming support of more modest duration (several days to one month engagement, usually part time)&lt;br /&gt;
* Training on a variety of topics through [https://helpwiki.sharcnet.ca/wiki/Training workshops, seminars and online training materials]&lt;br /&gt;
* Consultation. This may include user-initiated interactions on particular programs, algorithms, techniques, debugging, optimization etc., as well as unsolicited help to ensure effective use of SHARCNET systems&lt;br /&gt;
* Site Leaders play an important role in working with the community to help researchers connect with SHARCNET staff and to obtain appropriate help and support.&lt;br /&gt;
&lt;br /&gt;
=== Level 3 ===&lt;br /&gt;
&lt;br /&gt;
The base level of the pyramid handles the very large number of small requests that are essential to keeping the user community working effectively with the infrastructure on a day-to-day basis. Several of these can be answered by this FAQ; many of the issues are presented through the [https://www.sharcnet.ca/help/index.php/Knowledge_Base#Compute_Canada_Problem_Ticket_System ticketing system]. The support is largely problem oriented with each problem being time limited.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=950</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=950"/>
		<updated>2024-09-17T17:52:18Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* Unix/Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Sharcnet_logo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== About SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== What is SHARCNET? ===&lt;br /&gt;
SHARCNET stands for Shared Hierarchical Academic Research Computing Network. Established in 2000, SHARCNET is the largest high performance computing consortium in Canada, involving 19 universities and colleges across southern, central and northern Ontario.&lt;br /&gt;
&lt;br /&gt;
SHARCNET is a member consortium in the [https://alliancecan.ca/en Digital Research Alliance of Canada (Alliance)]  national HPC platform.&lt;br /&gt;
&lt;br /&gt;
=== Where is SHARCNET? ===&lt;br /&gt;
The [http://www.sharcnet.ca/my/contact main office] of SHARCNET is located in the Western Science Centre at [http://www.uwo.ca/ The University of Western Ontario].&lt;br /&gt;
&lt;br /&gt;
=== What does SHARCNET have? ===&lt;br /&gt;
The primary SHARCNET compute system is [https://docs.computecanada.ca/wiki/Graham Graham heterogeneous cluster] located at the University of Waterloo.  It is named after Wes Graham, the first director of the Computing Centre at Waterloo.  It consists of 41,548 cores and 520 GPU devices, spread across 1,185 nodes of different configurations.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with SHARCNET? ===&lt;br /&gt;
If you have a program that takes months to run on your PC, you could probably run it within a few hours using hundreds of processors on SHARCNET / Alliance, provided your program is inherently parallelisable. If you have hundreds or thousands of test cases to run through on your PC or computers in your lab, then with hundreds of processors running those cases independently will significantly reduce your test cycles.&lt;br /&gt;
&lt;br /&gt;
=== Who is running SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
The daily operation and development of SHARCNET computational facilities is managed by a group of highly qualified system administrators. In addition, we have a team of high performance technical computing consultants, who are responsible for technical support on libraries, programming and application analysis.&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET? ===&lt;br /&gt;
For technical inquiries, you may send E-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] or [mailto:help@sharcnet.ca help@sharcnet.ca], or [https://www.sharcnet.ca/my/contact/directory#techteam contact your local system administrator or HPC specialist]. For general inquiries, you may contact the SHARCNET [http://www.sharcnet.ca/my/contact main office].&lt;br /&gt;
&lt;br /&gt;
== Getting an Account with SHARCNET and Related Issues ==&lt;br /&gt;
&lt;br /&gt;
To use SHARCNET (and any other national facilities in Alliance) one has to [https://www.alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account apply for an Alliance account].&lt;br /&gt;
&lt;br /&gt;
== Getting Help ==&lt;br /&gt;
&lt;br /&gt;
=== I have encountered a problem while using an Alliance /SHARCNET system and need help, who should I talk to? ===&lt;br /&gt;
We encourage you to use the problem ticketing system (described in detail [[FAQ#Alliance_Problem_Ticket_System|below]]) .  This is the most efficient way of reporting a problem.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the [https://www.sharcnet.ca/my/contact/directory directory] page.&lt;br /&gt;
&lt;br /&gt;
=== How long should I expect to wait for support? ===&lt;br /&gt;
Unfortunately Alliance/SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week.  User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .  &lt;br /&gt;
&lt;br /&gt;
Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.  &lt;br /&gt;
&lt;br /&gt;
=== Alliance Problem Ticket System ===&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;problem ticket system&amp;quot;? ====&lt;br /&gt;
&lt;br /&gt;
This is a system that allows anyone with an Alliance account to start a persistent email thread that is referred to as a &amp;quot;problem ticket&amp;quot;.    When a user submits a new ticket it will be brought to the attention of an appropriate and available Alliance/SHARCNET staff member for resolution.  &lt;br /&gt;
&lt;br /&gt;
You interact with the ticket system entirely via email.&lt;br /&gt;
&lt;br /&gt;
==== What do I need to specify in a ticket ? ====&lt;br /&gt;
&lt;br /&gt;
To help us address your question faster, please try to do the following when submitting a ticket:&lt;br /&gt;
&lt;br /&gt;
#specify which of our systems is involved &lt;br /&gt;
#if the problem pertains to a job, then report the &amp;lt;u&amp;gt;jobid&amp;lt;/u&amp;gt; associated with the job; this is an integer that is returned by the scheduler when you submit the job&lt;br /&gt;
#report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem; if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem&lt;br /&gt;
#if you&amp;#039;d like for a particular staff member to be aware of the ticket, mention them&lt;br /&gt;
&lt;br /&gt;
==== How do I submit a ticket? ====&lt;br /&gt;
&lt;br /&gt;
In general, you can submit a new ticket by emailing  [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca]  with the email address associated with your Alliance account.  If you are using another email address, please provide your full name, your Alliance default username (if available) and your university or institution.&lt;br /&gt;
&lt;br /&gt;
If you like, you can also target your inquiry more specifically, by using the following addresses to submit your ticket:&lt;br /&gt;
&lt;br /&gt;
* [mailto:help@sharcnet.ca help@sharcnet.ca] - questions specific to SHARCNET, for example relating to contributed SHARCNET systems&lt;br /&gt;
* [mailto:globus@tech.alliancecan.ca globus@tech.alliancecan.ca] -- Questions about [[Globus]] file transfer services&lt;br /&gt;
* [mailto:cloud@tech.alliancecan.ca cloud@tech.alliancecan.ca] -- Questions about using Alliance cloud resources&lt;br /&gt;
* [mailto:accounts@tech.alliancecan.ca accounts@tech.alliancecan.ca] -- Questions about Alliance accounts&lt;br /&gt;
* [mailto:renewals@tech.alliancecan.ca renewals@tech.alliancecan.ca] -- Questions about Alliance account renewals&lt;br /&gt;
&lt;br /&gt;
=== I am new to parallel programming, can you help me get started with my project? ===&lt;br /&gt;
Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research. If your programming project would involve a significant staff time, you should consider applying for Dedicated Programming support. (We run the competition annually; see https://www.sharcnet.ca/my/research/programming).&lt;br /&gt;
&lt;br /&gt;
=== Can you install a package on a cluster for me? ===&lt;br /&gt;
Certainly.  We suggest you make the request by sending e-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] with the specific request.&lt;br /&gt;
&lt;br /&gt;
=== I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that? ===&lt;br /&gt;
If you tell us what you want, we may be able to help you out.&lt;br /&gt;
&lt;br /&gt;
=== Does SHARCNET provide any training on programming and using the systems? ===&lt;br /&gt;
&lt;br /&gt;
Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every summer (usually late May to early June), SHARCNET holds [https://helpwiki.sharcnet.ca/wiki/Summer_Schools an annual HPC Summer School] with a variety of in-depth, hands-on workshops. &lt;br /&gt;
&lt;br /&gt;
SHARCNET also offers a series of online seminars (so-called &amp;quot;General interest webinars&amp;quot;), typically delivered every second Wednesday at lunch time.  These are announced via the SHARCNET events mailing list and one can see the schedule at the [https://www.sharcnet.ca/my/news/calendar SHARCNET event calendar].  Past seminars are recorded and posted on [http://youtube.sharcnet.ca our youtube channel]. A full listing of the past webinars is available on the [https://helpwiki.sharcnet.ca/wiki/Online_Seminars Online Seminars] page.&lt;br /&gt;
&lt;br /&gt;
=== Attending SHARCNET Webinars ===&lt;br /&gt;
{{:Attending SHARCNET Webinars}}&lt;br /&gt;
&lt;br /&gt;
== Logging in to Systems, Transferring and Editing Files ==&lt;br /&gt;
&lt;br /&gt;
=== How do I login to SHARCNET? ===&lt;br /&gt;
You access the SHARCNET clusters using ssh.  For Graham and other national systems Alliance credentials are required.  For the remaining (&amp;quot;Legacy&amp;quot;) systems, you will require SHARCNET credentials (submit a ticket to help@sharcnet.ca if you have questions).&lt;br /&gt;
&lt;br /&gt;
====Unix/Linux/OS X====&lt;br /&gt;
To login to a system, you need to use an [http://www.openssh.com/ Secure Shell (SSH)] connection. If you are logging in from a UNIX-based machine, make sure it has an SSH client (ssh) installed (this is almost always the case on UNIX/Linux/OS X). If you have the same login name on both your local system and SHARCNET, and you want to login to, say, &amp;lt;tt&amp;gt;graham&amp;lt;/tt&amp;gt;, you may use the command:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If your Alliance username is different from the username on your local systems, then you may use either of the following forms:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca -l username&lt;br /&gt;
 ssh username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If you want to establish an X window connection so that you can use graphics applications such as &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ddt&amp;lt;/tt&amp;gt;, you can add a &amp;lt;tt&amp;gt;-Y&amp;lt;/tt&amp;gt; to the command:&lt;br /&gt;
&lt;br /&gt;
 ssh -Y username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
This will automatically set the X DISPLAY variable when you login.&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
If you are logging from a computer running Windows and need some pointers we recommend consulting our [[SSH]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between Login Nodes and Compute Nodes? ===&lt;br /&gt;
====Login Nodes====&lt;br /&gt;
&lt;br /&gt;
Most of our clusters have distinct &amp;#039;&amp;#039;login nodes&amp;#039;&amp;#039; associated with them that you are automatically redirected to when you login to the cluster (some systems are directly logged into, eg. SMPs and smaller specialty systems).  You can use these to do most of your work preparing for jobs (compiling, editing configuration files) and other low-intensity tasks like moving and copying files.  &lt;br /&gt;
&lt;br /&gt;
You can also use them for other quick tasks, like simple post-processing, but any significant work should be submitted as a job to the compute nodes.  On most login nodes, each process is limited to 1 cpu-hour; this will be noticable if you perform anything compute-intensive, and can affect IO-oriented activity as well (such as very large &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; operations.)&lt;br /&gt;
&lt;br /&gt;
=== How can I suspend and resume my session? ===&lt;br /&gt;
&lt;br /&gt;
The program screen can start persistent terminals from which you can detach and reattach.  The simplest use of screen is&lt;br /&gt;
&lt;br /&gt;
 screen -dR&lt;br /&gt;
&lt;br /&gt;
which will either reattach you to any existing session or create a new one if one doesn&amp;#039;t exist.  To terminate the current screen session, type &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;.  To detach manually (you are automatically detached if the connection is lost) press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;d&amp;#039;&amp;#039;, you can the resume later as above (ideal for running background jobs).  Note that &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; is screen&amp;#039;s escape sequence, so you have to do &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;a&amp;#039;&amp;#039; to get the regular effect of pressing &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; inside a screen session (e.g., moving the cursor to the start of the line in a shell).&lt;br /&gt;
&lt;br /&gt;
For a list of other &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; key sequences, press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;?&amp;#039;&amp;#039;.  For further details and  command line options, see the [http://www.gnu.org/software/screen/manual/screen.html screen manual] (or type &amp;lt;tt&amp;gt;man screen&amp;lt;/tt&amp;gt; on any of the clusters).&lt;br /&gt;
&lt;br /&gt;
Other notes:&lt;br /&gt;
* If you want to create additional &amp;quot;text windows&amp;quot;, use Ctrl-A Ctrl-C. Remember to type &amp;quot;exit&amp;quot; to close it. &lt;br /&gt;
* To switch to a &amp;quot;text window&amp;quot; with a certain number, use Ctrl-A # (where # is 0 to 9).&lt;br /&gt;
* To see a list of window numbers use Ctrl-A w&lt;br /&gt;
* To be presented a list of windows and select one to use, use Ctrl-A &amp;quot; (This is handy if you&amp;#039;ve made too many windows.)&lt;br /&gt;
* If the program running in a screen &amp;quot;text window&amp;quot; refuses to die (i.e., it needs to be killed) you can use Ctrl-A K&lt;br /&gt;
* For brief help on keystrokes use Ctrl-A ?&lt;br /&gt;
* For extensive help, run &amp;quot;man screen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What operating systems are supported? ===&lt;br /&gt;
UNIX in general. Currently, Linux is the only operating system used within SHARCNET.&lt;br /&gt;
&lt;br /&gt;
=== What makes a cluster different than my UNIX workstation? ===&lt;br /&gt;
&lt;br /&gt;
If you are familiar with UNIX, then using a cluster is not much different from using a workstation. When you login to a cluster, you in fact only log in to one of the cluster nodes. In most cases, each cluster node is a physical machine, usually a server class machine, with one or several CPUs, that is more or less the same as a workstation you are familiar with. The difference is that these nodes are interconnected with special interconnect devices and the way you run your program is slightly different. Across SHARCNET clusters, you are not expected to run your program interactively. You will have to run your program through a queueing system. That also means where and when your program gets to run is not decided by you, but by the queueing system.&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Those primary programming languages such as C, C++, Fortran, and Python are supported. Other languages, such as Java, Pascal and Ada, are also supported, but with limited technical support from us. &lt;br /&gt;
&lt;br /&gt;
=== How do I organize my files? ===&lt;br /&gt;
[https://docs.computecanada.ca/wiki/Storage_and_file_management#Storage_types Main file systems on our National systems.]&lt;br /&gt;
&lt;br /&gt;
==== How do I transfer files/directories to/from or between cluster? ====&lt;br /&gt;
&lt;br /&gt;
=====Unix/Linux=====&lt;br /&gt;
To transfer files to and from a cluster on a UNIX machine, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt;. For example, if you want to upload file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; to cluster graham from your machine &amp;lt;tt&amp;gt;myhost&amp;lt;/tt&amp;gt;, use the following command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp foo.f graham.alliancecan.ca:&lt;br /&gt;
&lt;br /&gt;
assuming that your machine has &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; installed. If you want to transfer a file from Windows or Mac, you need have &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt; for Windows or Mac installed.&lt;br /&gt;
&lt;br /&gt;
If you transfer file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; between Alliance clusters, say from your home directory on cedar to your home directory on graham, simply use the following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp foo.f graham:/home/username/&lt;br /&gt;
&lt;br /&gt;
If you are transferring files between a UNIX machine and a cluster, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; command with &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; option. For instance, if you want to download the subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; in the directory &amp;lt;tt&amp;gt;project&amp;lt;/tt&amp;gt; in your home directory on graham to your local UNIX machine, on your local machine, use command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp -rp graham.alliancecan.ca:project/foo .&lt;br /&gt;
&lt;br /&gt;
Similarly, you can transfer the subdirectory between Alliance clusters. The following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp -r graham:/home/username/scratch/foo .&lt;br /&gt;
&lt;br /&gt;
will download subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; from your scratch directory on graham to your home directory on cedar (note that the prompt indicates you are currently logged on to cedar).&lt;br /&gt;
&lt;br /&gt;
The use of &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; option above will preserve the time stamp of each file. For Windows and Mac, you need to check the documentation of &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; for features. &amp;#039;&amp;#039;&amp;#039;Do not use -p switch with scp or cp commands on clusters, when the destination is your project space&amp;#039;&amp;#039;&amp;#039;, or you might run into the infamous [https://docs.computecanada.ca/wiki/Frequently_Asked_Questions#Disk_quota_exceeded_error_on_.2Fproject_filesystems Disk quota exceeded issue].&lt;br /&gt;
&lt;br /&gt;
You may also &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; and compress the entire directory and then use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to save bandwidth. In the above example, first you login to graham, then do the following&lt;br /&gt;
&lt;br /&gt;
 [username@gra-login2:~]$ cd project&lt;br /&gt;
 [username@gra-login2:~]$ tar -cvf foo.tar foo&lt;br /&gt;
 [username@gra-login2:~]$ gzip foo.tar&lt;br /&gt;
&lt;br /&gt;
Then on your local machine myhost, use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to copy the tar file&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp graham.computecanada.ca:project/foo.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Note for most Linux distributions, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; has an option &amp;lt;tt&amp;gt;-z&amp;lt;/tt&amp;gt; that will compress the &amp;lt;tt&amp;gt;.tar&amp;lt;/tt&amp;gt; file using &amp;lt;tt&amp;gt;gzip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Windows=====&lt;br /&gt;
You may read the instructions on using an ssh client. [[https://helpwiki.sharcnet.ca/wiki/SSH#Transfering_files_.28Secure_File_Transfer_Client.29]]&lt;br /&gt;
&lt;br /&gt;
====How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect?====&lt;br /&gt;
&lt;br /&gt;
In general, most users should be fine using &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to transfer data to and from SHARCNET systems.  If you need to transfer a lot of files &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; is recommended to ensure that you do not need to restart the transfer from scratch should there be a connection failure.  Although you can use &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to any cluster&amp;#039;s login node(s), it is often best to use gra-dtn1.computecanada.ca - it is dedicated to data transfer. &lt;br /&gt;
&lt;br /&gt;
In general one should expect the following transfer rates with &amp;#039;&amp;#039;scp&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* If you are connecting to SHARCNET through a Research/Education network site (ORION, CANARIE, Internet2) and are on a fast local network (this is the case for most users connecting from academic institutions) then you should be able to attain sustained transfer speeds in excess of 10MB/s.  If your path is all gigabit or better, you should be able to reach rates above 50 MB/s.&lt;br /&gt;
* If you are transferring data over the wider internet, you will not be able to attain these speeds, as all traffic that does not enter/exit SHARCNET via the R&amp;amp;E net is restricted to a limited-bandwidth commercial feed. In this case one will typically see rates on the order of 1MB/s or less.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that filesystems and networks are  shared resources and suffer from contention; if they are busy the above rates may not be attainable&lt;br /&gt;
&lt;br /&gt;
For transferring large amounts of data (many gigabytes) the best approach is to use the online tool [https://docs.computecanada.ca/wiki/Transferring_data#Globus_transfer Globus].&lt;br /&gt;
&lt;br /&gt;
==== How do I access the same file from different subdirectories on the same cluster ? ====&lt;br /&gt;
&lt;br /&gt;
You should not need copy large files on the same cluster (e.g. from one user to another&lt;br /&gt;
or using the same file in different subdirectories).  Instead of using&lt;br /&gt;
scp you might consider issuing a &amp;quot;soft link&amp;quot; command. Assume that you need access&lt;br /&gt;
to the file large_file1 in subdirectory /home/user1/subdir1 and you need it to be in your&lt;br /&gt;
subdirectory /home/my_account/my_dir from where you will invoke it under the name&lt;br /&gt;
my_large_file1.  Then go to that directory and type:&lt;br /&gt;
&lt;br /&gt;
 ln -s /home/user1/subdir1/large_file1    my_large_file1&lt;br /&gt;
&lt;br /&gt;
Another example, assume that in subdirectory /home/my_account/PROJ1 you have several&lt;br /&gt;
subdirectories called CASE1, CASE2, ...  In each subdirectory CASEn you have a slightly&lt;br /&gt;
different code but all of them process the same data file called test_data. Rather than&lt;br /&gt;
copying the test_data file into each CASEn subdirectory, place test_data above i.e.&lt;br /&gt;
in /home/my_account/PROJ1 and then in each CASEn subdirectory issue following &amp;quot;soft link&amp;quot;&lt;br /&gt;
command:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../test_data  test_data&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;soft links&amp;quot; can be removed by using the rm command. For example, to remove the soft link from&lt;br /&gt;
/home/my_account/PROJ1/CASE2 type following command from this subdirectory:&lt;br /&gt;
&lt;br /&gt;
 rm -rf test_data&lt;br /&gt;
&lt;br /&gt;
Typing above command from subdirectory /home/my_account/PROJ1 would remove the actual file and then&lt;br /&gt;
none of the CASEn subdirectories would have access to it.&lt;br /&gt;
&lt;br /&gt;
==== How are files deleted from the /home/userid/scratch filesystems? ====&lt;br /&gt;
&lt;br /&gt;
All files on /home/userid/scratch that are over 2 months old (not old in the common sense, please see below) are automatically deleted. Data needed for long term storage and reference should be kept in either /project, /nearline, or other archival storage areas. The scratch filesystem is checked at the end of the month for files which will be candidates for expiry on the 15th of the following month. On the first day of the month, a login message is posted and a notification e-mail is sent to all users who have at least one file which is a candidate for purging and containing the location of a file which lists all the candidates for purging.  On the 12th of the month, a second scan is run to check for files that will still expire on the 15th, and again, users with candidates for expiry are sent a second warning email.  Lastly, on the 15th, all files which are due for expiry are removed.&lt;br /&gt;
&lt;br /&gt;
An unconventional aspect of this system is that it does not determine the age of a file based on the file&amp;#039;s attributes, e.g., the standard dates reported by the &amp;lt;i&amp;gt;stat&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;find&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;ls&amp;lt;/i&amp;gt;, etc. commands.  (This is known as the &amp;quot;mtime&amp;quot; of the file, for &amp;quot;modification time&amp;quot;, and is frequently inaccurate.) The age of a file is determined based on whether or not its data contents (i.e., the information stored in the file) have changed or been accessed, and this age is stored externally to the file.  Only files where the contents have changed or accessed will have their age counter &amp;quot;reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A list of your candidate files for expiry can be found in /home/scratch_to_delete/$USER  (where $USER is your userid).&lt;br /&gt;
&lt;br /&gt;
===== How do I check the age of a file =====&lt;br /&gt;
We define a file&amp;#039;s age as the most recent of:&lt;br /&gt;
&lt;br /&gt;
 *the access time (atime) and&lt;br /&gt;
 *the change time (ctime)&lt;br /&gt;
&lt;br /&gt;
You can find the ctime of a file using&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lc &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while the atime can be obtained with the command&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lu &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do not use the modify time (mtime) of the file because it can be modified by the user or by other programs to display incorrect information.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, simple use of the atime property would be sufficient, as it is updated by the system in sync with the ctime. However, userspace programs are able to alter atime, potentially to times in the past, which could result in early expiration of a file. The use of ctime as a fallback guards against this undesirable behaviour.&lt;br /&gt;
&lt;br /&gt;
It is also your responsibility to manage your stored data: most of the filesystems are not intended to provide an indefinite archiving service so when a given file or directory is no longer needed, you need to move it to a more appropriate filesystem which may well mean your personal workstation or some other storage system under your control. Moving significant amounts of data between your workstation and an Alliance system or between two Alliance systems should generally be done using Globus.&lt;br /&gt;
&lt;br /&gt;
==== How to archive my data? ====&lt;br /&gt;
&lt;br /&gt;
===== Use tar to archive files and directories =====&lt;br /&gt;
&lt;br /&gt;
The primary archiving utility on all Linux and Unix-like systems is the [https://www.gnu.org/software/tar/manual/tar.html tar] command. It will bundle a bunch of files or directories together and generate a single file, called an &amp;#039;&amp;#039;archive file&amp;#039;&amp;#039; or &amp;#039;&amp;#039;tar-file&amp;#039;&amp;#039;. By convention an archive file has &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; as the file name extension. When you archive a directory with &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, it will, by default, include all the files and sub-directories contained within it, and sub-sub-directories contained in those, and so on. So the command &amp;lt;code&amp;gt;tar --create --file project1.tar project1&amp;lt;/code&amp;gt; will pack all the content of directory &amp;#039;&amp;#039;project1&amp;#039;&amp;#039; into the file &amp;#039;&amp;#039;project1.tar&amp;#039;&amp;#039;. The original directory will remain unchanged, so this may double the amount of disk space occupied!&lt;br /&gt;
&lt;br /&gt;
You can extract files from an archive using the same command with a different option:&amp;lt;code&amp;gt;tar --extract --file project1.tar&amp;lt;/code&amp;gt;. If there is no directory with the original name, it will be created. If a directory of that name exists and contains files of the same names as in the archive file, they will be overwritten. Another option can be added to specify the destination directory where to extract the archive&amp;#039;s content.   &lt;br /&gt;
&lt;br /&gt;
===== Compress and uncompress tar files =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; archiving utility can compress an archive file at the same time it creates it. There are a number of compression methods to choose from. We recommend either &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;, which can be used as follows:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ tar --create --xz --file project1.tar.xz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --xz --file project1.tar.xz&lt;br /&gt;
 [user_name@localhost]$ tar --create --gzip --file project1.tar.gz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --gzip --file project1.tar.gz&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;code&amp;gt;--xz&amp;lt;/code&amp;gt; will produce a smaller compressed file (a &amp;quot;better compression ratio&amp;quot;) but takes longer and uses more RAM while working. &amp;lt;code&amp;gt;--gzip&amp;lt;/code&amp;gt; does not typically compress as small, but may be used if you encounter difficulties due to insufficient memory or excessive run time during &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt;. A third option, &amp;lt;code&amp;gt;--bzip2&amp;lt;/code&amp;gt;, is also available, that typically does not compress as small as &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; but takes longer than &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt; first without compression and then use the commands &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; in a separate step, although there is rarely a reason to do so. Similarly, you can run &amp;lt;code&amp;gt;xz -d&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip -d&amp;lt;/code&amp;gt; to decompress an archive file before running &amp;lt;code&amp;gt;tar --extract&amp;lt;/code&amp;gt;, but again there is rarely a reason to do so.&lt;br /&gt;
&lt;br /&gt;
The commands &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; can be used to compress any file, not just archive files:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ gzip bigfile&lt;br /&gt;
 [user_name@localhost]$ xz bigfile&lt;br /&gt;
&lt;br /&gt;
These commands will produce the files &amp;lt;code&amp;gt;bigfile.gz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigfile.xz&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
=====Archival Storage=====&lt;br /&gt;
&lt;br /&gt;
On Graham, files copied to ~/nearline will be subsequently moved to offline (tape-based) storage. See [https://docs.computecanada.ca/wiki/Using_nearline_storage this link] for more details.&lt;br /&gt;
&lt;br /&gt;
==== How can I check the hidden files in directory? ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;.&amp;quot; at the beginning of the name means that the file is &amp;quot;hidden&amp;quot;. You have to use the -a option with ls to see it. I.e. &amp;lt;code&amp;gt;ls -a &amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
If you want to display only the hidden files then type:&lt;br /&gt;
 ls -d .*&lt;br /&gt;
&lt;br /&gt;
Note: there is an alias which is loaded from /etc/bashrc (see your .bashrc file). The alias is defined by alias &amp;lt;code&amp;gt; l.=&amp;#039;ls -d .* --color=auto&amp;#039; &amp;lt;/code&amp;gt; and if you type:&lt;br /&gt;
 l.&lt;br /&gt;
you will also display only the hidden files.&lt;br /&gt;
&lt;br /&gt;
==== How can I count the number of files in a directory? ====&lt;br /&gt;
&lt;br /&gt;
One can use the following command to count the number of files in a directory (in this example, your /work directory):&lt;br /&gt;
&lt;br /&gt;
 find /home/$USER -type f   | wc -l&lt;br /&gt;
&lt;br /&gt;
It is always a good idea to [[Knowledge_Base#How_to_archive_my_data.3F|archive]] and/or compress files that are no longer needed on the filesystem (see [https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_to_organize_a_large_number_of_files.3F below]).  This helps minimize one&amp;#039;s footprint on the filesystem and as such the impact they have on other users of the shared resource.&lt;br /&gt;
&lt;br /&gt;
==== How to organize a large number of files? ====&lt;br /&gt;
&lt;br /&gt;
With parallel cluster filesystems, you will get best I/O performance writing data to a small number of large files. Since all metadata operations on each of our parallel filesystems are handled by a single file server, depending on how many files are being accessed the server can become overwhelmed leading to poor overall I/O performance for all users. If your workflow involves storing data in a large number of files, it is best to pack these files into a small number of larger archives, e.g. using tar command&lt;br /&gt;
&lt;br /&gt;
 tar cvf archiveFile.tar directoryToArchive&lt;br /&gt;
&lt;br /&gt;
For better performance with many files inside your archive, we recommend to use DAR (Disk ARchive utility), which is a disk analog of tar (Tape ARchive).  Dar can extract files from anywhere in the archive much faster than tar. The dar command is available by default on sharcnet systems. It can be used to pack files into a dar archive by doing something like: &lt;br /&gt;
&lt;br /&gt;
 dar -s 1G -w -c archiveFile -g directoryToArchive&lt;br /&gt;
&lt;br /&gt;
In this example we split the archive into 1GB chunks, and the archive files will be named archiveFile.1.dar, archiveFile.2.dar, and so on. To list the contents of the archive, you can type:&lt;br /&gt;
&lt;br /&gt;
 dar -l archiveFile&lt;br /&gt;
&lt;br /&gt;
To temporarily extract files for post-processing into current directory, you would type:&lt;br /&gt;
&lt;br /&gt;
 dar -R . -O -x archiveFile -v -g pathToYourFile/fileToExtract&lt;br /&gt;
&lt;br /&gt;
=== I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host ===&lt;br /&gt;
&lt;br /&gt;
The most likely cause of this behaviour is repeated failed login attempts.  Part of our security policies involves blocking the IP address of machines that attempt multiple logins with incorrect passwords over a short period of time---many brute-force attacks on systems do exactly this: looking for poor passwords, badly configured accounts, etc.  Unfortunately, it isn&amp;#039;t uncommon for a user to forget their password and make repeated login attempts with incorrect passwords and end up with that machine blacklisted and unable to connect at all.&lt;br /&gt;
&lt;br /&gt;
A temporary solution is simply to attempt to login from another machine.  If you have access to another machine at your site, you can shell to that machine first, and then shell to the SHARCNET system (as that machine&amp;#039;s IP shouldn&amp;#039;t be blacklisted).  In order to have your machine unblocked, you will have to email to [mailto:support@computecanada.ca support@computecanada.ca] as a system administrator must manually intervene in order to fix it.&lt;br /&gt;
&lt;br /&gt;
NOTE: there are other situations that can produce this message, however they are rarer and more transient.  If you are unable to log in from one machine, but can from another, it is most likely the IP blacklisting that is the problem and the above will provide a temporary work-around while your problem ticket is processed.&lt;br /&gt;
&lt;br /&gt;
=== I am unable to ssh/scp from SHARCNET to my local computer ===&lt;br /&gt;
&lt;br /&gt;
Most campus networks are behind some sort of firewall.  If you can ssh out to SHARCNET, but cannot establish a connection in the other direction, then you are probably behind a firewall and should speak with your local system administrator or campus IT department to determine if there are any exceptions or workarounds in place.&lt;br /&gt;
&lt;br /&gt;
=== SSH tells me SOMEONE IS DOING SOMETHING NASTY!? ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please first read the following:&lt;br /&gt;
&lt;br /&gt;
https://docs.alliancecan.ca/wiki/SSH_security_improvements&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suppose you attempt to login to SHARCNET, but instead get an alarming message like this:&lt;br /&gt;
&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that the RSA host key has just been changed.&lt;br /&gt;
 The fingerprint for the RSA key sent by the remote host is&lt;br /&gt;
 fe:65:ab:89:9a:23:34:5a:50:1e:05:d6:bf:ec:da:67.&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending key in /home/user/.ssh/known_hosts:42&lt;br /&gt;
 RSA host key for requin has changed and you have requested strict checking.&lt;br /&gt;
 Host key verification failed. &lt;br /&gt;
&lt;br /&gt;
SSH begins a connection by verifying that the host you&amp;#039;re connecting to is authentic. It does this by caching the hosts&amp;#039;s &amp;quot;hostkey&amp;quot; in your  &amp;lt;tt&amp;gt;~/.ssh/known_hosts&amp;lt;/tt&amp;gt; file. At times, a hostkey may be changed legitimately; when this happens, you may see such a message. It&amp;#039;s a good idea to verify this with us, you may be able to check the fingerprint yourself by logging into another sharcnet system and running:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub &lt;br /&gt;
&lt;br /&gt;
If the fingerprint is OK, the normal way to fix the problem is to simply remove the old hostkey from your &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. On machines with commandline SSH, you can do this with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -R thehostname&lt;br /&gt;
&lt;br /&gt;
You can use your choice of editor if you&amp;#039;re comfortable doing so (it&amp;#039;s a plain text file, but has long lines). On a unix-compatible machine, you can also use the following very small script (Substitute the line(s) printed in the warning message illustrated above for &amp;#039;42&amp;#039; here.):&lt;br /&gt;
&lt;br /&gt;
 perl -pi -e &amp;#039;undef $_ if (++$line == 42)&amp;#039; ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
Another solution is brute-force: remove the whole &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. This throws away any authentication checking, and afterwards, your first connection to any machine will prompt you to accept a newly discovered host key.&lt;br /&gt;
&lt;br /&gt;
=== Ssh works, but scp doesn&amp;#039;t! ===&lt;br /&gt;
&lt;br /&gt;
If you can &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; to a cluster successfully, but cannot &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to to it, the problem is likely that your login scripts print unexpected messages which confuse &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; is based on the same &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, but assumes that the connection is &amp;quot;clean&amp;quot;: that is, that it does not produce any un-asked-for content. If you have something like:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; will be confused by the salutation. To avoid this, simply ensure that the message is only printed on an interactive login:&lt;br /&gt;
&lt;br /&gt;
 if [ -t 0 ]; then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
or in csh/tcsh syntax:&lt;br /&gt;
&lt;br /&gt;
 if ( -t 0 ) then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
=== How do I edit my program on a cluster? ===&lt;br /&gt;
&lt;br /&gt;
We provide a variety of editors, such as the traditional text-mode &amp;lt;tt&amp;gt;emacs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; (vim), as well as a simpler one called &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;. If you have X on your desktop (and tunneled through SSH), you can use the GUI versions (&amp;lt;tt&amp;gt;xemacs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If your desktop supports FUSE, it&amp;#039;s very convenient to simply mount your home tree like this:&lt;br /&gt;
 mkdir sharcnet&lt;br /&gt;
 sshfs graham.alliancecan.ca: sharcnet&lt;br /&gt;
you can then use any local editor of your choice.&lt;br /&gt;
&lt;br /&gt;
If you run emacs on your desktop, you can also edit a remote file from within your local emacs client using [http://www.gnu.org/software/tramp Tramp], opening and saving a file as /username@cluster.computecanada.ca:path/file.&lt;br /&gt;
&lt;br /&gt;
== Research at SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== I have a research project I would like to collaborate on with SHARCNET, who should I talk to? ===&lt;br /&gt;
&lt;br /&gt;
You may contact [mailto:barb@sharcnet.ca SHARCNET head office] or contact members of the [https://www.sharcnet.ca/my/contact/directory#techteam SHARCNET technical staff].&lt;br /&gt;
&lt;br /&gt;
=== How can I contribute compute resources to SHARCNET so that other researchers can share it? ===&lt;br /&gt;
&lt;br /&gt;
Most people&amp;#039;s research is &amp;quot;bursty&amp;quot; - there are usually sparse periods of time when some computation is urgently needed, and other periods when there is less demand. One problem with this is that if you purchase the equipment you need to meet your &amp;quot;burst&amp;quot; needs, it&amp;#039;ll probably sit, underutilized, during other times.&lt;br /&gt;
&lt;br /&gt;
An alternative is to donate control of this equipment to SHARCNET, and let us arrange for other users to use it when you are not. We prefer to be involved in the selection and configuration of such equipment. Our promise to contributors is that as much as possible, they should obtain as much benefit from the cluster as if it were not shared. Owners get preferential access. Naturally, owners are also able to burst to higher peak usage, since their equipment has been pooled with other contributions. (Technically, SHARCNET cannot itself own such equipment — it remains owned by the institution in question, and will be returned to the contributor upon request.) If you think this model will also work for you and you would like to contribute your computational resource to help the research community at SHARCNET, you can contact us for such arrangement.&lt;br /&gt;
&lt;br /&gt;
=== I do not know much about computation, nor is it my research interest. But I am interested in getting my research done faster with the help of the high performance computing technology. In other words, I do not care about the process and mechanism, but only the final results. Can SHARCNET provide this type of help? ===&lt;br /&gt;
&lt;br /&gt;
We will be happy to bring the technology of high performance computing to you to accelerate your research, if at all possible. If you would like to discuss your plan with us, please feel free to contact our [https://www.sharcnet.ca/my/contact/directory#techteam high performance computing specialists]. They will be happy to listen to your needs and are ready to provide appropriate suggestions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET participates in the Alliance national RAC (Resource Allocation Competition) and provides a continual competition for groups that require more than the default level of access to our resources.  Please see [[Dedicated Resources]] for further information.&lt;br /&gt;
&lt;br /&gt;
=== I heard SHARCNET offers fellowships, where can I get more information? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET no longer actively runs a fellowship program.  You may find information regarding past fellowships and other dedicated resource opportunities on the [https://www.sharcnet.ca/my/research/fellowships Research Fellowships page] of the web portal.&lt;br /&gt;
&lt;br /&gt;
=== I would like to do some research at SHARCNET as a visiting scholar, how should I apply? ===&lt;br /&gt;
&lt;br /&gt;
In general, you will need to find a hosting department or a person affiliated with one of the SHARCNET institutions. You may also [http://www.sharcnet.ca/my/contact contact us] directly for more specific information.&lt;br /&gt;
&lt;br /&gt;
=== I would like to send my students to SHARCNET to do some work for me. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
See above.&lt;br /&gt;
&lt;br /&gt;
== Contacting SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for research, academic exchanges, and technical issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for business development, education and other issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact a specific staff member at SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
See [https://www.sharcnet.ca/my/contact/directory staff directory] for contact information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Acknowledge SHARCNET in Publications ==&lt;br /&gt;
&lt;br /&gt;
=== How do I acknowledge SHARCNET in my publications? ===&lt;br /&gt;
&lt;br /&gt;
We recommend one cite the following:&lt;br /&gt;
&lt;br /&gt;
 This work was made possible by the facilities of the Shared Hierarchical &lt;br /&gt;
 Academic Research Computing Network (SHARCNET:www.sharcnet.ca) and Digital Research Alliance of Canada (https://alliancecan.ca/en).&lt;br /&gt;
&lt;br /&gt;
=== I&amp;#039;ve seen different spellings of the name, what is the standard spelling of SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
We suggest the spelling SHARCNET, all in upper case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What types of research programs / support are provided to the research community? ==&lt;br /&gt;
&lt;br /&gt;
Our overall intent is to provide support that can both respond to the range of needs that the user community presents and help to increase the sophistication of the community and enable new and larger-in-scope applications making use of SHARCNET&amp;#039;s HPC facilities. The range of support can perhaps best be understood in terms of a pyramid:&lt;br /&gt;
&lt;br /&gt;
=== Level 1 ===&lt;br /&gt;
&lt;br /&gt;
At the apex of the pyramid, SHARCNET supports a small number of projects with dedicated programmer support. The intent is to enable projects that will have a lasting impact and may lead to a &amp;quot;step change&amp;quot; in the way research is done at SHARCNET. Inter-disciplinary and inter-institutional projects are particularly welcomed. For the latest information about the program, including application guidelines, please see the  [https://www.sharcnet.ca/my/research/programming Programming Competition] page in our web portal.&lt;br /&gt;
&lt;br /&gt;
=== Level 2 ===&lt;br /&gt;
&lt;br /&gt;
The middle layers of support are provided through a number of initiatives.&lt;br /&gt;
&lt;br /&gt;
These include:&lt;br /&gt;
* Programming support of more modest duration (several days to one month engagement, usually part time)&lt;br /&gt;
* Training on a variety of topics through [https://helpwiki.sharcnet.ca/wiki/Training workshops, seminars and online training materials]&lt;br /&gt;
* Consultation. This may include user-initiated interactions on particular programs, algorithms, techniques, debugging, optimization etc., as well as unsolicited help to ensure effective use of SHARCNET systems&lt;br /&gt;
* Site Leaders play an important role in working with the community to help researchers connect with SHARCNET staff and to obtain appropriate help and support.&lt;br /&gt;
&lt;br /&gt;
=== Level 3 ===&lt;br /&gt;
&lt;br /&gt;
The base level of the pyramid handles the very large number of small requests that are essential to keeping the user community working effectively with the infrastructure on a day-to-day basis. Several of these can be answered by this FAQ; many of the issues are presented through the [https://www.sharcnet.ca/help/index.php/Knowledge_Base#Compute_Canada_Problem_Ticket_System ticketing system]. The support is largely problem oriented with each problem being time limited.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=949</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=949"/>
		<updated>2024-09-17T17:51:18Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* SSH tells me SOMEONE IS DOING SOMETHING NASTY!? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Sharcnet_logo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== About SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== What is SHARCNET? ===&lt;br /&gt;
SHARCNET stands for Shared Hierarchical Academic Research Computing Network. Established in 2000, SHARCNET is the largest high performance computing consortium in Canada, involving 19 universities and colleges across southern, central and northern Ontario.&lt;br /&gt;
&lt;br /&gt;
SHARCNET is a member consortium in the [https://alliancecan.ca/en Digital Research Alliance of Canada (Alliance)]  national HPC platform.&lt;br /&gt;
&lt;br /&gt;
=== Where is SHARCNET? ===&lt;br /&gt;
The [http://www.sharcnet.ca/my/contact main office] of SHARCNET is located in the Western Science Centre at [http://www.uwo.ca/ The University of Western Ontario].&lt;br /&gt;
&lt;br /&gt;
=== What does SHARCNET have? ===&lt;br /&gt;
The primary SHARCNET compute system is [https://docs.computecanada.ca/wiki/Graham Graham heterogeneous cluster] located at the University of Waterloo.  It is named after Wes Graham, the first director of the Computing Centre at Waterloo.  It consists of 41,548 cores and 520 GPU devices, spread across 1,185 nodes of different configurations.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with SHARCNET? ===&lt;br /&gt;
If you have a program that takes months to run on your PC, you could probably run it within a few hours using hundreds of processors on SHARCNET / Alliance, provided your program is inherently parallelisable. If you have hundreds or thousands of test cases to run through on your PC or computers in your lab, then with hundreds of processors running those cases independently will significantly reduce your test cycles.&lt;br /&gt;
&lt;br /&gt;
=== Who is running SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
The daily operation and development of SHARCNET computational facilities is managed by a group of highly qualified system administrators. In addition, we have a team of high performance technical computing consultants, who are responsible for technical support on libraries, programming and application analysis.&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET? ===&lt;br /&gt;
For technical inquiries, you may send E-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] or [mailto:help@sharcnet.ca help@sharcnet.ca], or [https://www.sharcnet.ca/my/contact/directory#techteam contact your local system administrator or HPC specialist]. For general inquiries, you may contact the SHARCNET [http://www.sharcnet.ca/my/contact main office].&lt;br /&gt;
&lt;br /&gt;
== Getting an Account with SHARCNET and Related Issues ==&lt;br /&gt;
&lt;br /&gt;
To use SHARCNET (and any other national facilities in Alliance) one has to [https://www.alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account apply for an Alliance account].&lt;br /&gt;
&lt;br /&gt;
== Getting Help ==&lt;br /&gt;
&lt;br /&gt;
=== I have encountered a problem while using an Alliance /SHARCNET system and need help, who should I talk to? ===&lt;br /&gt;
We encourage you to use the problem ticketing system (described in detail [[FAQ#Alliance_Problem_Ticket_System|below]]) .  This is the most efficient way of reporting a problem.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the [https://www.sharcnet.ca/my/contact/directory directory] page.&lt;br /&gt;
&lt;br /&gt;
=== How long should I expect to wait for support? ===&lt;br /&gt;
Unfortunately Alliance/SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week.  User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .  &lt;br /&gt;
&lt;br /&gt;
Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.  &lt;br /&gt;
&lt;br /&gt;
=== Alliance Problem Ticket System ===&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;problem ticket system&amp;quot;? ====&lt;br /&gt;
&lt;br /&gt;
This is a system that allows anyone with an Alliance account to start a persistent email thread that is referred to as a &amp;quot;problem ticket&amp;quot;.    When a user submits a new ticket it will be brought to the attention of an appropriate and available Alliance/SHARCNET staff member for resolution.  &lt;br /&gt;
&lt;br /&gt;
You interact with the ticket system entirely via email.&lt;br /&gt;
&lt;br /&gt;
==== What do I need to specify in a ticket ? ====&lt;br /&gt;
&lt;br /&gt;
To help us address your question faster, please try to do the following when submitting a ticket:&lt;br /&gt;
&lt;br /&gt;
#specify which of our systems is involved &lt;br /&gt;
#if the problem pertains to a job, then report the &amp;lt;u&amp;gt;jobid&amp;lt;/u&amp;gt; associated with the job; this is an integer that is returned by the scheduler when you submit the job&lt;br /&gt;
#report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem; if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem&lt;br /&gt;
#if you&amp;#039;d like for a particular staff member to be aware of the ticket, mention them&lt;br /&gt;
&lt;br /&gt;
==== How do I submit a ticket? ====&lt;br /&gt;
&lt;br /&gt;
In general, you can submit a new ticket by emailing  [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca]  with the email address associated with your Alliance account.  If you are using another email address, please provide your full name, your Alliance default username (if available) and your university or institution.&lt;br /&gt;
&lt;br /&gt;
If you like, you can also target your inquiry more specifically, by using the following addresses to submit your ticket:&lt;br /&gt;
&lt;br /&gt;
* [mailto:help@sharcnet.ca help@sharcnet.ca] - questions specific to SHARCNET, for example relating to contributed SHARCNET systems&lt;br /&gt;
* [mailto:globus@tech.alliancecan.ca globus@tech.alliancecan.ca] -- Questions about [[Globus]] file transfer services&lt;br /&gt;
* [mailto:cloud@tech.alliancecan.ca cloud@tech.alliancecan.ca] -- Questions about using Alliance cloud resources&lt;br /&gt;
* [mailto:accounts@tech.alliancecan.ca accounts@tech.alliancecan.ca] -- Questions about Alliance accounts&lt;br /&gt;
* [mailto:renewals@tech.alliancecan.ca renewals@tech.alliancecan.ca] -- Questions about Alliance account renewals&lt;br /&gt;
&lt;br /&gt;
=== I am new to parallel programming, can you help me get started with my project? ===&lt;br /&gt;
Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research. If your programming project would involve a significant staff time, you should consider applying for Dedicated Programming support. (We run the competition annually; see https://www.sharcnet.ca/my/research/programming).&lt;br /&gt;
&lt;br /&gt;
=== Can you install a package on a cluster for me? ===&lt;br /&gt;
Certainly.  We suggest you make the request by sending e-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] with the specific request.&lt;br /&gt;
&lt;br /&gt;
=== I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that? ===&lt;br /&gt;
If you tell us what you want, we may be able to help you out.&lt;br /&gt;
&lt;br /&gt;
=== Does SHARCNET provide any training on programming and using the systems? ===&lt;br /&gt;
&lt;br /&gt;
Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every summer (usually late May to early June), SHARCNET holds [https://helpwiki.sharcnet.ca/wiki/Summer_Schools an annual HPC Summer School] with a variety of in-depth, hands-on workshops. &lt;br /&gt;
&lt;br /&gt;
SHARCNET also offers a series of online seminars (so-called &amp;quot;General interest webinars&amp;quot;), typically delivered every second Wednesday at lunch time.  These are announced via the SHARCNET events mailing list and one can see the schedule at the [https://www.sharcnet.ca/my/news/calendar SHARCNET event calendar].  Past seminars are recorded and posted on [http://youtube.sharcnet.ca our youtube channel]. A full listing of the past webinars is available on the [https://helpwiki.sharcnet.ca/wiki/Online_Seminars Online Seminars] page.&lt;br /&gt;
&lt;br /&gt;
=== Attending SHARCNET Webinars ===&lt;br /&gt;
{{:Attending SHARCNET Webinars}}&lt;br /&gt;
&lt;br /&gt;
== Logging in to Systems, Transferring and Editing Files ==&lt;br /&gt;
&lt;br /&gt;
=== How do I login to SHARCNET? ===&lt;br /&gt;
You access the SHARCNET clusters using ssh.  For Graham and other national systems Alliance credentials are required.  For the remaining (&amp;quot;Legacy&amp;quot;) systems, you will require SHARCNET credentials (submit a ticket to help@sharcnet.ca if you have questions).&lt;br /&gt;
&lt;br /&gt;
====Unix/Linux/OS X====&lt;br /&gt;
To login to a system, you need to use an [http://www.openssh.com/ Secure Shell (SSH)] connection. If you are logging in from a UNIX-based machine, make sure it has an SSH client (ssh) installed (this is almost always the case on UNIX/Linux/OS X). If you have the same login name on both your local system and SHARCNET, and you want to login to, say, &amp;lt;tt&amp;gt;graham&amp;lt;/tt&amp;gt;, you may use the command:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If your Alliance username is different from the username on your local systems, then you may use either of the following forms:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca -l username&lt;br /&gt;
 ssh username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If you want to establish an X window connection so that you can use graphics applications such as &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ddt&amp;lt;/tt&amp;gt;, you can add a &amp;lt;tt&amp;gt;-Y&amp;lt;/tt&amp;gt; to the command:&lt;br /&gt;
&lt;br /&gt;
 ssh -Y username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
This will automatically set the X DISPLAY variable when you login.&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
If you are logging from a computer running Windows and need some pointers we recommend consulting our [[SSH]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between Login Nodes and Compute Nodes? ===&lt;br /&gt;
====Login Nodes====&lt;br /&gt;
&lt;br /&gt;
Most of our clusters have distinct &amp;#039;&amp;#039;login nodes&amp;#039;&amp;#039; associated with them that you are automatically redirected to when you login to the cluster (some systems are directly logged into, eg. SMPs and smaller specialty systems).  You can use these to do most of your work preparing for jobs (compiling, editing configuration files) and other low-intensity tasks like moving and copying files.  &lt;br /&gt;
&lt;br /&gt;
You can also use them for other quick tasks, like simple post-processing, but any significant work should be submitted as a job to the compute nodes.  On most login nodes, each process is limited to 1 cpu-hour; this will be noticable if you perform anything compute-intensive, and can affect IO-oriented activity as well (such as very large &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; operations.)&lt;br /&gt;
&lt;br /&gt;
=== How can I suspend and resume my session? ===&lt;br /&gt;
&lt;br /&gt;
The program screen can start persistent terminals from which you can detach and reattach.  The simplest use of screen is&lt;br /&gt;
&lt;br /&gt;
 screen -dR&lt;br /&gt;
&lt;br /&gt;
which will either reattach you to any existing session or create a new one if one doesn&amp;#039;t exist.  To terminate the current screen session, type &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;.  To detach manually (you are automatically detached if the connection is lost) press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;d&amp;#039;&amp;#039;, you can the resume later as above (ideal for running background jobs).  Note that &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; is screen&amp;#039;s escape sequence, so you have to do &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;a&amp;#039;&amp;#039; to get the regular effect of pressing &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; inside a screen session (e.g., moving the cursor to the start of the line in a shell).&lt;br /&gt;
&lt;br /&gt;
For a list of other &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; key sequences, press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;?&amp;#039;&amp;#039;.  For further details and  command line options, see the [http://www.gnu.org/software/screen/manual/screen.html screen manual] (or type &amp;lt;tt&amp;gt;man screen&amp;lt;/tt&amp;gt; on any of the clusters).&lt;br /&gt;
&lt;br /&gt;
Other notes:&lt;br /&gt;
* If you want to create additional &amp;quot;text windows&amp;quot;, use Ctrl-A Ctrl-C. Remember to type &amp;quot;exit&amp;quot; to close it. &lt;br /&gt;
* To switch to a &amp;quot;text window&amp;quot; with a certain number, use Ctrl-A # (where # is 0 to 9).&lt;br /&gt;
* To see a list of window numbers use Ctrl-A w&lt;br /&gt;
* To be presented a list of windows and select one to use, use Ctrl-A &amp;quot; (This is handy if you&amp;#039;ve made too many windows.)&lt;br /&gt;
* If the program running in a screen &amp;quot;text window&amp;quot; refuses to die (i.e., it needs to be killed) you can use Ctrl-A K&lt;br /&gt;
* For brief help on keystrokes use Ctrl-A ?&lt;br /&gt;
* For extensive help, run &amp;quot;man screen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What operating systems are supported? ===&lt;br /&gt;
UNIX in general. Currently, Linux is the only operating system used within SHARCNET.&lt;br /&gt;
&lt;br /&gt;
=== What makes a cluster different than my UNIX workstation? ===&lt;br /&gt;
&lt;br /&gt;
If you are familiar with UNIX, then using a cluster is not much different from using a workstation. When you login to a cluster, you in fact only log in to one of the cluster nodes. In most cases, each cluster node is a physical machine, usually a server class machine, with one or several CPUs, that is more or less the same as a workstation you are familiar with. The difference is that these nodes are interconnected with special interconnect devices and the way you run your program is slightly different. Across SHARCNET clusters, you are not expected to run your program interactively. You will have to run your program through a queueing system. That also means where and when your program gets to run is not decided by you, but by the queueing system.&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Those primary programming languages such as C, C++, Fortran, and Python are supported. Other languages, such as Java, Pascal and Ada, are also supported, but with limited technical support from us. &lt;br /&gt;
&lt;br /&gt;
=== How do I organize my files? ===&lt;br /&gt;
[https://docs.computecanada.ca/wiki/Storage_and_file_management#Storage_types Main file systems on our National systems.]&lt;br /&gt;
&lt;br /&gt;
==== How do I transfer files/directories to/from or between cluster? ====&lt;br /&gt;
&lt;br /&gt;
=====Unix/Linux=====&lt;br /&gt;
To transfer files to and from a cluster on a UNIX machine, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt;. For example, if you want to upload file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; to cluster graham from your machine &amp;lt;tt&amp;gt;myhost&amp;lt;/tt&amp;gt;, use the following command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp foo.f graham.computecanada.ca:&lt;br /&gt;
&lt;br /&gt;
assuming that your machine has &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; installed. If you want to transfer a file from Windows or Mac, you need have &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt; for Windows or Mac installed.&lt;br /&gt;
&lt;br /&gt;
If you transfer file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; between Alliance clusters, say from your home directory on cedar to your home directory on graham, simply use the following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp foo.f graham:/home/username/&lt;br /&gt;
&lt;br /&gt;
If you are transferring files between a UNIX machine and a cluster, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; command with &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; option. For instance, if you want to download the subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; in the directory &amp;lt;tt&amp;gt;project&amp;lt;/tt&amp;gt; in your home directory on graham to your local UNIX machine, on your local machine, use command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp -rp graham.sharcnet.ca:project/foo .&lt;br /&gt;
&lt;br /&gt;
Similarly, you can transfer the subdirectory between Alliance clusters. The following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp -r graham:/home/username/scratch/foo .&lt;br /&gt;
&lt;br /&gt;
will download subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; from your scratch directory on graham to your home directory on cedar (note that the prompt indicates you are currently logged on to cedar).&lt;br /&gt;
&lt;br /&gt;
The use of &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; option above will preserve the time stamp of each file. For Windows and Mac, you need to check the documentation of &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; for features. &amp;#039;&amp;#039;&amp;#039;Do not use -p switch with scp or cp commands on clusters, when the destination is your project space&amp;#039;&amp;#039;&amp;#039;, or you might run into the infamous [https://docs.computecanada.ca/wiki/Frequently_Asked_Questions#Disk_quota_exceeded_error_on_.2Fproject_filesystems Disk quota exceeded issue].&lt;br /&gt;
&lt;br /&gt;
You may also &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; and compress the entire directory and then use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to save bandwidth. In the above example, first you login to graham, then do the following&lt;br /&gt;
&lt;br /&gt;
 [username@gra-login2:~]$ cd project&lt;br /&gt;
 [username@gra-login2:~]$ tar -cvf foo.tar foo&lt;br /&gt;
 [username@gra-login2:~]$ gzip foo.tar&lt;br /&gt;
&lt;br /&gt;
Then on your local machine myhost, use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to copy the tar file&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp graham.computecanada.ca:project/foo.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Note for most Linux distributions, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; has an option &amp;lt;tt&amp;gt;-z&amp;lt;/tt&amp;gt; that will compress the &amp;lt;tt&amp;gt;.tar&amp;lt;/tt&amp;gt; file using &amp;lt;tt&amp;gt;gzip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Windows=====&lt;br /&gt;
You may read the instructions on using an ssh client. [[https://helpwiki.sharcnet.ca/wiki/SSH#Transfering_files_.28Secure_File_Transfer_Client.29]]&lt;br /&gt;
&lt;br /&gt;
====How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect?====&lt;br /&gt;
&lt;br /&gt;
In general, most users should be fine using &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to transfer data to and from SHARCNET systems.  If you need to transfer a lot of files &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; is recommended to ensure that you do not need to restart the transfer from scratch should there be a connection failure.  Although you can use &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to any cluster&amp;#039;s login node(s), it is often best to use gra-dtn1.computecanada.ca - it is dedicated to data transfer. &lt;br /&gt;
&lt;br /&gt;
In general one should expect the following transfer rates with &amp;#039;&amp;#039;scp&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* If you are connecting to SHARCNET through a Research/Education network site (ORION, CANARIE, Internet2) and are on a fast local network (this is the case for most users connecting from academic institutions) then you should be able to attain sustained transfer speeds in excess of 10MB/s.  If your path is all gigabit or better, you should be able to reach rates above 50 MB/s.&lt;br /&gt;
* If you are transferring data over the wider internet, you will not be able to attain these speeds, as all traffic that does not enter/exit SHARCNET via the R&amp;amp;E net is restricted to a limited-bandwidth commercial feed. In this case one will typically see rates on the order of 1MB/s or less.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that filesystems and networks are  shared resources and suffer from contention; if they are busy the above rates may not be attainable&lt;br /&gt;
&lt;br /&gt;
For transferring large amounts of data (many gigabytes) the best approach is to use the online tool [https://docs.computecanada.ca/wiki/Transferring_data#Globus_transfer Globus].&lt;br /&gt;
&lt;br /&gt;
==== How do I access the same file from different subdirectories on the same cluster ? ====&lt;br /&gt;
&lt;br /&gt;
You should not need copy large files on the same cluster (e.g. from one user to another&lt;br /&gt;
or using the same file in different subdirectories).  Instead of using&lt;br /&gt;
scp you might consider issuing a &amp;quot;soft link&amp;quot; command. Assume that you need access&lt;br /&gt;
to the file large_file1 in subdirectory /home/user1/subdir1 and you need it to be in your&lt;br /&gt;
subdirectory /home/my_account/my_dir from where you will invoke it under the name&lt;br /&gt;
my_large_file1.  Then go to that directory and type:&lt;br /&gt;
&lt;br /&gt;
 ln -s /home/user1/subdir1/large_file1    my_large_file1&lt;br /&gt;
&lt;br /&gt;
Another example, assume that in subdirectory /home/my_account/PROJ1 you have several&lt;br /&gt;
subdirectories called CASE1, CASE2, ...  In each subdirectory CASEn you have a slightly&lt;br /&gt;
different code but all of them process the same data file called test_data. Rather than&lt;br /&gt;
copying the test_data file into each CASEn subdirectory, place test_data above i.e.&lt;br /&gt;
in /home/my_account/PROJ1 and then in each CASEn subdirectory issue following &amp;quot;soft link&amp;quot;&lt;br /&gt;
command:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../test_data  test_data&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;soft links&amp;quot; can be removed by using the rm command. For example, to remove the soft link from&lt;br /&gt;
/home/my_account/PROJ1/CASE2 type following command from this subdirectory:&lt;br /&gt;
&lt;br /&gt;
 rm -rf test_data&lt;br /&gt;
&lt;br /&gt;
Typing above command from subdirectory /home/my_account/PROJ1 would remove the actual file and then&lt;br /&gt;
none of the CASEn subdirectories would have access to it.&lt;br /&gt;
&lt;br /&gt;
==== How are files deleted from the /home/userid/scratch filesystems? ====&lt;br /&gt;
&lt;br /&gt;
All files on /home/userid/scratch that are over 2 months old (not old in the common sense, please see below) are automatically deleted. Data needed for long term storage and reference should be kept in either /project, /nearline, or other archival storage areas. The scratch filesystem is checked at the end of the month for files which will be candidates for expiry on the 15th of the following month. On the first day of the month, a login message is posted and a notification e-mail is sent to all users who have at least one file which is a candidate for purging and containing the location of a file which lists all the candidates for purging.  On the 12th of the month, a second scan is run to check for files that will still expire on the 15th, and again, users with candidates for expiry are sent a second warning email.  Lastly, on the 15th, all files which are due for expiry are removed.&lt;br /&gt;
&lt;br /&gt;
An unconventional aspect of this system is that it does not determine the age of a file based on the file&amp;#039;s attributes, e.g., the standard dates reported by the &amp;lt;i&amp;gt;stat&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;find&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;ls&amp;lt;/i&amp;gt;, etc. commands.  (This is known as the &amp;quot;mtime&amp;quot; of the file, for &amp;quot;modification time&amp;quot;, and is frequently inaccurate.) The age of a file is determined based on whether or not its data contents (i.e., the information stored in the file) have changed or been accessed, and this age is stored externally to the file.  Only files where the contents have changed or accessed will have their age counter &amp;quot;reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A list of your candidate files for expiry can be found in /home/scratch_to_delete/$USER  (where $USER is your userid).&lt;br /&gt;
&lt;br /&gt;
===== How do I check the age of a file =====&lt;br /&gt;
We define a file&amp;#039;s age as the most recent of:&lt;br /&gt;
&lt;br /&gt;
 *the access time (atime) and&lt;br /&gt;
 *the change time (ctime)&lt;br /&gt;
&lt;br /&gt;
You can find the ctime of a file using&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lc &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while the atime can be obtained with the command&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lu &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do not use the modify time (mtime) of the file because it can be modified by the user or by other programs to display incorrect information.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, simple use of the atime property would be sufficient, as it is updated by the system in sync with the ctime. However, userspace programs are able to alter atime, potentially to times in the past, which could result in early expiration of a file. The use of ctime as a fallback guards against this undesirable behaviour.&lt;br /&gt;
&lt;br /&gt;
It is also your responsibility to manage your stored data: most of the filesystems are not intended to provide an indefinite archiving service so when a given file or directory is no longer needed, you need to move it to a more appropriate filesystem which may well mean your personal workstation or some other storage system under your control. Moving significant amounts of data between your workstation and an Alliance system or between two Alliance systems should generally be done using Globus.&lt;br /&gt;
&lt;br /&gt;
==== How to archive my data? ====&lt;br /&gt;
&lt;br /&gt;
===== Use tar to archive files and directories =====&lt;br /&gt;
&lt;br /&gt;
The primary archiving utility on all Linux and Unix-like systems is the [https://www.gnu.org/software/tar/manual/tar.html tar] command. It will bundle a bunch of files or directories together and generate a single file, called an &amp;#039;&amp;#039;archive file&amp;#039;&amp;#039; or &amp;#039;&amp;#039;tar-file&amp;#039;&amp;#039;. By convention an archive file has &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; as the file name extension. When you archive a directory with &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, it will, by default, include all the files and sub-directories contained within it, and sub-sub-directories contained in those, and so on. So the command &amp;lt;code&amp;gt;tar --create --file project1.tar project1&amp;lt;/code&amp;gt; will pack all the content of directory &amp;#039;&amp;#039;project1&amp;#039;&amp;#039; into the file &amp;#039;&amp;#039;project1.tar&amp;#039;&amp;#039;. The original directory will remain unchanged, so this may double the amount of disk space occupied!&lt;br /&gt;
&lt;br /&gt;
You can extract files from an archive using the same command with a different option:&amp;lt;code&amp;gt;tar --extract --file project1.tar&amp;lt;/code&amp;gt;. If there is no directory with the original name, it will be created. If a directory of that name exists and contains files of the same names as in the archive file, they will be overwritten. Another option can be added to specify the destination directory where to extract the archive&amp;#039;s content.   &lt;br /&gt;
&lt;br /&gt;
===== Compress and uncompress tar files =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; archiving utility can compress an archive file at the same time it creates it. There are a number of compression methods to choose from. We recommend either &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;, which can be used as follows:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ tar --create --xz --file project1.tar.xz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --xz --file project1.tar.xz&lt;br /&gt;
 [user_name@localhost]$ tar --create --gzip --file project1.tar.gz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --gzip --file project1.tar.gz&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;code&amp;gt;--xz&amp;lt;/code&amp;gt; will produce a smaller compressed file (a &amp;quot;better compression ratio&amp;quot;) but takes longer and uses more RAM while working. &amp;lt;code&amp;gt;--gzip&amp;lt;/code&amp;gt; does not typically compress as small, but may be used if you encounter difficulties due to insufficient memory or excessive run time during &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt;. A third option, &amp;lt;code&amp;gt;--bzip2&amp;lt;/code&amp;gt;, is also available, that typically does not compress as small as &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; but takes longer than &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt; first without compression and then use the commands &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; in a separate step, although there is rarely a reason to do so. Similarly, you can run &amp;lt;code&amp;gt;xz -d&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip -d&amp;lt;/code&amp;gt; to decompress an archive file before running &amp;lt;code&amp;gt;tar --extract&amp;lt;/code&amp;gt;, but again there is rarely a reason to do so.&lt;br /&gt;
&lt;br /&gt;
The commands &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; can be used to compress any file, not just archive files:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ gzip bigfile&lt;br /&gt;
 [user_name@localhost]$ xz bigfile&lt;br /&gt;
&lt;br /&gt;
These commands will produce the files &amp;lt;code&amp;gt;bigfile.gz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigfile.xz&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
=====Archival Storage=====&lt;br /&gt;
&lt;br /&gt;
On Graham, files copied to ~/nearline will be subsequently moved to offline (tape-based) storage. See [https://docs.computecanada.ca/wiki/Using_nearline_storage this link] for more details.&lt;br /&gt;
&lt;br /&gt;
==== How can I check the hidden files in directory? ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;.&amp;quot; at the beginning of the name means that the file is &amp;quot;hidden&amp;quot;. You have to use the -a option with ls to see it. I.e. &amp;lt;code&amp;gt;ls -a &amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
If you want to display only the hidden files then type:&lt;br /&gt;
 ls -d .*&lt;br /&gt;
&lt;br /&gt;
Note: there is an alias which is loaded from /etc/bashrc (see your .bashrc file). The alias is defined by alias &amp;lt;code&amp;gt; l.=&amp;#039;ls -d .* --color=auto&amp;#039; &amp;lt;/code&amp;gt; and if you type:&lt;br /&gt;
 l.&lt;br /&gt;
you will also display only the hidden files.&lt;br /&gt;
&lt;br /&gt;
==== How can I count the number of files in a directory? ====&lt;br /&gt;
&lt;br /&gt;
One can use the following command to count the number of files in a directory (in this example, your /work directory):&lt;br /&gt;
&lt;br /&gt;
 find /home/$USER -type f   | wc -l&lt;br /&gt;
&lt;br /&gt;
It is always a good idea to [[Knowledge_Base#How_to_archive_my_data.3F|archive]] and/or compress files that are no longer needed on the filesystem (see [https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_to_organize_a_large_number_of_files.3F below]).  This helps minimize one&amp;#039;s footprint on the filesystem and as such the impact they have on other users of the shared resource.&lt;br /&gt;
&lt;br /&gt;
==== How to organize a large number of files? ====&lt;br /&gt;
&lt;br /&gt;
With parallel cluster filesystems, you will get best I/O performance writing data to a small number of large files. Since all metadata operations on each of our parallel filesystems are handled by a single file server, depending on how many files are being accessed the server can become overwhelmed leading to poor overall I/O performance for all users. If your workflow involves storing data in a large number of files, it is best to pack these files into a small number of larger archives, e.g. using tar command&lt;br /&gt;
&lt;br /&gt;
 tar cvf archiveFile.tar directoryToArchive&lt;br /&gt;
&lt;br /&gt;
For better performance with many files inside your archive, we recommend to use DAR (Disk ARchive utility), which is a disk analog of tar (Tape ARchive).  Dar can extract files from anywhere in the archive much faster than tar. The dar command is available by default on sharcnet systems. It can be used to pack files into a dar archive by doing something like: &lt;br /&gt;
&lt;br /&gt;
 dar -s 1G -w -c archiveFile -g directoryToArchive&lt;br /&gt;
&lt;br /&gt;
In this example we split the archive into 1GB chunks, and the archive files will be named archiveFile.1.dar, archiveFile.2.dar, and so on. To list the contents of the archive, you can type:&lt;br /&gt;
&lt;br /&gt;
 dar -l archiveFile&lt;br /&gt;
&lt;br /&gt;
To temporarily extract files for post-processing into current directory, you would type:&lt;br /&gt;
&lt;br /&gt;
 dar -R . -O -x archiveFile -v -g pathToYourFile/fileToExtract&lt;br /&gt;
&lt;br /&gt;
=== I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host ===&lt;br /&gt;
&lt;br /&gt;
The most likely cause of this behaviour is repeated failed login attempts.  Part of our security policies involves blocking the IP address of machines that attempt multiple logins with incorrect passwords over a short period of time---many brute-force attacks on systems do exactly this: looking for poor passwords, badly configured accounts, etc.  Unfortunately, it isn&amp;#039;t uncommon for a user to forget their password and make repeated login attempts with incorrect passwords and end up with that machine blacklisted and unable to connect at all.&lt;br /&gt;
&lt;br /&gt;
A temporary solution is simply to attempt to login from another machine.  If you have access to another machine at your site, you can shell to that machine first, and then shell to the SHARCNET system (as that machine&amp;#039;s IP shouldn&amp;#039;t be blacklisted).  In order to have your machine unblocked, you will have to email to [mailto:support@computecanada.ca support@computecanada.ca] as a system administrator must manually intervene in order to fix it.&lt;br /&gt;
&lt;br /&gt;
NOTE: there are other situations that can produce this message, however they are rarer and more transient.  If you are unable to log in from one machine, but can from another, it is most likely the IP blacklisting that is the problem and the above will provide a temporary work-around while your problem ticket is processed.&lt;br /&gt;
&lt;br /&gt;
=== I am unable to ssh/scp from SHARCNET to my local computer ===&lt;br /&gt;
&lt;br /&gt;
Most campus networks are behind some sort of firewall.  If you can ssh out to SHARCNET, but cannot establish a connection in the other direction, then you are probably behind a firewall and should speak with your local system administrator or campus IT department to determine if there are any exceptions or workarounds in place.&lt;br /&gt;
&lt;br /&gt;
=== SSH tells me SOMEONE IS DOING SOMETHING NASTY!? ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please first read the following:&lt;br /&gt;
&lt;br /&gt;
https://docs.alliancecan.ca/wiki/SSH_security_improvements&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suppose you attempt to login to SHARCNET, but instead get an alarming message like this:&lt;br /&gt;
&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that the RSA host key has just been changed.&lt;br /&gt;
 The fingerprint for the RSA key sent by the remote host is&lt;br /&gt;
 fe:65:ab:89:9a:23:34:5a:50:1e:05:d6:bf:ec:da:67.&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending key in /home/user/.ssh/known_hosts:42&lt;br /&gt;
 RSA host key for requin has changed and you have requested strict checking.&lt;br /&gt;
 Host key verification failed. &lt;br /&gt;
&lt;br /&gt;
SSH begins a connection by verifying that the host you&amp;#039;re connecting to is authentic. It does this by caching the hosts&amp;#039;s &amp;quot;hostkey&amp;quot; in your  &amp;lt;tt&amp;gt;~/.ssh/known_hosts&amp;lt;/tt&amp;gt; file. At times, a hostkey may be changed legitimately; when this happens, you may see such a message. It&amp;#039;s a good idea to verify this with us, you may be able to check the fingerprint yourself by logging into another sharcnet system and running:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub &lt;br /&gt;
&lt;br /&gt;
If the fingerprint is OK, the normal way to fix the problem is to simply remove the old hostkey from your &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. On machines with commandline SSH, you can do this with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -R thehostname&lt;br /&gt;
&lt;br /&gt;
You can use your choice of editor if you&amp;#039;re comfortable doing so (it&amp;#039;s a plain text file, but has long lines). On a unix-compatible machine, you can also use the following very small script (Substitute the line(s) printed in the warning message illustrated above for &amp;#039;42&amp;#039; here.):&lt;br /&gt;
&lt;br /&gt;
 perl -pi -e &amp;#039;undef $_ if (++$line == 42)&amp;#039; ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
Another solution is brute-force: remove the whole &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. This throws away any authentication checking, and afterwards, your first connection to any machine will prompt you to accept a newly discovered host key.&lt;br /&gt;
&lt;br /&gt;
=== Ssh works, but scp doesn&amp;#039;t! ===&lt;br /&gt;
&lt;br /&gt;
If you can &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; to a cluster successfully, but cannot &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to to it, the problem is likely that your login scripts print unexpected messages which confuse &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; is based on the same &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, but assumes that the connection is &amp;quot;clean&amp;quot;: that is, that it does not produce any un-asked-for content. If you have something like:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; will be confused by the salutation. To avoid this, simply ensure that the message is only printed on an interactive login:&lt;br /&gt;
&lt;br /&gt;
 if [ -t 0 ]; then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
or in csh/tcsh syntax:&lt;br /&gt;
&lt;br /&gt;
 if ( -t 0 ) then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
=== How do I edit my program on a cluster? ===&lt;br /&gt;
&lt;br /&gt;
We provide a variety of editors, such as the traditional text-mode &amp;lt;tt&amp;gt;emacs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; (vim), as well as a simpler one called &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;. If you have X on your desktop (and tunneled through SSH), you can use the GUI versions (&amp;lt;tt&amp;gt;xemacs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If your desktop supports FUSE, it&amp;#039;s very convenient to simply mount your home tree like this:&lt;br /&gt;
 mkdir sharcnet&lt;br /&gt;
 sshfs graham.alliancecan.ca: sharcnet&lt;br /&gt;
you can then use any local editor of your choice.&lt;br /&gt;
&lt;br /&gt;
If you run emacs on your desktop, you can also edit a remote file from within your local emacs client using [http://www.gnu.org/software/tramp Tramp], opening and saving a file as /username@cluster.computecanada.ca:path/file.&lt;br /&gt;
&lt;br /&gt;
== Research at SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== I have a research project I would like to collaborate on with SHARCNET, who should I talk to? ===&lt;br /&gt;
&lt;br /&gt;
You may contact [mailto:barb@sharcnet.ca SHARCNET head office] or contact members of the [https://www.sharcnet.ca/my/contact/directory#techteam SHARCNET technical staff].&lt;br /&gt;
&lt;br /&gt;
=== How can I contribute compute resources to SHARCNET so that other researchers can share it? ===&lt;br /&gt;
&lt;br /&gt;
Most people&amp;#039;s research is &amp;quot;bursty&amp;quot; - there are usually sparse periods of time when some computation is urgently needed, and other periods when there is less demand. One problem with this is that if you purchase the equipment you need to meet your &amp;quot;burst&amp;quot; needs, it&amp;#039;ll probably sit, underutilized, during other times.&lt;br /&gt;
&lt;br /&gt;
An alternative is to donate control of this equipment to SHARCNET, and let us arrange for other users to use it when you are not. We prefer to be involved in the selection and configuration of such equipment. Our promise to contributors is that as much as possible, they should obtain as much benefit from the cluster as if it were not shared. Owners get preferential access. Naturally, owners are also able to burst to higher peak usage, since their equipment has been pooled with other contributions. (Technically, SHARCNET cannot itself own such equipment — it remains owned by the institution in question, and will be returned to the contributor upon request.) If you think this model will also work for you and you would like to contribute your computational resource to help the research community at SHARCNET, you can contact us for such arrangement.&lt;br /&gt;
&lt;br /&gt;
=== I do not know much about computation, nor is it my research interest. But I am interested in getting my research done faster with the help of the high performance computing technology. In other words, I do not care about the process and mechanism, but only the final results. Can SHARCNET provide this type of help? ===&lt;br /&gt;
&lt;br /&gt;
We will be happy to bring the technology of high performance computing to you to accelerate your research, if at all possible. If you would like to discuss your plan with us, please feel free to contact our [https://www.sharcnet.ca/my/contact/directory#techteam high performance computing specialists]. They will be happy to listen to your needs and are ready to provide appropriate suggestions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET participates in the Alliance national RAC (Resource Allocation Competition) and provides a continual competition for groups that require more than the default level of access to our resources.  Please see [[Dedicated Resources]] for further information.&lt;br /&gt;
&lt;br /&gt;
=== I heard SHARCNET offers fellowships, where can I get more information? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET no longer actively runs a fellowship program.  You may find information regarding past fellowships and other dedicated resource opportunities on the [https://www.sharcnet.ca/my/research/fellowships Research Fellowships page] of the web portal.&lt;br /&gt;
&lt;br /&gt;
=== I would like to do some research at SHARCNET as a visiting scholar, how should I apply? ===&lt;br /&gt;
&lt;br /&gt;
In general, you will need to find a hosting department or a person affiliated with one of the SHARCNET institutions. You may also [http://www.sharcnet.ca/my/contact contact us] directly for more specific information.&lt;br /&gt;
&lt;br /&gt;
=== I would like to send my students to SHARCNET to do some work for me. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
See above.&lt;br /&gt;
&lt;br /&gt;
== Contacting SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for research, academic exchanges, and technical issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for business development, education and other issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact a specific staff member at SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
See [https://www.sharcnet.ca/my/contact/directory staff directory] for contact information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Acknowledge SHARCNET in Publications ==&lt;br /&gt;
&lt;br /&gt;
=== How do I acknowledge SHARCNET in my publications? ===&lt;br /&gt;
&lt;br /&gt;
We recommend one cite the following:&lt;br /&gt;
&lt;br /&gt;
 This work was made possible by the facilities of the Shared Hierarchical &lt;br /&gt;
 Academic Research Computing Network (SHARCNET:www.sharcnet.ca) and Digital Research Alliance of Canada (https://alliancecan.ca/en).&lt;br /&gt;
&lt;br /&gt;
=== I&amp;#039;ve seen different spellings of the name, what is the standard spelling of SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
We suggest the spelling SHARCNET, all in upper case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What types of research programs / support are provided to the research community? ==&lt;br /&gt;
&lt;br /&gt;
Our overall intent is to provide support that can both respond to the range of needs that the user community presents and help to increase the sophistication of the community and enable new and larger-in-scope applications making use of SHARCNET&amp;#039;s HPC facilities. The range of support can perhaps best be understood in terms of a pyramid:&lt;br /&gt;
&lt;br /&gt;
=== Level 1 ===&lt;br /&gt;
&lt;br /&gt;
At the apex of the pyramid, SHARCNET supports a small number of projects with dedicated programmer support. The intent is to enable projects that will have a lasting impact and may lead to a &amp;quot;step change&amp;quot; in the way research is done at SHARCNET. Inter-disciplinary and inter-institutional projects are particularly welcomed. For the latest information about the program, including application guidelines, please see the  [https://www.sharcnet.ca/my/research/programming Programming Competition] page in our web portal.&lt;br /&gt;
&lt;br /&gt;
=== Level 2 ===&lt;br /&gt;
&lt;br /&gt;
The middle layers of support are provided through a number of initiatives.&lt;br /&gt;
&lt;br /&gt;
These include:&lt;br /&gt;
* Programming support of more modest duration (several days to one month engagement, usually part time)&lt;br /&gt;
* Training on a variety of topics through [https://helpwiki.sharcnet.ca/wiki/Training workshops, seminars and online training materials]&lt;br /&gt;
* Consultation. This may include user-initiated interactions on particular programs, algorithms, techniques, debugging, optimization etc., as well as unsolicited help to ensure effective use of SHARCNET systems&lt;br /&gt;
* Site Leaders play an important role in working with the community to help researchers connect with SHARCNET staff and to obtain appropriate help and support.&lt;br /&gt;
&lt;br /&gt;
=== Level 3 ===&lt;br /&gt;
&lt;br /&gt;
The base level of the pyramid handles the very large number of small requests that are essential to keeping the user community working effectively with the infrastructure on a day-to-day basis. Several of these can be answered by this FAQ; many of the issues are presented through the [https://www.sharcnet.ca/help/index.php/Knowledge_Base#Compute_Canada_Problem_Ticket_System ticketing system]. The support is largely problem oriented with each problem being time limited.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=948</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=948"/>
		<updated>2024-09-17T17:47:56Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* Does SHARCNET provide any training on programming and using the systems? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Sharcnet_logo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== About SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== What is SHARCNET? ===&lt;br /&gt;
SHARCNET stands for Shared Hierarchical Academic Research Computing Network. Established in 2000, SHARCNET is the largest high performance computing consortium in Canada, involving 19 universities and colleges across southern, central and northern Ontario.&lt;br /&gt;
&lt;br /&gt;
SHARCNET is a member consortium in the [https://alliancecan.ca/en Digital Research Alliance of Canada (Alliance)]  national HPC platform.&lt;br /&gt;
&lt;br /&gt;
=== Where is SHARCNET? ===&lt;br /&gt;
The [http://www.sharcnet.ca/my/contact main office] of SHARCNET is located in the Western Science Centre at [http://www.uwo.ca/ The University of Western Ontario].&lt;br /&gt;
&lt;br /&gt;
=== What does SHARCNET have? ===&lt;br /&gt;
The primary SHARCNET compute system is [https://docs.computecanada.ca/wiki/Graham Graham heterogeneous cluster] located at the University of Waterloo.  It is named after Wes Graham, the first director of the Computing Centre at Waterloo.  It consists of 41,548 cores and 520 GPU devices, spread across 1,185 nodes of different configurations.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with SHARCNET? ===&lt;br /&gt;
If you have a program that takes months to run on your PC, you could probably run it within a few hours using hundreds of processors on SHARCNET / Alliance, provided your program is inherently parallelisable. If you have hundreds or thousands of test cases to run through on your PC or computers in your lab, then with hundreds of processors running those cases independently will significantly reduce your test cycles.&lt;br /&gt;
&lt;br /&gt;
=== Who is running SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
The daily operation and development of SHARCNET computational facilities is managed by a group of highly qualified system administrators. In addition, we have a team of high performance technical computing consultants, who are responsible for technical support on libraries, programming and application analysis.&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET? ===&lt;br /&gt;
For technical inquiries, you may send E-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] or [mailto:help@sharcnet.ca help@sharcnet.ca], or [https://www.sharcnet.ca/my/contact/directory#techteam contact your local system administrator or HPC specialist]. For general inquiries, you may contact the SHARCNET [http://www.sharcnet.ca/my/contact main office].&lt;br /&gt;
&lt;br /&gt;
== Getting an Account with SHARCNET and Related Issues ==&lt;br /&gt;
&lt;br /&gt;
To use SHARCNET (and any other national facilities in Alliance) one has to [https://www.alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account apply for an Alliance account].&lt;br /&gt;
&lt;br /&gt;
== Getting Help ==&lt;br /&gt;
&lt;br /&gt;
=== I have encountered a problem while using an Alliance /SHARCNET system and need help, who should I talk to? ===&lt;br /&gt;
We encourage you to use the problem ticketing system (described in detail [[FAQ#Alliance_Problem_Ticket_System|below]]) .  This is the most efficient way of reporting a problem.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the [https://www.sharcnet.ca/my/contact/directory directory] page.&lt;br /&gt;
&lt;br /&gt;
=== How long should I expect to wait for support? ===&lt;br /&gt;
Unfortunately Alliance/SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week.  User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .  &lt;br /&gt;
&lt;br /&gt;
Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.  &lt;br /&gt;
&lt;br /&gt;
=== Alliance Problem Ticket System ===&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;problem ticket system&amp;quot;? ====&lt;br /&gt;
&lt;br /&gt;
This is a system that allows anyone with an Alliance account to start a persistent email thread that is referred to as a &amp;quot;problem ticket&amp;quot;.    When a user submits a new ticket it will be brought to the attention of an appropriate and available Alliance/SHARCNET staff member for resolution.  &lt;br /&gt;
&lt;br /&gt;
You interact with the ticket system entirely via email.&lt;br /&gt;
&lt;br /&gt;
==== What do I need to specify in a ticket ? ====&lt;br /&gt;
&lt;br /&gt;
To help us address your question faster, please try to do the following when submitting a ticket:&lt;br /&gt;
&lt;br /&gt;
#specify which of our systems is involved &lt;br /&gt;
#if the problem pertains to a job, then report the &amp;lt;u&amp;gt;jobid&amp;lt;/u&amp;gt; associated with the job; this is an integer that is returned by the scheduler when you submit the job&lt;br /&gt;
#report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem; if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem&lt;br /&gt;
#if you&amp;#039;d like for a particular staff member to be aware of the ticket, mention them&lt;br /&gt;
&lt;br /&gt;
==== How do I submit a ticket? ====&lt;br /&gt;
&lt;br /&gt;
In general, you can submit a new ticket by emailing  [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca]  with the email address associated with your Alliance account.  If you are using another email address, please provide your full name, your Alliance default username (if available) and your university or institution.&lt;br /&gt;
&lt;br /&gt;
If you like, you can also target your inquiry more specifically, by using the following addresses to submit your ticket:&lt;br /&gt;
&lt;br /&gt;
* [mailto:help@sharcnet.ca help@sharcnet.ca] - questions specific to SHARCNET, for example relating to contributed SHARCNET systems&lt;br /&gt;
* [mailto:globus@tech.alliancecan.ca globus@tech.alliancecan.ca] -- Questions about [[Globus]] file transfer services&lt;br /&gt;
* [mailto:cloud@tech.alliancecan.ca cloud@tech.alliancecan.ca] -- Questions about using Alliance cloud resources&lt;br /&gt;
* [mailto:accounts@tech.alliancecan.ca accounts@tech.alliancecan.ca] -- Questions about Alliance accounts&lt;br /&gt;
* [mailto:renewals@tech.alliancecan.ca renewals@tech.alliancecan.ca] -- Questions about Alliance account renewals&lt;br /&gt;
&lt;br /&gt;
=== I am new to parallel programming, can you help me get started with my project? ===&lt;br /&gt;
Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research. If your programming project would involve a significant staff time, you should consider applying for Dedicated Programming support. (We run the competition annually; see https://www.sharcnet.ca/my/research/programming).&lt;br /&gt;
&lt;br /&gt;
=== Can you install a package on a cluster for me? ===&lt;br /&gt;
Certainly.  We suggest you make the request by sending e-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] with the specific request.&lt;br /&gt;
&lt;br /&gt;
=== I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that? ===&lt;br /&gt;
If you tell us what you want, we may be able to help you out.&lt;br /&gt;
&lt;br /&gt;
=== Does SHARCNET provide any training on programming and using the systems? ===&lt;br /&gt;
&lt;br /&gt;
Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every summer (usually late May to early June), SHARCNET holds [https://helpwiki.sharcnet.ca/wiki/Summer_Schools an annual HPC Summer School] with a variety of in-depth, hands-on workshops. &lt;br /&gt;
&lt;br /&gt;
SHARCNET also offers a series of online seminars (so-called &amp;quot;General interest webinars&amp;quot;), typically delivered every second Wednesday at lunch time.  These are announced via the SHARCNET events mailing list and one can see the schedule at the [https://www.sharcnet.ca/my/news/calendar SHARCNET event calendar].  Past seminars are recorded and posted on [http://youtube.sharcnet.ca our youtube channel]. A full listing of the past webinars is available on the [https://helpwiki.sharcnet.ca/wiki/Online_Seminars Online Seminars] page.&lt;br /&gt;
&lt;br /&gt;
=== Attending SHARCNET Webinars ===&lt;br /&gt;
{{:Attending SHARCNET Webinars}}&lt;br /&gt;
&lt;br /&gt;
== Logging in to Systems, Transferring and Editing Files ==&lt;br /&gt;
&lt;br /&gt;
=== How do I login to SHARCNET? ===&lt;br /&gt;
You access the SHARCNET clusters using ssh.  For Graham and other national systems Alliance credentials are required.  For the remaining (&amp;quot;Legacy&amp;quot;) systems, you will require SHARCNET credentials (submit a ticket to help@sharcnet.ca if you have questions).&lt;br /&gt;
&lt;br /&gt;
====Unix/Linux/OS X====&lt;br /&gt;
To login to a system, you need to use an [http://www.openssh.com/ Secure Shell (SSH)] connection. If you are logging in from a UNIX-based machine, make sure it has an SSH client (ssh) installed (this is almost always the case on UNIX/Linux/OS X). If you have the same login name on both your local system and SHARCNET, and you want to login to, say, &amp;lt;tt&amp;gt;graham&amp;lt;/tt&amp;gt;, you may use the command:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If your Alliance username is different from the username on your local systems, then you may use either of the following forms:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca -l username&lt;br /&gt;
 ssh username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If you want to establish an X window connection so that you can use graphics applications such as &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ddt&amp;lt;/tt&amp;gt;, you can add a &amp;lt;tt&amp;gt;-Y&amp;lt;/tt&amp;gt; to the command:&lt;br /&gt;
&lt;br /&gt;
 ssh -Y username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
This will automatically set the X DISPLAY variable when you login.&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
If you are logging from a computer running Windows and need some pointers we recommend consulting our [[SSH]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between Login Nodes and Compute Nodes? ===&lt;br /&gt;
====Login Nodes====&lt;br /&gt;
&lt;br /&gt;
Most of our clusters have distinct &amp;#039;&amp;#039;login nodes&amp;#039;&amp;#039; associated with them that you are automatically redirected to when you login to the cluster (some systems are directly logged into, eg. SMPs and smaller specialty systems).  You can use these to do most of your work preparing for jobs (compiling, editing configuration files) and other low-intensity tasks like moving and copying files.  &lt;br /&gt;
&lt;br /&gt;
You can also use them for other quick tasks, like simple post-processing, but any significant work should be submitted as a job to the compute nodes.  On most login nodes, each process is limited to 1 cpu-hour; this will be noticable if you perform anything compute-intensive, and can affect IO-oriented activity as well (such as very large &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; operations.)&lt;br /&gt;
&lt;br /&gt;
=== How can I suspend and resume my session? ===&lt;br /&gt;
&lt;br /&gt;
The program screen can start persistent terminals from which you can detach and reattach.  The simplest use of screen is&lt;br /&gt;
&lt;br /&gt;
 screen -dR&lt;br /&gt;
&lt;br /&gt;
which will either reattach you to any existing session or create a new one if one doesn&amp;#039;t exist.  To terminate the current screen session, type &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;.  To detach manually (you are automatically detached if the connection is lost) press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;d&amp;#039;&amp;#039;, you can the resume later as above (ideal for running background jobs).  Note that &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; is screen&amp;#039;s escape sequence, so you have to do &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;a&amp;#039;&amp;#039; to get the regular effect of pressing &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; inside a screen session (e.g., moving the cursor to the start of the line in a shell).&lt;br /&gt;
&lt;br /&gt;
For a list of other &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; key sequences, press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;?&amp;#039;&amp;#039;.  For further details and  command line options, see the [http://www.gnu.org/software/screen/manual/screen.html screen manual] (or type &amp;lt;tt&amp;gt;man screen&amp;lt;/tt&amp;gt; on any of the clusters).&lt;br /&gt;
&lt;br /&gt;
Other notes:&lt;br /&gt;
* If you want to create additional &amp;quot;text windows&amp;quot;, use Ctrl-A Ctrl-C. Remember to type &amp;quot;exit&amp;quot; to close it. &lt;br /&gt;
* To switch to a &amp;quot;text window&amp;quot; with a certain number, use Ctrl-A # (where # is 0 to 9).&lt;br /&gt;
* To see a list of window numbers use Ctrl-A w&lt;br /&gt;
* To be presented a list of windows and select one to use, use Ctrl-A &amp;quot; (This is handy if you&amp;#039;ve made too many windows.)&lt;br /&gt;
* If the program running in a screen &amp;quot;text window&amp;quot; refuses to die (i.e., it needs to be killed) you can use Ctrl-A K&lt;br /&gt;
* For brief help on keystrokes use Ctrl-A ?&lt;br /&gt;
* For extensive help, run &amp;quot;man screen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What operating systems are supported? ===&lt;br /&gt;
UNIX in general. Currently, Linux is the only operating system used within SHARCNET.&lt;br /&gt;
&lt;br /&gt;
=== What makes a cluster different than my UNIX workstation? ===&lt;br /&gt;
&lt;br /&gt;
If you are familiar with UNIX, then using a cluster is not much different from using a workstation. When you login to a cluster, you in fact only log in to one of the cluster nodes. In most cases, each cluster node is a physical machine, usually a server class machine, with one or several CPUs, that is more or less the same as a workstation you are familiar with. The difference is that these nodes are interconnected with special interconnect devices and the way you run your program is slightly different. Across SHARCNET clusters, you are not expected to run your program interactively. You will have to run your program through a queueing system. That also means where and when your program gets to run is not decided by you, but by the queueing system.&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Those primary programming languages such as C, C++, Fortran, and Python are supported. Other languages, such as Java, Pascal and Ada, are also supported, but with limited technical support from us. &lt;br /&gt;
&lt;br /&gt;
=== How do I organize my files? ===&lt;br /&gt;
[https://docs.computecanada.ca/wiki/Storage_and_file_management#Storage_types Main file systems on our National systems.]&lt;br /&gt;
&lt;br /&gt;
==== How do I transfer files/directories to/from or between cluster? ====&lt;br /&gt;
&lt;br /&gt;
=====Unix/Linux=====&lt;br /&gt;
To transfer files to and from a cluster on a UNIX machine, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt;. For example, if you want to upload file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; to cluster graham from your machine &amp;lt;tt&amp;gt;myhost&amp;lt;/tt&amp;gt;, use the following command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp foo.f graham.computecanada.ca:&lt;br /&gt;
&lt;br /&gt;
assuming that your machine has &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; installed. If you want to transfer a file from Windows or Mac, you need have &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt; for Windows or Mac installed.&lt;br /&gt;
&lt;br /&gt;
If you transfer file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; between Alliance clusters, say from your home directory on cedar to your home directory on graham, simply use the following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp foo.f graham:/home/username/&lt;br /&gt;
&lt;br /&gt;
If you are transferring files between a UNIX machine and a cluster, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; command with &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; option. For instance, if you want to download the subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; in the directory &amp;lt;tt&amp;gt;project&amp;lt;/tt&amp;gt; in your home directory on graham to your local UNIX machine, on your local machine, use command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp -rp graham.sharcnet.ca:project/foo .&lt;br /&gt;
&lt;br /&gt;
Similarly, you can transfer the subdirectory between Alliance clusters. The following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp -r graham:/home/username/scratch/foo .&lt;br /&gt;
&lt;br /&gt;
will download subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; from your scratch directory on graham to your home directory on cedar (note that the prompt indicates you are currently logged on to cedar).&lt;br /&gt;
&lt;br /&gt;
The use of &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; option above will preserve the time stamp of each file. For Windows and Mac, you need to check the documentation of &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; for features. &amp;#039;&amp;#039;&amp;#039;Do not use -p switch with scp or cp commands on clusters, when the destination is your project space&amp;#039;&amp;#039;&amp;#039;, or you might run into the infamous [https://docs.computecanada.ca/wiki/Frequently_Asked_Questions#Disk_quota_exceeded_error_on_.2Fproject_filesystems Disk quota exceeded issue].&lt;br /&gt;
&lt;br /&gt;
You may also &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; and compress the entire directory and then use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to save bandwidth. In the above example, first you login to graham, then do the following&lt;br /&gt;
&lt;br /&gt;
 [username@gra-login2:~]$ cd project&lt;br /&gt;
 [username@gra-login2:~]$ tar -cvf foo.tar foo&lt;br /&gt;
 [username@gra-login2:~]$ gzip foo.tar&lt;br /&gt;
&lt;br /&gt;
Then on your local machine myhost, use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to copy the tar file&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp graham.computecanada.ca:project/foo.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Note for most Linux distributions, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; has an option &amp;lt;tt&amp;gt;-z&amp;lt;/tt&amp;gt; that will compress the &amp;lt;tt&amp;gt;.tar&amp;lt;/tt&amp;gt; file using &amp;lt;tt&amp;gt;gzip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Windows=====&lt;br /&gt;
You may read the instructions on using an ssh client. [[https://helpwiki.sharcnet.ca/wiki/SSH#Transfering_files_.28Secure_File_Transfer_Client.29]]&lt;br /&gt;
&lt;br /&gt;
====How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect?====&lt;br /&gt;
&lt;br /&gt;
In general, most users should be fine using &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to transfer data to and from SHARCNET systems.  If you need to transfer a lot of files &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; is recommended to ensure that you do not need to restart the transfer from scratch should there be a connection failure.  Although you can use &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to any cluster&amp;#039;s login node(s), it is often best to use gra-dtn1.computecanada.ca - it is dedicated to data transfer. &lt;br /&gt;
&lt;br /&gt;
In general one should expect the following transfer rates with &amp;#039;&amp;#039;scp&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* If you are connecting to SHARCNET through a Research/Education network site (ORION, CANARIE, Internet2) and are on a fast local network (this is the case for most users connecting from academic institutions) then you should be able to attain sustained transfer speeds in excess of 10MB/s.  If your path is all gigabit or better, you should be able to reach rates above 50 MB/s.&lt;br /&gt;
* If you are transferring data over the wider internet, you will not be able to attain these speeds, as all traffic that does not enter/exit SHARCNET via the R&amp;amp;E net is restricted to a limited-bandwidth commercial feed. In this case one will typically see rates on the order of 1MB/s or less.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that filesystems and networks are  shared resources and suffer from contention; if they are busy the above rates may not be attainable&lt;br /&gt;
&lt;br /&gt;
For transferring large amounts of data (many gigabytes) the best approach is to use the online tool [https://docs.computecanada.ca/wiki/Transferring_data#Globus_transfer Globus].&lt;br /&gt;
&lt;br /&gt;
==== How do I access the same file from different subdirectories on the same cluster ? ====&lt;br /&gt;
&lt;br /&gt;
You should not need copy large files on the same cluster (e.g. from one user to another&lt;br /&gt;
or using the same file in different subdirectories).  Instead of using&lt;br /&gt;
scp you might consider issuing a &amp;quot;soft link&amp;quot; command. Assume that you need access&lt;br /&gt;
to the file large_file1 in subdirectory /home/user1/subdir1 and you need it to be in your&lt;br /&gt;
subdirectory /home/my_account/my_dir from where you will invoke it under the name&lt;br /&gt;
my_large_file1.  Then go to that directory and type:&lt;br /&gt;
&lt;br /&gt;
 ln -s /home/user1/subdir1/large_file1    my_large_file1&lt;br /&gt;
&lt;br /&gt;
Another example, assume that in subdirectory /home/my_account/PROJ1 you have several&lt;br /&gt;
subdirectories called CASE1, CASE2, ...  In each subdirectory CASEn you have a slightly&lt;br /&gt;
different code but all of them process the same data file called test_data. Rather than&lt;br /&gt;
copying the test_data file into each CASEn subdirectory, place test_data above i.e.&lt;br /&gt;
in /home/my_account/PROJ1 and then in each CASEn subdirectory issue following &amp;quot;soft link&amp;quot;&lt;br /&gt;
command:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../test_data  test_data&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;soft links&amp;quot; can be removed by using the rm command. For example, to remove the soft link from&lt;br /&gt;
/home/my_account/PROJ1/CASE2 type following command from this subdirectory:&lt;br /&gt;
&lt;br /&gt;
 rm -rf test_data&lt;br /&gt;
&lt;br /&gt;
Typing above command from subdirectory /home/my_account/PROJ1 would remove the actual file and then&lt;br /&gt;
none of the CASEn subdirectories would have access to it.&lt;br /&gt;
&lt;br /&gt;
==== How are files deleted from the /home/userid/scratch filesystems? ====&lt;br /&gt;
&lt;br /&gt;
All files on /home/userid/scratch that are over 2 months old (not old in the common sense, please see below) are automatically deleted. Data needed for long term storage and reference should be kept in either /project, /nearline, or other archival storage areas. The scratch filesystem is checked at the end of the month for files which will be candidates for expiry on the 15th of the following month. On the first day of the month, a login message is posted and a notification e-mail is sent to all users who have at least one file which is a candidate for purging and containing the location of a file which lists all the candidates for purging.  On the 12th of the month, a second scan is run to check for files that will still expire on the 15th, and again, users with candidates for expiry are sent a second warning email.  Lastly, on the 15th, all files which are due for expiry are removed.&lt;br /&gt;
&lt;br /&gt;
An unconventional aspect of this system is that it does not determine the age of a file based on the file&amp;#039;s attributes, e.g., the standard dates reported by the &amp;lt;i&amp;gt;stat&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;find&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;ls&amp;lt;/i&amp;gt;, etc. commands.  (This is known as the &amp;quot;mtime&amp;quot; of the file, for &amp;quot;modification time&amp;quot;, and is frequently inaccurate.) The age of a file is determined based on whether or not its data contents (i.e., the information stored in the file) have changed or been accessed, and this age is stored externally to the file.  Only files where the contents have changed or accessed will have their age counter &amp;quot;reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A list of your candidate files for expiry can be found in /home/scratch_to_delete/$USER  (where $USER is your userid).&lt;br /&gt;
&lt;br /&gt;
===== How do I check the age of a file =====&lt;br /&gt;
We define a file&amp;#039;s age as the most recent of:&lt;br /&gt;
&lt;br /&gt;
 *the access time (atime) and&lt;br /&gt;
 *the change time (ctime)&lt;br /&gt;
&lt;br /&gt;
You can find the ctime of a file using&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lc &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while the atime can be obtained with the command&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lu &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do not use the modify time (mtime) of the file because it can be modified by the user or by other programs to display incorrect information.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, simple use of the atime property would be sufficient, as it is updated by the system in sync with the ctime. However, userspace programs are able to alter atime, potentially to times in the past, which could result in early expiration of a file. The use of ctime as a fallback guards against this undesirable behaviour.&lt;br /&gt;
&lt;br /&gt;
It is also your responsibility to manage your stored data: most of the filesystems are not intended to provide an indefinite archiving service so when a given file or directory is no longer needed, you need to move it to a more appropriate filesystem which may well mean your personal workstation or some other storage system under your control. Moving significant amounts of data between your workstation and an Alliance system or between two Alliance systems should generally be done using Globus.&lt;br /&gt;
&lt;br /&gt;
==== How to archive my data? ====&lt;br /&gt;
&lt;br /&gt;
===== Use tar to archive files and directories =====&lt;br /&gt;
&lt;br /&gt;
The primary archiving utility on all Linux and Unix-like systems is the [https://www.gnu.org/software/tar/manual/tar.html tar] command. It will bundle a bunch of files or directories together and generate a single file, called an &amp;#039;&amp;#039;archive file&amp;#039;&amp;#039; or &amp;#039;&amp;#039;tar-file&amp;#039;&amp;#039;. By convention an archive file has &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; as the file name extension. When you archive a directory with &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, it will, by default, include all the files and sub-directories contained within it, and sub-sub-directories contained in those, and so on. So the command &amp;lt;code&amp;gt;tar --create --file project1.tar project1&amp;lt;/code&amp;gt; will pack all the content of directory &amp;#039;&amp;#039;project1&amp;#039;&amp;#039; into the file &amp;#039;&amp;#039;project1.tar&amp;#039;&amp;#039;. The original directory will remain unchanged, so this may double the amount of disk space occupied!&lt;br /&gt;
&lt;br /&gt;
You can extract files from an archive using the same command with a different option:&amp;lt;code&amp;gt;tar --extract --file project1.tar&amp;lt;/code&amp;gt;. If there is no directory with the original name, it will be created. If a directory of that name exists and contains files of the same names as in the archive file, they will be overwritten. Another option can be added to specify the destination directory where to extract the archive&amp;#039;s content.   &lt;br /&gt;
&lt;br /&gt;
===== Compress and uncompress tar files =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; archiving utility can compress an archive file at the same time it creates it. There are a number of compression methods to choose from. We recommend either &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;, which can be used as follows:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ tar --create --xz --file project1.tar.xz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --xz --file project1.tar.xz&lt;br /&gt;
 [user_name@localhost]$ tar --create --gzip --file project1.tar.gz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --gzip --file project1.tar.gz&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;code&amp;gt;--xz&amp;lt;/code&amp;gt; will produce a smaller compressed file (a &amp;quot;better compression ratio&amp;quot;) but takes longer and uses more RAM while working. &amp;lt;code&amp;gt;--gzip&amp;lt;/code&amp;gt; does not typically compress as small, but may be used if you encounter difficulties due to insufficient memory or excessive run time during &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt;. A third option, &amp;lt;code&amp;gt;--bzip2&amp;lt;/code&amp;gt;, is also available, that typically does not compress as small as &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; but takes longer than &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt; first without compression and then use the commands &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; in a separate step, although there is rarely a reason to do so. Similarly, you can run &amp;lt;code&amp;gt;xz -d&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip -d&amp;lt;/code&amp;gt; to decompress an archive file before running &amp;lt;code&amp;gt;tar --extract&amp;lt;/code&amp;gt;, but again there is rarely a reason to do so.&lt;br /&gt;
&lt;br /&gt;
The commands &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; can be used to compress any file, not just archive files:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ gzip bigfile&lt;br /&gt;
 [user_name@localhost]$ xz bigfile&lt;br /&gt;
&lt;br /&gt;
These commands will produce the files &amp;lt;code&amp;gt;bigfile.gz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigfile.xz&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
=====Archival Storage=====&lt;br /&gt;
&lt;br /&gt;
On Graham, files copied to ~/nearline will be subsequently moved to offline (tape-based) storage. See [https://docs.computecanada.ca/wiki/Using_nearline_storage this link] for more details.&lt;br /&gt;
&lt;br /&gt;
==== How can I check the hidden files in directory? ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;.&amp;quot; at the beginning of the name means that the file is &amp;quot;hidden&amp;quot;. You have to use the -a option with ls to see it. I.e. &amp;lt;code&amp;gt;ls -a &amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
If you want to display only the hidden files then type:&lt;br /&gt;
 ls -d .*&lt;br /&gt;
&lt;br /&gt;
Note: there is an alias which is loaded from /etc/bashrc (see your .bashrc file). The alias is defined by alias &amp;lt;code&amp;gt; l.=&amp;#039;ls -d .* --color=auto&amp;#039; &amp;lt;/code&amp;gt; and if you type:&lt;br /&gt;
 l.&lt;br /&gt;
you will also display only the hidden files.&lt;br /&gt;
&lt;br /&gt;
==== How can I count the number of files in a directory? ====&lt;br /&gt;
&lt;br /&gt;
One can use the following command to count the number of files in a directory (in this example, your /work directory):&lt;br /&gt;
&lt;br /&gt;
 find /home/$USER -type f   | wc -l&lt;br /&gt;
&lt;br /&gt;
It is always a good idea to [[Knowledge_Base#How_to_archive_my_data.3F|archive]] and/or compress files that are no longer needed on the filesystem (see [https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_to_organize_a_large_number_of_files.3F below]).  This helps minimize one&amp;#039;s footprint on the filesystem and as such the impact they have on other users of the shared resource.&lt;br /&gt;
&lt;br /&gt;
==== How to organize a large number of files? ====&lt;br /&gt;
&lt;br /&gt;
With parallel cluster filesystems, you will get best I/O performance writing data to a small number of large files. Since all metadata operations on each of our parallel filesystems are handled by a single file server, depending on how many files are being accessed the server can become overwhelmed leading to poor overall I/O performance for all users. If your workflow involves storing data in a large number of files, it is best to pack these files into a small number of larger archives, e.g. using tar command&lt;br /&gt;
&lt;br /&gt;
 tar cvf archiveFile.tar directoryToArchive&lt;br /&gt;
&lt;br /&gt;
For better performance with many files inside your archive, we recommend to use DAR (Disk ARchive utility), which is a disk analog of tar (Tape ARchive).  Dar can extract files from anywhere in the archive much faster than tar. The dar command is available by default on sharcnet systems. It can be used to pack files into a dar archive by doing something like: &lt;br /&gt;
&lt;br /&gt;
 dar -s 1G -w -c archiveFile -g directoryToArchive&lt;br /&gt;
&lt;br /&gt;
In this example we split the archive into 1GB chunks, and the archive files will be named archiveFile.1.dar, archiveFile.2.dar, and so on. To list the contents of the archive, you can type:&lt;br /&gt;
&lt;br /&gt;
 dar -l archiveFile&lt;br /&gt;
&lt;br /&gt;
To temporarily extract files for post-processing into current directory, you would type:&lt;br /&gt;
&lt;br /&gt;
 dar -R . -O -x archiveFile -v -g pathToYourFile/fileToExtract&lt;br /&gt;
&lt;br /&gt;
=== I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host ===&lt;br /&gt;
&lt;br /&gt;
The most likely cause of this behaviour is repeated failed login attempts.  Part of our security policies involves blocking the IP address of machines that attempt multiple logins with incorrect passwords over a short period of time---many brute-force attacks on systems do exactly this: looking for poor passwords, badly configured accounts, etc.  Unfortunately, it isn&amp;#039;t uncommon for a user to forget their password and make repeated login attempts with incorrect passwords and end up with that machine blacklisted and unable to connect at all.&lt;br /&gt;
&lt;br /&gt;
A temporary solution is simply to attempt to login from another machine.  If you have access to another machine at your site, you can shell to that machine first, and then shell to the SHARCNET system (as that machine&amp;#039;s IP shouldn&amp;#039;t be blacklisted).  In order to have your machine unblocked, you will have to email to [mailto:support@computecanada.ca support@computecanada.ca] as a system administrator must manually intervene in order to fix it.&lt;br /&gt;
&lt;br /&gt;
NOTE: there are other situations that can produce this message, however they are rarer and more transient.  If you are unable to log in from one machine, but can from another, it is most likely the IP blacklisting that is the problem and the above will provide a temporary work-around while your problem ticket is processed.&lt;br /&gt;
&lt;br /&gt;
=== I am unable to ssh/scp from SHARCNET to my local computer ===&lt;br /&gt;
&lt;br /&gt;
Most campus networks are behind some sort of firewall.  If you can ssh out to SHARCNET, but cannot establish a connection in the other direction, then you are probably behind a firewall and should speak with your local system administrator or campus IT department to determine if there are any exceptions or workarounds in place.&lt;br /&gt;
&lt;br /&gt;
=== SSH tells me SOMEONE IS DOING SOMETHING NASTY!? ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please first read the following:&lt;br /&gt;
&lt;br /&gt;
https://docs.computecanada.ca/wiki/SSH_security_improvements&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suppose you attempt to login to SHARCNET, but instead get an alarming message like this:&lt;br /&gt;
&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that the RSA host key has just been changed.&lt;br /&gt;
 The fingerprint for the RSA key sent by the remote host is&lt;br /&gt;
 fe:65:ab:89:9a:23:34:5a:50:1e:05:d6:bf:ec:da:67.&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending key in /home/user/.ssh/known_hosts:42&lt;br /&gt;
 RSA host key for requin has changed and you have requested strict checking.&lt;br /&gt;
 Host key verification failed. &lt;br /&gt;
&lt;br /&gt;
SSH begins a connection by verifying that the host you&amp;#039;re connecting to is authentic. It does this by caching the hosts&amp;#039;s &amp;quot;hostkey&amp;quot; in your  &amp;lt;tt&amp;gt;~/.ssh/known_hosts&amp;lt;/tt&amp;gt; file. At times, a hostkey may be changed legitimately; when this happens, you may see such a message. It&amp;#039;s a good idea to verify this with us, you may be able to check the fingerprint yourself by logging into another sharcnet system and running:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub &lt;br /&gt;
&lt;br /&gt;
If the fingerprint is OK, the normal way to fix the problem is to simply remove the old hostkey from your &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. On machines with commandline SSH, you can do this with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -R thehostname&lt;br /&gt;
&lt;br /&gt;
You can use your choice of editor if you&amp;#039;re comfortable doing so (it&amp;#039;s a plain text file, but has long lines). On a unix-compatible machine, you can also use the following very small script (Substitute the line(s) printed in the warning message illustrated above for &amp;#039;42&amp;#039; here.):&lt;br /&gt;
&lt;br /&gt;
 perl -pi -e &amp;#039;undef $_ if (++$line == 42)&amp;#039; ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
Another solution is brute-force: remove the whole &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. This throws away any authentication checking, and afterwards, your first connection to any machine will prompt you to accept a newly discovered host key.&lt;br /&gt;
&lt;br /&gt;
=== Ssh works, but scp doesn&amp;#039;t! ===&lt;br /&gt;
&lt;br /&gt;
If you can &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; to a cluster successfully, but cannot &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to to it, the problem is likely that your login scripts print unexpected messages which confuse &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; is based on the same &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, but assumes that the connection is &amp;quot;clean&amp;quot;: that is, that it does not produce any un-asked-for content. If you have something like:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; will be confused by the salutation. To avoid this, simply ensure that the message is only printed on an interactive login:&lt;br /&gt;
&lt;br /&gt;
 if [ -t 0 ]; then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
or in csh/tcsh syntax:&lt;br /&gt;
&lt;br /&gt;
 if ( -t 0 ) then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
=== How do I edit my program on a cluster? ===&lt;br /&gt;
&lt;br /&gt;
We provide a variety of editors, such as the traditional text-mode &amp;lt;tt&amp;gt;emacs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; (vim), as well as a simpler one called &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;. If you have X on your desktop (and tunneled through SSH), you can use the GUI versions (&amp;lt;tt&amp;gt;xemacs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If your desktop supports FUSE, it&amp;#039;s very convenient to simply mount your home tree like this:&lt;br /&gt;
 mkdir sharcnet&lt;br /&gt;
 sshfs graham.alliancecan.ca: sharcnet&lt;br /&gt;
you can then use any local editor of your choice.&lt;br /&gt;
&lt;br /&gt;
If you run emacs on your desktop, you can also edit a remote file from within your local emacs client using [http://www.gnu.org/software/tramp Tramp], opening and saving a file as /username@cluster.computecanada.ca:path/file.&lt;br /&gt;
&lt;br /&gt;
== Research at SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== I have a research project I would like to collaborate on with SHARCNET, who should I talk to? ===&lt;br /&gt;
&lt;br /&gt;
You may contact [mailto:barb@sharcnet.ca SHARCNET head office] or contact members of the [https://www.sharcnet.ca/my/contact/directory#techteam SHARCNET technical staff].&lt;br /&gt;
&lt;br /&gt;
=== How can I contribute compute resources to SHARCNET so that other researchers can share it? ===&lt;br /&gt;
&lt;br /&gt;
Most people&amp;#039;s research is &amp;quot;bursty&amp;quot; - there are usually sparse periods of time when some computation is urgently needed, and other periods when there is less demand. One problem with this is that if you purchase the equipment you need to meet your &amp;quot;burst&amp;quot; needs, it&amp;#039;ll probably sit, underutilized, during other times.&lt;br /&gt;
&lt;br /&gt;
An alternative is to donate control of this equipment to SHARCNET, and let us arrange for other users to use it when you are not. We prefer to be involved in the selection and configuration of such equipment. Our promise to contributors is that as much as possible, they should obtain as much benefit from the cluster as if it were not shared. Owners get preferential access. Naturally, owners are also able to burst to higher peak usage, since their equipment has been pooled with other contributions. (Technically, SHARCNET cannot itself own such equipment — it remains owned by the institution in question, and will be returned to the contributor upon request.) If you think this model will also work for you and you would like to contribute your computational resource to help the research community at SHARCNET, you can contact us for such arrangement.&lt;br /&gt;
&lt;br /&gt;
=== I do not know much about computation, nor is it my research interest. But I am interested in getting my research done faster with the help of the high performance computing technology. In other words, I do not care about the process and mechanism, but only the final results. Can SHARCNET provide this type of help? ===&lt;br /&gt;
&lt;br /&gt;
We will be happy to bring the technology of high performance computing to you to accelerate your research, if at all possible. If you would like to discuss your plan with us, please feel free to contact our [https://www.sharcnet.ca/my/contact/directory#techteam high performance computing specialists]. They will be happy to listen to your needs and are ready to provide appropriate suggestions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET participates in the Alliance national RAC (Resource Allocation Competition) and provides a continual competition for groups that require more than the default level of access to our resources.  Please see [[Dedicated Resources]] for further information.&lt;br /&gt;
&lt;br /&gt;
=== I heard SHARCNET offers fellowships, where can I get more information? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET no longer actively runs a fellowship program.  You may find information regarding past fellowships and other dedicated resource opportunities on the [https://www.sharcnet.ca/my/research/fellowships Research Fellowships page] of the web portal.&lt;br /&gt;
&lt;br /&gt;
=== I would like to do some research at SHARCNET as a visiting scholar, how should I apply? ===&lt;br /&gt;
&lt;br /&gt;
In general, you will need to find a hosting department or a person affiliated with one of the SHARCNET institutions. You may also [http://www.sharcnet.ca/my/contact contact us] directly for more specific information.&lt;br /&gt;
&lt;br /&gt;
=== I would like to send my students to SHARCNET to do some work for me. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
See above.&lt;br /&gt;
&lt;br /&gt;
== Contacting SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for research, academic exchanges, and technical issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for business development, education and other issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact a specific staff member at SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
See [https://www.sharcnet.ca/my/contact/directory staff directory] for contact information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Acknowledge SHARCNET in Publications ==&lt;br /&gt;
&lt;br /&gt;
=== How do I acknowledge SHARCNET in my publications? ===&lt;br /&gt;
&lt;br /&gt;
We recommend one cite the following:&lt;br /&gt;
&lt;br /&gt;
 This work was made possible by the facilities of the Shared Hierarchical &lt;br /&gt;
 Academic Research Computing Network (SHARCNET:www.sharcnet.ca) and Digital Research Alliance of Canada (https://alliancecan.ca/en).&lt;br /&gt;
&lt;br /&gt;
=== I&amp;#039;ve seen different spellings of the name, what is the standard spelling of SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
We suggest the spelling SHARCNET, all in upper case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What types of research programs / support are provided to the research community? ==&lt;br /&gt;
&lt;br /&gt;
Our overall intent is to provide support that can both respond to the range of needs that the user community presents and help to increase the sophistication of the community and enable new and larger-in-scope applications making use of SHARCNET&amp;#039;s HPC facilities. The range of support can perhaps best be understood in terms of a pyramid:&lt;br /&gt;
&lt;br /&gt;
=== Level 1 ===&lt;br /&gt;
&lt;br /&gt;
At the apex of the pyramid, SHARCNET supports a small number of projects with dedicated programmer support. The intent is to enable projects that will have a lasting impact and may lead to a &amp;quot;step change&amp;quot; in the way research is done at SHARCNET. Inter-disciplinary and inter-institutional projects are particularly welcomed. For the latest information about the program, including application guidelines, please see the  [https://www.sharcnet.ca/my/research/programming Programming Competition] page in our web portal.&lt;br /&gt;
&lt;br /&gt;
=== Level 2 ===&lt;br /&gt;
&lt;br /&gt;
The middle layers of support are provided through a number of initiatives.&lt;br /&gt;
&lt;br /&gt;
These include:&lt;br /&gt;
* Programming support of more modest duration (several days to one month engagement, usually part time)&lt;br /&gt;
* Training on a variety of topics through [https://helpwiki.sharcnet.ca/wiki/Training workshops, seminars and online training materials]&lt;br /&gt;
* Consultation. This may include user-initiated interactions on particular programs, algorithms, techniques, debugging, optimization etc., as well as unsolicited help to ensure effective use of SHARCNET systems&lt;br /&gt;
* Site Leaders play an important role in working with the community to help researchers connect with SHARCNET staff and to obtain appropriate help and support.&lt;br /&gt;
&lt;br /&gt;
=== Level 3 ===&lt;br /&gt;
&lt;br /&gt;
The base level of the pyramid handles the very large number of small requests that are essential to keeping the user community working effectively with the infrastructure on a day-to-day basis. Several of these can be answered by this FAQ; many of the issues are presented through the [https://www.sharcnet.ca/help/index.php/Knowledge_Base#Compute_Canada_Problem_Ticket_System ticketing system]. The support is largely problem oriented with each problem being time limited.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=947</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=947"/>
		<updated>2024-09-17T17:39:39Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* How do I edit my program on a cluster? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Sharcnet_logo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== About SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== What is SHARCNET? ===&lt;br /&gt;
SHARCNET stands for Shared Hierarchical Academic Research Computing Network. Established in 2000, SHARCNET is the largest high performance computing consortium in Canada, involving 19 universities and colleges across southern, central and northern Ontario.&lt;br /&gt;
&lt;br /&gt;
SHARCNET is a member consortium in the [https://alliancecan.ca/en Digital Research Alliance of Canada (Alliance)]  national HPC platform.&lt;br /&gt;
&lt;br /&gt;
=== Where is SHARCNET? ===&lt;br /&gt;
The [http://www.sharcnet.ca/my/contact main office] of SHARCNET is located in the Western Science Centre at [http://www.uwo.ca/ The University of Western Ontario].&lt;br /&gt;
&lt;br /&gt;
=== What does SHARCNET have? ===&lt;br /&gt;
The primary SHARCNET compute system is [https://docs.computecanada.ca/wiki/Graham Graham heterogeneous cluster] located at the University of Waterloo.  It is named after Wes Graham, the first director of the Computing Centre at Waterloo.  It consists of 41,548 cores and 520 GPU devices, spread across 1,185 nodes of different configurations.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with SHARCNET? ===&lt;br /&gt;
If you have a program that takes months to run on your PC, you could probably run it within a few hours using hundreds of processors on SHARCNET / Alliance, provided your program is inherently parallelisable. If you have hundreds or thousands of test cases to run through on your PC or computers in your lab, then with hundreds of processors running those cases independently will significantly reduce your test cycles.&lt;br /&gt;
&lt;br /&gt;
=== Who is running SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
The daily operation and development of SHARCNET computational facilities is managed by a group of highly qualified system administrators. In addition, we have a team of high performance technical computing consultants, who are responsible for technical support on libraries, programming and application analysis.&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET? ===&lt;br /&gt;
For technical inquiries, you may send E-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] or [mailto:help@sharcnet.ca help@sharcnet.ca], or [https://www.sharcnet.ca/my/contact/directory#techteam contact your local system administrator or HPC specialist]. For general inquiries, you may contact the SHARCNET [http://www.sharcnet.ca/my/contact main office].&lt;br /&gt;
&lt;br /&gt;
== Getting an Account with SHARCNET and Related Issues ==&lt;br /&gt;
&lt;br /&gt;
To use SHARCNET (and any other national facilities in Alliance) one has to [https://www.alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account apply for an Alliance account].&lt;br /&gt;
&lt;br /&gt;
== Getting Help ==&lt;br /&gt;
&lt;br /&gt;
=== I have encountered a problem while using an Alliance /SHARCNET system and need help, who should I talk to? ===&lt;br /&gt;
We encourage you to use the problem ticketing system (described in detail [[FAQ#Alliance_Problem_Ticket_System|below]]) .  This is the most efficient way of reporting a problem.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the [https://www.sharcnet.ca/my/contact/directory directory] page.&lt;br /&gt;
&lt;br /&gt;
=== How long should I expect to wait for support? ===&lt;br /&gt;
Unfortunately Alliance/SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week.  User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .  &lt;br /&gt;
&lt;br /&gt;
Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.  &lt;br /&gt;
&lt;br /&gt;
=== Alliance Problem Ticket System ===&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;problem ticket system&amp;quot;? ====&lt;br /&gt;
&lt;br /&gt;
This is a system that allows anyone with an Alliance account to start a persistent email thread that is referred to as a &amp;quot;problem ticket&amp;quot;.    When a user submits a new ticket it will be brought to the attention of an appropriate and available Alliance/SHARCNET staff member for resolution.  &lt;br /&gt;
&lt;br /&gt;
You interact with the ticket system entirely via email.&lt;br /&gt;
&lt;br /&gt;
==== What do I need to specify in a ticket ? ====&lt;br /&gt;
&lt;br /&gt;
To help us address your question faster, please try to do the following when submitting a ticket:&lt;br /&gt;
&lt;br /&gt;
#specify which of our systems is involved &lt;br /&gt;
#if the problem pertains to a job, then report the &amp;lt;u&amp;gt;jobid&amp;lt;/u&amp;gt; associated with the job; this is an integer that is returned by the scheduler when you submit the job&lt;br /&gt;
#report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem; if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem&lt;br /&gt;
#if you&amp;#039;d like for a particular staff member to be aware of the ticket, mention them&lt;br /&gt;
&lt;br /&gt;
==== How do I submit a ticket? ====&lt;br /&gt;
&lt;br /&gt;
In general, you can submit a new ticket by emailing  [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca]  with the email address associated with your Alliance account.  If you are using another email address, please provide your full name, your Alliance default username (if available) and your university or institution.&lt;br /&gt;
&lt;br /&gt;
If you like, you can also target your inquiry more specifically, by using the following addresses to submit your ticket:&lt;br /&gt;
&lt;br /&gt;
* [mailto:help@sharcnet.ca help@sharcnet.ca] - questions specific to SHARCNET, for example relating to contributed SHARCNET systems&lt;br /&gt;
* [mailto:globus@tech.alliancecan.ca globus@tech.alliancecan.ca] -- Questions about [[Globus]] file transfer services&lt;br /&gt;
* [mailto:cloud@tech.alliancecan.ca cloud@tech.alliancecan.ca] -- Questions about using Alliance cloud resources&lt;br /&gt;
* [mailto:accounts@tech.alliancecan.ca accounts@tech.alliancecan.ca] -- Questions about Alliance accounts&lt;br /&gt;
* [mailto:renewals@tech.alliancecan.ca renewals@tech.alliancecan.ca] -- Questions about Alliance account renewals&lt;br /&gt;
&lt;br /&gt;
=== I am new to parallel programming, can you help me get started with my project? ===&lt;br /&gt;
Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research. If your programming project would involve a significant staff time, you should consider applying for Dedicated Programming support. (We run the competition annually; see https://www.sharcnet.ca/my/research/programming).&lt;br /&gt;
&lt;br /&gt;
=== Can you install a package on a cluster for me? ===&lt;br /&gt;
Certainly.  We suggest you make the request by sending e-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] with the specific request.&lt;br /&gt;
&lt;br /&gt;
=== I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that? ===&lt;br /&gt;
If you tell us what you want, we may be able to help you out.&lt;br /&gt;
&lt;br /&gt;
=== Does SHARCNET provide any training on programming and using the systems? ===&lt;br /&gt;
&lt;br /&gt;
Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every summer (usually late May to early June), SHARCNET holds [https://www.sharcnet.ca/help/index.php/Summer_Schools an annual HPC Summer School] with a variety of in-depth, hands-on workshops. &lt;br /&gt;
&lt;br /&gt;
SHARCNET also offers a series of online seminars (so-called &amp;quot;General interest webinars&amp;quot;), typically delivered every second Wednesday at lunch time.  These are announced via the SHARCNET events mailing list and one can see the schedule at the [https://www.sharcnet.ca/my/news/calendar SHARCNET event calendar].  Past seminars are recorded and posted on [http://youtube.sharcnet.ca our youtube channel]. A full listing of the past webinars is available on the [https://helpwiki.sharcnet.ca/wiki/Online_Seminars Online Seminars] page.&lt;br /&gt;
&lt;br /&gt;
=== Attending SHARCNET Webinars ===&lt;br /&gt;
{{:Attending SHARCNET Webinars}}&lt;br /&gt;
&lt;br /&gt;
== Logging in to Systems, Transferring and Editing Files ==&lt;br /&gt;
&lt;br /&gt;
=== How do I login to SHARCNET? ===&lt;br /&gt;
You access the SHARCNET clusters using ssh.  For Graham and other national systems Alliance credentials are required.  For the remaining (&amp;quot;Legacy&amp;quot;) systems, you will require SHARCNET credentials (submit a ticket to help@sharcnet.ca if you have questions).&lt;br /&gt;
&lt;br /&gt;
====Unix/Linux/OS X====&lt;br /&gt;
To login to a system, you need to use an [http://www.openssh.com/ Secure Shell (SSH)] connection. If you are logging in from a UNIX-based machine, make sure it has an SSH client (ssh) installed (this is almost always the case on UNIX/Linux/OS X). If you have the same login name on both your local system and SHARCNET, and you want to login to, say, &amp;lt;tt&amp;gt;graham&amp;lt;/tt&amp;gt;, you may use the command:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If your Alliance username is different from the username on your local systems, then you may use either of the following forms:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca -l username&lt;br /&gt;
 ssh username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If you want to establish an X window connection so that you can use graphics applications such as &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ddt&amp;lt;/tt&amp;gt;, you can add a &amp;lt;tt&amp;gt;-Y&amp;lt;/tt&amp;gt; to the command:&lt;br /&gt;
&lt;br /&gt;
 ssh -Y username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
This will automatically set the X DISPLAY variable when you login.&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
If you are logging from a computer running Windows and need some pointers we recommend consulting our [[SSH]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between Login Nodes and Compute Nodes? ===&lt;br /&gt;
====Login Nodes====&lt;br /&gt;
&lt;br /&gt;
Most of our clusters have distinct &amp;#039;&amp;#039;login nodes&amp;#039;&amp;#039; associated with them that you are automatically redirected to when you login to the cluster (some systems are directly logged into, eg. SMPs and smaller specialty systems).  You can use these to do most of your work preparing for jobs (compiling, editing configuration files) and other low-intensity tasks like moving and copying files.  &lt;br /&gt;
&lt;br /&gt;
You can also use them for other quick tasks, like simple post-processing, but any significant work should be submitted as a job to the compute nodes.  On most login nodes, each process is limited to 1 cpu-hour; this will be noticable if you perform anything compute-intensive, and can affect IO-oriented activity as well (such as very large &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; operations.)&lt;br /&gt;
&lt;br /&gt;
=== How can I suspend and resume my session? ===&lt;br /&gt;
&lt;br /&gt;
The program screen can start persistent terminals from which you can detach and reattach.  The simplest use of screen is&lt;br /&gt;
&lt;br /&gt;
 screen -dR&lt;br /&gt;
&lt;br /&gt;
which will either reattach you to any existing session or create a new one if one doesn&amp;#039;t exist.  To terminate the current screen session, type &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;.  To detach manually (you are automatically detached if the connection is lost) press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;d&amp;#039;&amp;#039;, you can the resume later as above (ideal for running background jobs).  Note that &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; is screen&amp;#039;s escape sequence, so you have to do &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;a&amp;#039;&amp;#039; to get the regular effect of pressing &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; inside a screen session (e.g., moving the cursor to the start of the line in a shell).&lt;br /&gt;
&lt;br /&gt;
For a list of other &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; key sequences, press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;?&amp;#039;&amp;#039;.  For further details and  command line options, see the [http://www.gnu.org/software/screen/manual/screen.html screen manual] (or type &amp;lt;tt&amp;gt;man screen&amp;lt;/tt&amp;gt; on any of the clusters).&lt;br /&gt;
&lt;br /&gt;
Other notes:&lt;br /&gt;
* If you want to create additional &amp;quot;text windows&amp;quot;, use Ctrl-A Ctrl-C. Remember to type &amp;quot;exit&amp;quot; to close it. &lt;br /&gt;
* To switch to a &amp;quot;text window&amp;quot; with a certain number, use Ctrl-A # (where # is 0 to 9).&lt;br /&gt;
* To see a list of window numbers use Ctrl-A w&lt;br /&gt;
* To be presented a list of windows and select one to use, use Ctrl-A &amp;quot; (This is handy if you&amp;#039;ve made too many windows.)&lt;br /&gt;
* If the program running in a screen &amp;quot;text window&amp;quot; refuses to die (i.e., it needs to be killed) you can use Ctrl-A K&lt;br /&gt;
* For brief help on keystrokes use Ctrl-A ?&lt;br /&gt;
* For extensive help, run &amp;quot;man screen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What operating systems are supported? ===&lt;br /&gt;
UNIX in general. Currently, Linux is the only operating system used within SHARCNET.&lt;br /&gt;
&lt;br /&gt;
=== What makes a cluster different than my UNIX workstation? ===&lt;br /&gt;
&lt;br /&gt;
If you are familiar with UNIX, then using a cluster is not much different from using a workstation. When you login to a cluster, you in fact only log in to one of the cluster nodes. In most cases, each cluster node is a physical machine, usually a server class machine, with one or several CPUs, that is more or less the same as a workstation you are familiar with. The difference is that these nodes are interconnected with special interconnect devices and the way you run your program is slightly different. Across SHARCNET clusters, you are not expected to run your program interactively. You will have to run your program through a queueing system. That also means where and when your program gets to run is not decided by you, but by the queueing system.&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Those primary programming languages such as C, C++, Fortran, and Python are supported. Other languages, such as Java, Pascal and Ada, are also supported, but with limited technical support from us. &lt;br /&gt;
&lt;br /&gt;
=== How do I organize my files? ===&lt;br /&gt;
[https://docs.computecanada.ca/wiki/Storage_and_file_management#Storage_types Main file systems on our National systems.]&lt;br /&gt;
&lt;br /&gt;
==== How do I transfer files/directories to/from or between cluster? ====&lt;br /&gt;
&lt;br /&gt;
=====Unix/Linux=====&lt;br /&gt;
To transfer files to and from a cluster on a UNIX machine, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt;. For example, if you want to upload file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; to cluster graham from your machine &amp;lt;tt&amp;gt;myhost&amp;lt;/tt&amp;gt;, use the following command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp foo.f graham.computecanada.ca:&lt;br /&gt;
&lt;br /&gt;
assuming that your machine has &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; installed. If you want to transfer a file from Windows or Mac, you need have &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt; for Windows or Mac installed.&lt;br /&gt;
&lt;br /&gt;
If you transfer file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; between Alliance clusters, say from your home directory on cedar to your home directory on graham, simply use the following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp foo.f graham:/home/username/&lt;br /&gt;
&lt;br /&gt;
If you are transferring files between a UNIX machine and a cluster, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; command with &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; option. For instance, if you want to download the subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; in the directory &amp;lt;tt&amp;gt;project&amp;lt;/tt&amp;gt; in your home directory on graham to your local UNIX machine, on your local machine, use command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp -rp graham.sharcnet.ca:project/foo .&lt;br /&gt;
&lt;br /&gt;
Similarly, you can transfer the subdirectory between Alliance clusters. The following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp -r graham:/home/username/scratch/foo .&lt;br /&gt;
&lt;br /&gt;
will download subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; from your scratch directory on graham to your home directory on cedar (note that the prompt indicates you are currently logged on to cedar).&lt;br /&gt;
&lt;br /&gt;
The use of &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; option above will preserve the time stamp of each file. For Windows and Mac, you need to check the documentation of &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; for features. &amp;#039;&amp;#039;&amp;#039;Do not use -p switch with scp or cp commands on clusters, when the destination is your project space&amp;#039;&amp;#039;&amp;#039;, or you might run into the infamous [https://docs.computecanada.ca/wiki/Frequently_Asked_Questions#Disk_quota_exceeded_error_on_.2Fproject_filesystems Disk quota exceeded issue].&lt;br /&gt;
&lt;br /&gt;
You may also &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; and compress the entire directory and then use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to save bandwidth. In the above example, first you login to graham, then do the following&lt;br /&gt;
&lt;br /&gt;
 [username@gra-login2:~]$ cd project&lt;br /&gt;
 [username@gra-login2:~]$ tar -cvf foo.tar foo&lt;br /&gt;
 [username@gra-login2:~]$ gzip foo.tar&lt;br /&gt;
&lt;br /&gt;
Then on your local machine myhost, use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to copy the tar file&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp graham.computecanada.ca:project/foo.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Note for most Linux distributions, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; has an option &amp;lt;tt&amp;gt;-z&amp;lt;/tt&amp;gt; that will compress the &amp;lt;tt&amp;gt;.tar&amp;lt;/tt&amp;gt; file using &amp;lt;tt&amp;gt;gzip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Windows=====&lt;br /&gt;
You may read the instructions on using an ssh client. [[https://helpwiki.sharcnet.ca/wiki/SSH#Transfering_files_.28Secure_File_Transfer_Client.29]]&lt;br /&gt;
&lt;br /&gt;
====How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect?====&lt;br /&gt;
&lt;br /&gt;
In general, most users should be fine using &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to transfer data to and from SHARCNET systems.  If you need to transfer a lot of files &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; is recommended to ensure that you do not need to restart the transfer from scratch should there be a connection failure.  Although you can use &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to any cluster&amp;#039;s login node(s), it is often best to use gra-dtn1.computecanada.ca - it is dedicated to data transfer. &lt;br /&gt;
&lt;br /&gt;
In general one should expect the following transfer rates with &amp;#039;&amp;#039;scp&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* If you are connecting to SHARCNET through a Research/Education network site (ORION, CANARIE, Internet2) and are on a fast local network (this is the case for most users connecting from academic institutions) then you should be able to attain sustained transfer speeds in excess of 10MB/s.  If your path is all gigabit or better, you should be able to reach rates above 50 MB/s.&lt;br /&gt;
* If you are transferring data over the wider internet, you will not be able to attain these speeds, as all traffic that does not enter/exit SHARCNET via the R&amp;amp;E net is restricted to a limited-bandwidth commercial feed. In this case one will typically see rates on the order of 1MB/s or less.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that filesystems and networks are  shared resources and suffer from contention; if they are busy the above rates may not be attainable&lt;br /&gt;
&lt;br /&gt;
For transferring large amounts of data (many gigabytes) the best approach is to use the online tool [https://docs.computecanada.ca/wiki/Transferring_data#Globus_transfer Globus].&lt;br /&gt;
&lt;br /&gt;
==== How do I access the same file from different subdirectories on the same cluster ? ====&lt;br /&gt;
&lt;br /&gt;
You should not need copy large files on the same cluster (e.g. from one user to another&lt;br /&gt;
or using the same file in different subdirectories).  Instead of using&lt;br /&gt;
scp you might consider issuing a &amp;quot;soft link&amp;quot; command. Assume that you need access&lt;br /&gt;
to the file large_file1 in subdirectory /home/user1/subdir1 and you need it to be in your&lt;br /&gt;
subdirectory /home/my_account/my_dir from where you will invoke it under the name&lt;br /&gt;
my_large_file1.  Then go to that directory and type:&lt;br /&gt;
&lt;br /&gt;
 ln -s /home/user1/subdir1/large_file1    my_large_file1&lt;br /&gt;
&lt;br /&gt;
Another example, assume that in subdirectory /home/my_account/PROJ1 you have several&lt;br /&gt;
subdirectories called CASE1, CASE2, ...  In each subdirectory CASEn you have a slightly&lt;br /&gt;
different code but all of them process the same data file called test_data. Rather than&lt;br /&gt;
copying the test_data file into each CASEn subdirectory, place test_data above i.e.&lt;br /&gt;
in /home/my_account/PROJ1 and then in each CASEn subdirectory issue following &amp;quot;soft link&amp;quot;&lt;br /&gt;
command:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../test_data  test_data&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;soft links&amp;quot; can be removed by using the rm command. For example, to remove the soft link from&lt;br /&gt;
/home/my_account/PROJ1/CASE2 type following command from this subdirectory:&lt;br /&gt;
&lt;br /&gt;
 rm -rf test_data&lt;br /&gt;
&lt;br /&gt;
Typing above command from subdirectory /home/my_account/PROJ1 would remove the actual file and then&lt;br /&gt;
none of the CASEn subdirectories would have access to it.&lt;br /&gt;
&lt;br /&gt;
==== How are files deleted from the /home/userid/scratch filesystems? ====&lt;br /&gt;
&lt;br /&gt;
All files on /home/userid/scratch that are over 2 months old (not old in the common sense, please see below) are automatically deleted. Data needed for long term storage and reference should be kept in either /project, /nearline, or other archival storage areas. The scratch filesystem is checked at the end of the month for files which will be candidates for expiry on the 15th of the following month. On the first day of the month, a login message is posted and a notification e-mail is sent to all users who have at least one file which is a candidate for purging and containing the location of a file which lists all the candidates for purging.  On the 12th of the month, a second scan is run to check for files that will still expire on the 15th, and again, users with candidates for expiry are sent a second warning email.  Lastly, on the 15th, all files which are due for expiry are removed.&lt;br /&gt;
&lt;br /&gt;
An unconventional aspect of this system is that it does not determine the age of a file based on the file&amp;#039;s attributes, e.g., the standard dates reported by the &amp;lt;i&amp;gt;stat&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;find&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;ls&amp;lt;/i&amp;gt;, etc. commands.  (This is known as the &amp;quot;mtime&amp;quot; of the file, for &amp;quot;modification time&amp;quot;, and is frequently inaccurate.) The age of a file is determined based on whether or not its data contents (i.e., the information stored in the file) have changed or been accessed, and this age is stored externally to the file.  Only files where the contents have changed or accessed will have their age counter &amp;quot;reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A list of your candidate files for expiry can be found in /home/scratch_to_delete/$USER  (where $USER is your userid).&lt;br /&gt;
&lt;br /&gt;
===== How do I check the age of a file =====&lt;br /&gt;
We define a file&amp;#039;s age as the most recent of:&lt;br /&gt;
&lt;br /&gt;
 *the access time (atime) and&lt;br /&gt;
 *the change time (ctime)&lt;br /&gt;
&lt;br /&gt;
You can find the ctime of a file using&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lc &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while the atime can be obtained with the command&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lu &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do not use the modify time (mtime) of the file because it can be modified by the user or by other programs to display incorrect information.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, simple use of the atime property would be sufficient, as it is updated by the system in sync with the ctime. However, userspace programs are able to alter atime, potentially to times in the past, which could result in early expiration of a file. The use of ctime as a fallback guards against this undesirable behaviour.&lt;br /&gt;
&lt;br /&gt;
It is also your responsibility to manage your stored data: most of the filesystems are not intended to provide an indefinite archiving service so when a given file or directory is no longer needed, you need to move it to a more appropriate filesystem which may well mean your personal workstation or some other storage system under your control. Moving significant amounts of data between your workstation and an Alliance system or between two Alliance systems should generally be done using Globus.&lt;br /&gt;
&lt;br /&gt;
==== How to archive my data? ====&lt;br /&gt;
&lt;br /&gt;
===== Use tar to archive files and directories =====&lt;br /&gt;
&lt;br /&gt;
The primary archiving utility on all Linux and Unix-like systems is the [https://www.gnu.org/software/tar/manual/tar.html tar] command. It will bundle a bunch of files or directories together and generate a single file, called an &amp;#039;&amp;#039;archive file&amp;#039;&amp;#039; or &amp;#039;&amp;#039;tar-file&amp;#039;&amp;#039;. By convention an archive file has &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; as the file name extension. When you archive a directory with &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, it will, by default, include all the files and sub-directories contained within it, and sub-sub-directories contained in those, and so on. So the command &amp;lt;code&amp;gt;tar --create --file project1.tar project1&amp;lt;/code&amp;gt; will pack all the content of directory &amp;#039;&amp;#039;project1&amp;#039;&amp;#039; into the file &amp;#039;&amp;#039;project1.tar&amp;#039;&amp;#039;. The original directory will remain unchanged, so this may double the amount of disk space occupied!&lt;br /&gt;
&lt;br /&gt;
You can extract files from an archive using the same command with a different option:&amp;lt;code&amp;gt;tar --extract --file project1.tar&amp;lt;/code&amp;gt;. If there is no directory with the original name, it will be created. If a directory of that name exists and contains files of the same names as in the archive file, they will be overwritten. Another option can be added to specify the destination directory where to extract the archive&amp;#039;s content.   &lt;br /&gt;
&lt;br /&gt;
===== Compress and uncompress tar files =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; archiving utility can compress an archive file at the same time it creates it. There are a number of compression methods to choose from. We recommend either &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;, which can be used as follows:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ tar --create --xz --file project1.tar.xz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --xz --file project1.tar.xz&lt;br /&gt;
 [user_name@localhost]$ tar --create --gzip --file project1.tar.gz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --gzip --file project1.tar.gz&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;code&amp;gt;--xz&amp;lt;/code&amp;gt; will produce a smaller compressed file (a &amp;quot;better compression ratio&amp;quot;) but takes longer and uses more RAM while working. &amp;lt;code&amp;gt;--gzip&amp;lt;/code&amp;gt; does not typically compress as small, but may be used if you encounter difficulties due to insufficient memory or excessive run time during &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt;. A third option, &amp;lt;code&amp;gt;--bzip2&amp;lt;/code&amp;gt;, is also available, that typically does not compress as small as &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; but takes longer than &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt; first without compression and then use the commands &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; in a separate step, although there is rarely a reason to do so. Similarly, you can run &amp;lt;code&amp;gt;xz -d&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip -d&amp;lt;/code&amp;gt; to decompress an archive file before running &amp;lt;code&amp;gt;tar --extract&amp;lt;/code&amp;gt;, but again there is rarely a reason to do so.&lt;br /&gt;
&lt;br /&gt;
The commands &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; can be used to compress any file, not just archive files:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ gzip bigfile&lt;br /&gt;
 [user_name@localhost]$ xz bigfile&lt;br /&gt;
&lt;br /&gt;
These commands will produce the files &amp;lt;code&amp;gt;bigfile.gz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigfile.xz&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
=====Archival Storage=====&lt;br /&gt;
&lt;br /&gt;
On Graham, files copied to ~/nearline will be subsequently moved to offline (tape-based) storage. See [https://docs.computecanada.ca/wiki/Using_nearline_storage this link] for more details.&lt;br /&gt;
&lt;br /&gt;
==== How can I check the hidden files in directory? ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;.&amp;quot; at the beginning of the name means that the file is &amp;quot;hidden&amp;quot;. You have to use the -a option with ls to see it. I.e. &amp;lt;code&amp;gt;ls -a &amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
If you want to display only the hidden files then type:&lt;br /&gt;
 ls -d .*&lt;br /&gt;
&lt;br /&gt;
Note: there is an alias which is loaded from /etc/bashrc (see your .bashrc file). The alias is defined by alias &amp;lt;code&amp;gt; l.=&amp;#039;ls -d .* --color=auto&amp;#039; &amp;lt;/code&amp;gt; and if you type:&lt;br /&gt;
 l.&lt;br /&gt;
you will also display only the hidden files.&lt;br /&gt;
&lt;br /&gt;
==== How can I count the number of files in a directory? ====&lt;br /&gt;
&lt;br /&gt;
One can use the following command to count the number of files in a directory (in this example, your /work directory):&lt;br /&gt;
&lt;br /&gt;
 find /home/$USER -type f   | wc -l&lt;br /&gt;
&lt;br /&gt;
It is always a good idea to [[Knowledge_Base#How_to_archive_my_data.3F|archive]] and/or compress files that are no longer needed on the filesystem (see [https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_to_organize_a_large_number_of_files.3F below]).  This helps minimize one&amp;#039;s footprint on the filesystem and as such the impact they have on other users of the shared resource.&lt;br /&gt;
&lt;br /&gt;
==== How to organize a large number of files? ====&lt;br /&gt;
&lt;br /&gt;
With parallel cluster filesystems, you will get best I/O performance writing data to a small number of large files. Since all metadata operations on each of our parallel filesystems are handled by a single file server, depending on how many files are being accessed the server can become overwhelmed leading to poor overall I/O performance for all users. If your workflow involves storing data in a large number of files, it is best to pack these files into a small number of larger archives, e.g. using tar command&lt;br /&gt;
&lt;br /&gt;
 tar cvf archiveFile.tar directoryToArchive&lt;br /&gt;
&lt;br /&gt;
For better performance with many files inside your archive, we recommend to use DAR (Disk ARchive utility), which is a disk analog of tar (Tape ARchive).  Dar can extract files from anywhere in the archive much faster than tar. The dar command is available by default on sharcnet systems. It can be used to pack files into a dar archive by doing something like: &lt;br /&gt;
&lt;br /&gt;
 dar -s 1G -w -c archiveFile -g directoryToArchive&lt;br /&gt;
&lt;br /&gt;
In this example we split the archive into 1GB chunks, and the archive files will be named archiveFile.1.dar, archiveFile.2.dar, and so on. To list the contents of the archive, you can type:&lt;br /&gt;
&lt;br /&gt;
 dar -l archiveFile&lt;br /&gt;
&lt;br /&gt;
To temporarily extract files for post-processing into current directory, you would type:&lt;br /&gt;
&lt;br /&gt;
 dar -R . -O -x archiveFile -v -g pathToYourFile/fileToExtract&lt;br /&gt;
&lt;br /&gt;
=== I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host ===&lt;br /&gt;
&lt;br /&gt;
The most likely cause of this behaviour is repeated failed login attempts.  Part of our security policies involves blocking the IP address of machines that attempt multiple logins with incorrect passwords over a short period of time---many brute-force attacks on systems do exactly this: looking for poor passwords, badly configured accounts, etc.  Unfortunately, it isn&amp;#039;t uncommon for a user to forget their password and make repeated login attempts with incorrect passwords and end up with that machine blacklisted and unable to connect at all.&lt;br /&gt;
&lt;br /&gt;
A temporary solution is simply to attempt to login from another machine.  If you have access to another machine at your site, you can shell to that machine first, and then shell to the SHARCNET system (as that machine&amp;#039;s IP shouldn&amp;#039;t be blacklisted).  In order to have your machine unblocked, you will have to email to [mailto:support@computecanada.ca support@computecanada.ca] as a system administrator must manually intervene in order to fix it.&lt;br /&gt;
&lt;br /&gt;
NOTE: there are other situations that can produce this message, however they are rarer and more transient.  If you are unable to log in from one machine, but can from another, it is most likely the IP blacklisting that is the problem and the above will provide a temporary work-around while your problem ticket is processed.&lt;br /&gt;
&lt;br /&gt;
=== I am unable to ssh/scp from SHARCNET to my local computer ===&lt;br /&gt;
&lt;br /&gt;
Most campus networks are behind some sort of firewall.  If you can ssh out to SHARCNET, but cannot establish a connection in the other direction, then you are probably behind a firewall and should speak with your local system administrator or campus IT department to determine if there are any exceptions or workarounds in place.&lt;br /&gt;
&lt;br /&gt;
=== SSH tells me SOMEONE IS DOING SOMETHING NASTY!? ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please first read the following:&lt;br /&gt;
&lt;br /&gt;
https://docs.computecanada.ca/wiki/SSH_security_improvements&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suppose you attempt to login to SHARCNET, but instead get an alarming message like this:&lt;br /&gt;
&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that the RSA host key has just been changed.&lt;br /&gt;
 The fingerprint for the RSA key sent by the remote host is&lt;br /&gt;
 fe:65:ab:89:9a:23:34:5a:50:1e:05:d6:bf:ec:da:67.&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending key in /home/user/.ssh/known_hosts:42&lt;br /&gt;
 RSA host key for requin has changed and you have requested strict checking.&lt;br /&gt;
 Host key verification failed. &lt;br /&gt;
&lt;br /&gt;
SSH begins a connection by verifying that the host you&amp;#039;re connecting to is authentic. It does this by caching the hosts&amp;#039;s &amp;quot;hostkey&amp;quot; in your  &amp;lt;tt&amp;gt;~/.ssh/known_hosts&amp;lt;/tt&amp;gt; file. At times, a hostkey may be changed legitimately; when this happens, you may see such a message. It&amp;#039;s a good idea to verify this with us, you may be able to check the fingerprint yourself by logging into another sharcnet system and running:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub &lt;br /&gt;
&lt;br /&gt;
If the fingerprint is OK, the normal way to fix the problem is to simply remove the old hostkey from your &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. On machines with commandline SSH, you can do this with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -R thehostname&lt;br /&gt;
&lt;br /&gt;
You can use your choice of editor if you&amp;#039;re comfortable doing so (it&amp;#039;s a plain text file, but has long lines). On a unix-compatible machine, you can also use the following very small script (Substitute the line(s) printed in the warning message illustrated above for &amp;#039;42&amp;#039; here.):&lt;br /&gt;
&lt;br /&gt;
 perl -pi -e &amp;#039;undef $_ if (++$line == 42)&amp;#039; ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
Another solution is brute-force: remove the whole &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. This throws away any authentication checking, and afterwards, your first connection to any machine will prompt you to accept a newly discovered host key.&lt;br /&gt;
&lt;br /&gt;
=== Ssh works, but scp doesn&amp;#039;t! ===&lt;br /&gt;
&lt;br /&gt;
If you can &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; to a cluster successfully, but cannot &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to to it, the problem is likely that your login scripts print unexpected messages which confuse &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; is based on the same &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, but assumes that the connection is &amp;quot;clean&amp;quot;: that is, that it does not produce any un-asked-for content. If you have something like:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; will be confused by the salutation. To avoid this, simply ensure that the message is only printed on an interactive login:&lt;br /&gt;
&lt;br /&gt;
 if [ -t 0 ]; then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
or in csh/tcsh syntax:&lt;br /&gt;
&lt;br /&gt;
 if ( -t 0 ) then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
=== How do I edit my program on a cluster? ===&lt;br /&gt;
&lt;br /&gt;
We provide a variety of editors, such as the traditional text-mode &amp;lt;tt&amp;gt;emacs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; (vim), as well as a simpler one called &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;. If you have X on your desktop (and tunneled through SSH), you can use the GUI versions (&amp;lt;tt&amp;gt;xemacs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If your desktop supports FUSE, it&amp;#039;s very convenient to simply mount your home tree like this:&lt;br /&gt;
 mkdir sharcnet&lt;br /&gt;
 sshfs graham.alliancecan.ca: sharcnet&lt;br /&gt;
you can then use any local editor of your choice.&lt;br /&gt;
&lt;br /&gt;
If you run emacs on your desktop, you can also edit a remote file from within your local emacs client using [http://www.gnu.org/software/tramp Tramp], opening and saving a file as /username@cluster.computecanada.ca:path/file.&lt;br /&gt;
&lt;br /&gt;
== Research at SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== I have a research project I would like to collaborate on with SHARCNET, who should I talk to? ===&lt;br /&gt;
&lt;br /&gt;
You may contact [mailto:barb@sharcnet.ca SHARCNET head office] or contact members of the [https://www.sharcnet.ca/my/contact/directory#techteam SHARCNET technical staff].&lt;br /&gt;
&lt;br /&gt;
=== How can I contribute compute resources to SHARCNET so that other researchers can share it? ===&lt;br /&gt;
&lt;br /&gt;
Most people&amp;#039;s research is &amp;quot;bursty&amp;quot; - there are usually sparse periods of time when some computation is urgently needed, and other periods when there is less demand. One problem with this is that if you purchase the equipment you need to meet your &amp;quot;burst&amp;quot; needs, it&amp;#039;ll probably sit, underutilized, during other times.&lt;br /&gt;
&lt;br /&gt;
An alternative is to donate control of this equipment to SHARCNET, and let us arrange for other users to use it when you are not. We prefer to be involved in the selection and configuration of such equipment. Our promise to contributors is that as much as possible, they should obtain as much benefit from the cluster as if it were not shared. Owners get preferential access. Naturally, owners are also able to burst to higher peak usage, since their equipment has been pooled with other contributions. (Technically, SHARCNET cannot itself own such equipment — it remains owned by the institution in question, and will be returned to the contributor upon request.) If you think this model will also work for you and you would like to contribute your computational resource to help the research community at SHARCNET, you can contact us for such arrangement.&lt;br /&gt;
&lt;br /&gt;
=== I do not know much about computation, nor is it my research interest. But I am interested in getting my research done faster with the help of the high performance computing technology. In other words, I do not care about the process and mechanism, but only the final results. Can SHARCNET provide this type of help? ===&lt;br /&gt;
&lt;br /&gt;
We will be happy to bring the technology of high performance computing to you to accelerate your research, if at all possible. If you would like to discuss your plan with us, please feel free to contact our [https://www.sharcnet.ca/my/contact/directory#techteam high performance computing specialists]. They will be happy to listen to your needs and are ready to provide appropriate suggestions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET participates in the Alliance national RAC (Resource Allocation Competition) and provides a continual competition for groups that require more than the default level of access to our resources.  Please see [[Dedicated Resources]] for further information.&lt;br /&gt;
&lt;br /&gt;
=== I heard SHARCNET offers fellowships, where can I get more information? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET no longer actively runs a fellowship program.  You may find information regarding past fellowships and other dedicated resource opportunities on the [https://www.sharcnet.ca/my/research/fellowships Research Fellowships page] of the web portal.&lt;br /&gt;
&lt;br /&gt;
=== I would like to do some research at SHARCNET as a visiting scholar, how should I apply? ===&lt;br /&gt;
&lt;br /&gt;
In general, you will need to find a hosting department or a person affiliated with one of the SHARCNET institutions. You may also [http://www.sharcnet.ca/my/contact contact us] directly for more specific information.&lt;br /&gt;
&lt;br /&gt;
=== I would like to send my students to SHARCNET to do some work for me. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
See above.&lt;br /&gt;
&lt;br /&gt;
== Contacting SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for research, academic exchanges, and technical issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for business development, education and other issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact a specific staff member at SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
See [https://www.sharcnet.ca/my/contact/directory staff directory] for contact information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Acknowledge SHARCNET in Publications ==&lt;br /&gt;
&lt;br /&gt;
=== How do I acknowledge SHARCNET in my publications? ===&lt;br /&gt;
&lt;br /&gt;
We recommend one cite the following:&lt;br /&gt;
&lt;br /&gt;
 This work was made possible by the facilities of the Shared Hierarchical &lt;br /&gt;
 Academic Research Computing Network (SHARCNET:www.sharcnet.ca) and Digital Research Alliance of Canada (https://alliancecan.ca/en).&lt;br /&gt;
&lt;br /&gt;
=== I&amp;#039;ve seen different spellings of the name, what is the standard spelling of SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
We suggest the spelling SHARCNET, all in upper case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What types of research programs / support are provided to the research community? ==&lt;br /&gt;
&lt;br /&gt;
Our overall intent is to provide support that can both respond to the range of needs that the user community presents and help to increase the sophistication of the community and enable new and larger-in-scope applications making use of SHARCNET&amp;#039;s HPC facilities. The range of support can perhaps best be understood in terms of a pyramid:&lt;br /&gt;
&lt;br /&gt;
=== Level 1 ===&lt;br /&gt;
&lt;br /&gt;
At the apex of the pyramid, SHARCNET supports a small number of projects with dedicated programmer support. The intent is to enable projects that will have a lasting impact and may lead to a &amp;quot;step change&amp;quot; in the way research is done at SHARCNET. Inter-disciplinary and inter-institutional projects are particularly welcomed. For the latest information about the program, including application guidelines, please see the  [https://www.sharcnet.ca/my/research/programming Programming Competition] page in our web portal.&lt;br /&gt;
&lt;br /&gt;
=== Level 2 ===&lt;br /&gt;
&lt;br /&gt;
The middle layers of support are provided through a number of initiatives.&lt;br /&gt;
&lt;br /&gt;
These include:&lt;br /&gt;
* Programming support of more modest duration (several days to one month engagement, usually part time)&lt;br /&gt;
* Training on a variety of topics through [https://helpwiki.sharcnet.ca/wiki/Training workshops, seminars and online training materials]&lt;br /&gt;
* Consultation. This may include user-initiated interactions on particular programs, algorithms, techniques, debugging, optimization etc., as well as unsolicited help to ensure effective use of SHARCNET systems&lt;br /&gt;
* Site Leaders play an important role in working with the community to help researchers connect with SHARCNET staff and to obtain appropriate help and support.&lt;br /&gt;
&lt;br /&gt;
=== Level 3 ===&lt;br /&gt;
&lt;br /&gt;
The base level of the pyramid handles the very large number of small requests that are essential to keeping the user community working effectively with the infrastructure on a day-to-day basis. Several of these can be answered by this FAQ; many of the issues are presented through the [https://www.sharcnet.ca/help/index.php/Knowledge_Base#Compute_Canada_Problem_Ticket_System ticketing system]. The support is largely problem oriented with each problem being time limited.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=946</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=946"/>
		<updated>2024-09-17T17:37:26Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* Level 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Sharcnet_logo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== About SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== What is SHARCNET? ===&lt;br /&gt;
SHARCNET stands for Shared Hierarchical Academic Research Computing Network. Established in 2000, SHARCNET is the largest high performance computing consortium in Canada, involving 19 universities and colleges across southern, central and northern Ontario.&lt;br /&gt;
&lt;br /&gt;
SHARCNET is a member consortium in the [https://alliancecan.ca/en Digital Research Alliance of Canada (Alliance)]  national HPC platform.&lt;br /&gt;
&lt;br /&gt;
=== Where is SHARCNET? ===&lt;br /&gt;
The [http://www.sharcnet.ca/my/contact main office] of SHARCNET is located in the Western Science Centre at [http://www.uwo.ca/ The University of Western Ontario].&lt;br /&gt;
&lt;br /&gt;
=== What does SHARCNET have? ===&lt;br /&gt;
The primary SHARCNET compute system is [https://docs.computecanada.ca/wiki/Graham Graham heterogeneous cluster] located at the University of Waterloo.  It is named after Wes Graham, the first director of the Computing Centre at Waterloo.  It consists of 41,548 cores and 520 GPU devices, spread across 1,185 nodes of different configurations.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with SHARCNET? ===&lt;br /&gt;
If you have a program that takes months to run on your PC, you could probably run it within a few hours using hundreds of processors on SHARCNET / Alliance, provided your program is inherently parallelisable. If you have hundreds or thousands of test cases to run through on your PC or computers in your lab, then with hundreds of processors running those cases independently will significantly reduce your test cycles.&lt;br /&gt;
&lt;br /&gt;
=== Who is running SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
The daily operation and development of SHARCNET computational facilities is managed by a group of highly qualified system administrators. In addition, we have a team of high performance technical computing consultants, who are responsible for technical support on libraries, programming and application analysis.&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET? ===&lt;br /&gt;
For technical inquiries, you may send E-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] or [mailto:help@sharcnet.ca help@sharcnet.ca], or [https://www.sharcnet.ca/my/contact/directory#techteam contact your local system administrator or HPC specialist]. For general inquiries, you may contact the SHARCNET [http://www.sharcnet.ca/my/contact main office].&lt;br /&gt;
&lt;br /&gt;
== Getting an Account with SHARCNET and Related Issues ==&lt;br /&gt;
&lt;br /&gt;
To use SHARCNET (and any other national facilities in Alliance) one has to [https://www.alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account apply for an Alliance account].&lt;br /&gt;
&lt;br /&gt;
== Getting Help ==&lt;br /&gt;
&lt;br /&gt;
=== I have encountered a problem while using an Alliance /SHARCNET system and need help, who should I talk to? ===&lt;br /&gt;
We encourage you to use the problem ticketing system (described in detail [[FAQ#Alliance_Problem_Ticket_System|below]]) .  This is the most efficient way of reporting a problem.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the [https://www.sharcnet.ca/my/contact/directory directory] page.&lt;br /&gt;
&lt;br /&gt;
=== How long should I expect to wait for support? ===&lt;br /&gt;
Unfortunately Alliance/SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week.  User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .  &lt;br /&gt;
&lt;br /&gt;
Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.  &lt;br /&gt;
&lt;br /&gt;
=== Alliance Problem Ticket System ===&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;problem ticket system&amp;quot;? ====&lt;br /&gt;
&lt;br /&gt;
This is a system that allows anyone with an Alliance account to start a persistent email thread that is referred to as a &amp;quot;problem ticket&amp;quot;.    When a user submits a new ticket it will be brought to the attention of an appropriate and available Alliance/SHARCNET staff member for resolution.  &lt;br /&gt;
&lt;br /&gt;
You interact with the ticket system entirely via email.&lt;br /&gt;
&lt;br /&gt;
==== What do I need to specify in a ticket ? ====&lt;br /&gt;
&lt;br /&gt;
To help us address your question faster, please try to do the following when submitting a ticket:&lt;br /&gt;
&lt;br /&gt;
#specify which of our systems is involved &lt;br /&gt;
#if the problem pertains to a job, then report the &amp;lt;u&amp;gt;jobid&amp;lt;/u&amp;gt; associated with the job; this is an integer that is returned by the scheduler when you submit the job&lt;br /&gt;
#report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem; if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem&lt;br /&gt;
#if you&amp;#039;d like for a particular staff member to be aware of the ticket, mention them&lt;br /&gt;
&lt;br /&gt;
==== How do I submit a ticket? ====&lt;br /&gt;
&lt;br /&gt;
In general, you can submit a new ticket by emailing  [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca]  with the email address associated with your Alliance account.  If you are using another email address, please provide your full name, your Alliance default username (if available) and your university or institution.&lt;br /&gt;
&lt;br /&gt;
If you like, you can also target your inquiry more specifically, by using the following addresses to submit your ticket:&lt;br /&gt;
&lt;br /&gt;
* [mailto:help@sharcnet.ca help@sharcnet.ca] - questions specific to SHARCNET, for example relating to contributed SHARCNET systems&lt;br /&gt;
* [mailto:globus@tech.alliancecan.ca globus@tech.alliancecan.ca] -- Questions about [[Globus]] file transfer services&lt;br /&gt;
* [mailto:cloud@tech.alliancecan.ca cloud@tech.alliancecan.ca] -- Questions about using Alliance cloud resources&lt;br /&gt;
* [mailto:accounts@tech.alliancecan.ca accounts@tech.alliancecan.ca] -- Questions about Alliance accounts&lt;br /&gt;
* [mailto:renewals@tech.alliancecan.ca renewals@tech.alliancecan.ca] -- Questions about Alliance account renewals&lt;br /&gt;
&lt;br /&gt;
=== I am new to parallel programming, can you help me get started with my project? ===&lt;br /&gt;
Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research. If your programming project would involve a significant staff time, you should consider applying for Dedicated Programming support. (We run the competition annually; see https://www.sharcnet.ca/my/research/programming).&lt;br /&gt;
&lt;br /&gt;
=== Can you install a package on a cluster for me? ===&lt;br /&gt;
Certainly.  We suggest you make the request by sending e-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] with the specific request.&lt;br /&gt;
&lt;br /&gt;
=== I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that? ===&lt;br /&gt;
If you tell us what you want, we may be able to help you out.&lt;br /&gt;
&lt;br /&gt;
=== Does SHARCNET provide any training on programming and using the systems? ===&lt;br /&gt;
&lt;br /&gt;
Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every summer (usually late May to early June), SHARCNET holds [https://www.sharcnet.ca/help/index.php/Summer_Schools an annual HPC Summer School] with a variety of in-depth, hands-on workshops. &lt;br /&gt;
&lt;br /&gt;
SHARCNET also offers a series of online seminars (so-called &amp;quot;General interest webinars&amp;quot;), typically delivered every second Wednesday at lunch time.  These are announced via the SHARCNET events mailing list and one can see the schedule at the [https://www.sharcnet.ca/my/news/calendar SHARCNET event calendar].  Past seminars are recorded and posted on [http://youtube.sharcnet.ca our youtube channel]. A full listing of the past webinars is available on the [https://helpwiki.sharcnet.ca/wiki/Online_Seminars Online Seminars] page.&lt;br /&gt;
&lt;br /&gt;
=== Attending SHARCNET Webinars ===&lt;br /&gt;
{{:Attending SHARCNET Webinars}}&lt;br /&gt;
&lt;br /&gt;
== Logging in to Systems, Transferring and Editing Files ==&lt;br /&gt;
&lt;br /&gt;
=== How do I login to SHARCNET? ===&lt;br /&gt;
You access the SHARCNET clusters using ssh.  For Graham and other national systems Alliance credentials are required.  For the remaining (&amp;quot;Legacy&amp;quot;) systems, you will require SHARCNET credentials (submit a ticket to help@sharcnet.ca if you have questions).&lt;br /&gt;
&lt;br /&gt;
====Unix/Linux/OS X====&lt;br /&gt;
To login to a system, you need to use an [http://www.openssh.com/ Secure Shell (SSH)] connection. If you are logging in from a UNIX-based machine, make sure it has an SSH client (ssh) installed (this is almost always the case on UNIX/Linux/OS X). If you have the same login name on both your local system and SHARCNET, and you want to login to, say, &amp;lt;tt&amp;gt;graham&amp;lt;/tt&amp;gt;, you may use the command:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If your Alliance username is different from the username on your local systems, then you may use either of the following forms:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca -l username&lt;br /&gt;
 ssh username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If you want to establish an X window connection so that you can use graphics applications such as &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ddt&amp;lt;/tt&amp;gt;, you can add a &amp;lt;tt&amp;gt;-Y&amp;lt;/tt&amp;gt; to the command:&lt;br /&gt;
&lt;br /&gt;
 ssh -Y username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
This will automatically set the X DISPLAY variable when you login.&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
If you are logging from a computer running Windows and need some pointers we recommend consulting our [[SSH]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between Login Nodes and Compute Nodes? ===&lt;br /&gt;
====Login Nodes====&lt;br /&gt;
&lt;br /&gt;
Most of our clusters have distinct &amp;#039;&amp;#039;login nodes&amp;#039;&amp;#039; associated with them that you are automatically redirected to when you login to the cluster (some systems are directly logged into, eg. SMPs and smaller specialty systems).  You can use these to do most of your work preparing for jobs (compiling, editing configuration files) and other low-intensity tasks like moving and copying files.  &lt;br /&gt;
&lt;br /&gt;
You can also use them for other quick tasks, like simple post-processing, but any significant work should be submitted as a job to the compute nodes.  On most login nodes, each process is limited to 1 cpu-hour; this will be noticable if you perform anything compute-intensive, and can affect IO-oriented activity as well (such as very large &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; operations.)&lt;br /&gt;
&lt;br /&gt;
=== How can I suspend and resume my session? ===&lt;br /&gt;
&lt;br /&gt;
The program screen can start persistent terminals from which you can detach and reattach.  The simplest use of screen is&lt;br /&gt;
&lt;br /&gt;
 screen -dR&lt;br /&gt;
&lt;br /&gt;
which will either reattach you to any existing session or create a new one if one doesn&amp;#039;t exist.  To terminate the current screen session, type &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;.  To detach manually (you are automatically detached if the connection is lost) press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;d&amp;#039;&amp;#039;, you can the resume later as above (ideal for running background jobs).  Note that &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; is screen&amp;#039;s escape sequence, so you have to do &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;a&amp;#039;&amp;#039; to get the regular effect of pressing &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; inside a screen session (e.g., moving the cursor to the start of the line in a shell).&lt;br /&gt;
&lt;br /&gt;
For a list of other &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; key sequences, press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;?&amp;#039;&amp;#039;.  For further details and  command line options, see the [http://www.gnu.org/software/screen/manual/screen.html screen manual] (or type &amp;lt;tt&amp;gt;man screen&amp;lt;/tt&amp;gt; on any of the clusters).&lt;br /&gt;
&lt;br /&gt;
Other notes:&lt;br /&gt;
* If you want to create additional &amp;quot;text windows&amp;quot;, use Ctrl-A Ctrl-C. Remember to type &amp;quot;exit&amp;quot; to close it. &lt;br /&gt;
* To switch to a &amp;quot;text window&amp;quot; with a certain number, use Ctrl-A # (where # is 0 to 9).&lt;br /&gt;
* To see a list of window numbers use Ctrl-A w&lt;br /&gt;
* To be presented a list of windows and select one to use, use Ctrl-A &amp;quot; (This is handy if you&amp;#039;ve made too many windows.)&lt;br /&gt;
* If the program running in a screen &amp;quot;text window&amp;quot; refuses to die (i.e., it needs to be killed) you can use Ctrl-A K&lt;br /&gt;
* For brief help on keystrokes use Ctrl-A ?&lt;br /&gt;
* For extensive help, run &amp;quot;man screen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What operating systems are supported? ===&lt;br /&gt;
UNIX in general. Currently, Linux is the only operating system used within SHARCNET.&lt;br /&gt;
&lt;br /&gt;
=== What makes a cluster different than my UNIX workstation? ===&lt;br /&gt;
&lt;br /&gt;
If you are familiar with UNIX, then using a cluster is not much different from using a workstation. When you login to a cluster, you in fact only log in to one of the cluster nodes. In most cases, each cluster node is a physical machine, usually a server class machine, with one or several CPUs, that is more or less the same as a workstation you are familiar with. The difference is that these nodes are interconnected with special interconnect devices and the way you run your program is slightly different. Across SHARCNET clusters, you are not expected to run your program interactively. You will have to run your program through a queueing system. That also means where and when your program gets to run is not decided by you, but by the queueing system.&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Those primary programming languages such as C, C++, Fortran, and Python are supported. Other languages, such as Java, Pascal and Ada, are also supported, but with limited technical support from us. &lt;br /&gt;
&lt;br /&gt;
=== How do I organize my files? ===&lt;br /&gt;
[https://docs.computecanada.ca/wiki/Storage_and_file_management#Storage_types Main file systems on our National systems.]&lt;br /&gt;
&lt;br /&gt;
==== How do I transfer files/directories to/from or between cluster? ====&lt;br /&gt;
&lt;br /&gt;
=====Unix/Linux=====&lt;br /&gt;
To transfer files to and from a cluster on a UNIX machine, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt;. For example, if you want to upload file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; to cluster graham from your machine &amp;lt;tt&amp;gt;myhost&amp;lt;/tt&amp;gt;, use the following command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp foo.f graham.computecanada.ca:&lt;br /&gt;
&lt;br /&gt;
assuming that your machine has &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; installed. If you want to transfer a file from Windows or Mac, you need have &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt; for Windows or Mac installed.&lt;br /&gt;
&lt;br /&gt;
If you transfer file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; between Alliance clusters, say from your home directory on cedar to your home directory on graham, simply use the following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp foo.f graham:/home/username/&lt;br /&gt;
&lt;br /&gt;
If you are transferring files between a UNIX machine and a cluster, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; command with &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; option. For instance, if you want to download the subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; in the directory &amp;lt;tt&amp;gt;project&amp;lt;/tt&amp;gt; in your home directory on graham to your local UNIX machine, on your local machine, use command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp -rp graham.sharcnet.ca:project/foo .&lt;br /&gt;
&lt;br /&gt;
Similarly, you can transfer the subdirectory between Alliance clusters. The following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp -r graham:/home/username/scratch/foo .&lt;br /&gt;
&lt;br /&gt;
will download subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; from your scratch directory on graham to your home directory on cedar (note that the prompt indicates you are currently logged on to cedar).&lt;br /&gt;
&lt;br /&gt;
The use of &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; option above will preserve the time stamp of each file. For Windows and Mac, you need to check the documentation of &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; for features. &amp;#039;&amp;#039;&amp;#039;Do not use -p switch with scp or cp commands on clusters, when the destination is your project space&amp;#039;&amp;#039;&amp;#039;, or you might run into the infamous [https://docs.computecanada.ca/wiki/Frequently_Asked_Questions#Disk_quota_exceeded_error_on_.2Fproject_filesystems Disk quota exceeded issue].&lt;br /&gt;
&lt;br /&gt;
You may also &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; and compress the entire directory and then use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to save bandwidth. In the above example, first you login to graham, then do the following&lt;br /&gt;
&lt;br /&gt;
 [username@gra-login2:~]$ cd project&lt;br /&gt;
 [username@gra-login2:~]$ tar -cvf foo.tar foo&lt;br /&gt;
 [username@gra-login2:~]$ gzip foo.tar&lt;br /&gt;
&lt;br /&gt;
Then on your local machine myhost, use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to copy the tar file&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp graham.computecanada.ca:project/foo.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Note for most Linux distributions, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; has an option &amp;lt;tt&amp;gt;-z&amp;lt;/tt&amp;gt; that will compress the &amp;lt;tt&amp;gt;.tar&amp;lt;/tt&amp;gt; file using &amp;lt;tt&amp;gt;gzip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Windows=====&lt;br /&gt;
You may read the instructions on using an ssh client. [[https://helpwiki.sharcnet.ca/wiki/SSH#Transfering_files_.28Secure_File_Transfer_Client.29]]&lt;br /&gt;
&lt;br /&gt;
====How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect?====&lt;br /&gt;
&lt;br /&gt;
In general, most users should be fine using &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to transfer data to and from SHARCNET systems.  If you need to transfer a lot of files &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; is recommended to ensure that you do not need to restart the transfer from scratch should there be a connection failure.  Although you can use &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to any cluster&amp;#039;s login node(s), it is often best to use gra-dtn1.computecanada.ca - it is dedicated to data transfer. &lt;br /&gt;
&lt;br /&gt;
In general one should expect the following transfer rates with &amp;#039;&amp;#039;scp&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* If you are connecting to SHARCNET through a Research/Education network site (ORION, CANARIE, Internet2) and are on a fast local network (this is the case for most users connecting from academic institutions) then you should be able to attain sustained transfer speeds in excess of 10MB/s.  If your path is all gigabit or better, you should be able to reach rates above 50 MB/s.&lt;br /&gt;
* If you are transferring data over the wider internet, you will not be able to attain these speeds, as all traffic that does not enter/exit SHARCNET via the R&amp;amp;E net is restricted to a limited-bandwidth commercial feed. In this case one will typically see rates on the order of 1MB/s or less.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that filesystems and networks are  shared resources and suffer from contention; if they are busy the above rates may not be attainable&lt;br /&gt;
&lt;br /&gt;
For transferring large amounts of data (many gigabytes) the best approach is to use the online tool [https://docs.computecanada.ca/wiki/Transferring_data#Globus_transfer Globus].&lt;br /&gt;
&lt;br /&gt;
==== How do I access the same file from different subdirectories on the same cluster ? ====&lt;br /&gt;
&lt;br /&gt;
You should not need copy large files on the same cluster (e.g. from one user to another&lt;br /&gt;
or using the same file in different subdirectories).  Instead of using&lt;br /&gt;
scp you might consider issuing a &amp;quot;soft link&amp;quot; command. Assume that you need access&lt;br /&gt;
to the file large_file1 in subdirectory /home/user1/subdir1 and you need it to be in your&lt;br /&gt;
subdirectory /home/my_account/my_dir from where you will invoke it under the name&lt;br /&gt;
my_large_file1.  Then go to that directory and type:&lt;br /&gt;
&lt;br /&gt;
 ln -s /home/user1/subdir1/large_file1    my_large_file1&lt;br /&gt;
&lt;br /&gt;
Another example, assume that in subdirectory /home/my_account/PROJ1 you have several&lt;br /&gt;
subdirectories called CASE1, CASE2, ...  In each subdirectory CASEn you have a slightly&lt;br /&gt;
different code but all of them process the same data file called test_data. Rather than&lt;br /&gt;
copying the test_data file into each CASEn subdirectory, place test_data above i.e.&lt;br /&gt;
in /home/my_account/PROJ1 and then in each CASEn subdirectory issue following &amp;quot;soft link&amp;quot;&lt;br /&gt;
command:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../test_data  test_data&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;soft links&amp;quot; can be removed by using the rm command. For example, to remove the soft link from&lt;br /&gt;
/home/my_account/PROJ1/CASE2 type following command from this subdirectory:&lt;br /&gt;
&lt;br /&gt;
 rm -rf test_data&lt;br /&gt;
&lt;br /&gt;
Typing above command from subdirectory /home/my_account/PROJ1 would remove the actual file and then&lt;br /&gt;
none of the CASEn subdirectories would have access to it.&lt;br /&gt;
&lt;br /&gt;
==== How are files deleted from the /home/userid/scratch filesystems? ====&lt;br /&gt;
&lt;br /&gt;
All files on /home/userid/scratch that are over 2 months old (not old in the common sense, please see below) are automatically deleted. Data needed for long term storage and reference should be kept in either /project, /nearline, or other archival storage areas. The scratch filesystem is checked at the end of the month for files which will be candidates for expiry on the 15th of the following month. On the first day of the month, a login message is posted and a notification e-mail is sent to all users who have at least one file which is a candidate for purging and containing the location of a file which lists all the candidates for purging.  On the 12th of the month, a second scan is run to check for files that will still expire on the 15th, and again, users with candidates for expiry are sent a second warning email.  Lastly, on the 15th, all files which are due for expiry are removed.&lt;br /&gt;
&lt;br /&gt;
An unconventional aspect of this system is that it does not determine the age of a file based on the file&amp;#039;s attributes, e.g., the standard dates reported by the &amp;lt;i&amp;gt;stat&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;find&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;ls&amp;lt;/i&amp;gt;, etc. commands.  (This is known as the &amp;quot;mtime&amp;quot; of the file, for &amp;quot;modification time&amp;quot;, and is frequently inaccurate.) The age of a file is determined based on whether or not its data contents (i.e., the information stored in the file) have changed or been accessed, and this age is stored externally to the file.  Only files where the contents have changed or accessed will have their age counter &amp;quot;reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A list of your candidate files for expiry can be found in /home/scratch_to_delete/$USER  (where $USER is your userid).&lt;br /&gt;
&lt;br /&gt;
===== How do I check the age of a file =====&lt;br /&gt;
We define a file&amp;#039;s age as the most recent of:&lt;br /&gt;
&lt;br /&gt;
 *the access time (atime) and&lt;br /&gt;
 *the change time (ctime)&lt;br /&gt;
&lt;br /&gt;
You can find the ctime of a file using&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lc &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while the atime can be obtained with the command&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lu &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do not use the modify time (mtime) of the file because it can be modified by the user or by other programs to display incorrect information.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, simple use of the atime property would be sufficient, as it is updated by the system in sync with the ctime. However, userspace programs are able to alter atime, potentially to times in the past, which could result in early expiration of a file. The use of ctime as a fallback guards against this undesirable behaviour.&lt;br /&gt;
&lt;br /&gt;
It is also your responsibility to manage your stored data: most of the filesystems are not intended to provide an indefinite archiving service so when a given file or directory is no longer needed, you need to move it to a more appropriate filesystem which may well mean your personal workstation or some other storage system under your control. Moving significant amounts of data between your workstation and an Alliance system or between two Alliance systems should generally be done using Globus.&lt;br /&gt;
&lt;br /&gt;
==== How to archive my data? ====&lt;br /&gt;
&lt;br /&gt;
===== Use tar to archive files and directories =====&lt;br /&gt;
&lt;br /&gt;
The primary archiving utility on all Linux and Unix-like systems is the [https://www.gnu.org/software/tar/manual/tar.html tar] command. It will bundle a bunch of files or directories together and generate a single file, called an &amp;#039;&amp;#039;archive file&amp;#039;&amp;#039; or &amp;#039;&amp;#039;tar-file&amp;#039;&amp;#039;. By convention an archive file has &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; as the file name extension. When you archive a directory with &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, it will, by default, include all the files and sub-directories contained within it, and sub-sub-directories contained in those, and so on. So the command &amp;lt;code&amp;gt;tar --create --file project1.tar project1&amp;lt;/code&amp;gt; will pack all the content of directory &amp;#039;&amp;#039;project1&amp;#039;&amp;#039; into the file &amp;#039;&amp;#039;project1.tar&amp;#039;&amp;#039;. The original directory will remain unchanged, so this may double the amount of disk space occupied!&lt;br /&gt;
&lt;br /&gt;
You can extract files from an archive using the same command with a different option:&amp;lt;code&amp;gt;tar --extract --file project1.tar&amp;lt;/code&amp;gt;. If there is no directory with the original name, it will be created. If a directory of that name exists and contains files of the same names as in the archive file, they will be overwritten. Another option can be added to specify the destination directory where to extract the archive&amp;#039;s content.   &lt;br /&gt;
&lt;br /&gt;
===== Compress and uncompress tar files =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; archiving utility can compress an archive file at the same time it creates it. There are a number of compression methods to choose from. We recommend either &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;, which can be used as follows:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ tar --create --xz --file project1.tar.xz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --xz --file project1.tar.xz&lt;br /&gt;
 [user_name@localhost]$ tar --create --gzip --file project1.tar.gz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --gzip --file project1.tar.gz&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;code&amp;gt;--xz&amp;lt;/code&amp;gt; will produce a smaller compressed file (a &amp;quot;better compression ratio&amp;quot;) but takes longer and uses more RAM while working. &amp;lt;code&amp;gt;--gzip&amp;lt;/code&amp;gt; does not typically compress as small, but may be used if you encounter difficulties due to insufficient memory or excessive run time during &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt;. A third option, &amp;lt;code&amp;gt;--bzip2&amp;lt;/code&amp;gt;, is also available, that typically does not compress as small as &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; but takes longer than &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt; first without compression and then use the commands &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; in a separate step, although there is rarely a reason to do so. Similarly, you can run &amp;lt;code&amp;gt;xz -d&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip -d&amp;lt;/code&amp;gt; to decompress an archive file before running &amp;lt;code&amp;gt;tar --extract&amp;lt;/code&amp;gt;, but again there is rarely a reason to do so.&lt;br /&gt;
&lt;br /&gt;
The commands &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; can be used to compress any file, not just archive files:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ gzip bigfile&lt;br /&gt;
 [user_name@localhost]$ xz bigfile&lt;br /&gt;
&lt;br /&gt;
These commands will produce the files &amp;lt;code&amp;gt;bigfile.gz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigfile.xz&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
=====Archival Storage=====&lt;br /&gt;
&lt;br /&gt;
On Graham, files copied to ~/nearline will be subsequently moved to offline (tape-based) storage. See [https://docs.computecanada.ca/wiki/Using_nearline_storage this link] for more details.&lt;br /&gt;
&lt;br /&gt;
==== How can I check the hidden files in directory? ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;.&amp;quot; at the beginning of the name means that the file is &amp;quot;hidden&amp;quot;. You have to use the -a option with ls to see it. I.e. &amp;lt;code&amp;gt;ls -a &amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
If you want to display only the hidden files then type:&lt;br /&gt;
 ls -d .*&lt;br /&gt;
&lt;br /&gt;
Note: there is an alias which is loaded from /etc/bashrc (see your .bashrc file). The alias is defined by alias &amp;lt;code&amp;gt; l.=&amp;#039;ls -d .* --color=auto&amp;#039; &amp;lt;/code&amp;gt; and if you type:&lt;br /&gt;
 l.&lt;br /&gt;
you will also display only the hidden files.&lt;br /&gt;
&lt;br /&gt;
==== How can I count the number of files in a directory? ====&lt;br /&gt;
&lt;br /&gt;
One can use the following command to count the number of files in a directory (in this example, your /work directory):&lt;br /&gt;
&lt;br /&gt;
 find /home/$USER -type f   | wc -l&lt;br /&gt;
&lt;br /&gt;
It is always a good idea to [[Knowledge_Base#How_to_archive_my_data.3F|archive]] and/or compress files that are no longer needed on the filesystem (see [https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_to_organize_a_large_number_of_files.3F below]).  This helps minimize one&amp;#039;s footprint on the filesystem and as such the impact they have on other users of the shared resource.&lt;br /&gt;
&lt;br /&gt;
==== How to organize a large number of files? ====&lt;br /&gt;
&lt;br /&gt;
With parallel cluster filesystems, you will get best I/O performance writing data to a small number of large files. Since all metadata operations on each of our parallel filesystems are handled by a single file server, depending on how many files are being accessed the server can become overwhelmed leading to poor overall I/O performance for all users. If your workflow involves storing data in a large number of files, it is best to pack these files into a small number of larger archives, e.g. using tar command&lt;br /&gt;
&lt;br /&gt;
 tar cvf archiveFile.tar directoryToArchive&lt;br /&gt;
&lt;br /&gt;
For better performance with many files inside your archive, we recommend to use DAR (Disk ARchive utility), which is a disk analog of tar (Tape ARchive).  Dar can extract files from anywhere in the archive much faster than tar. The dar command is available by default on sharcnet systems. It can be used to pack files into a dar archive by doing something like: &lt;br /&gt;
&lt;br /&gt;
 dar -s 1G -w -c archiveFile -g directoryToArchive&lt;br /&gt;
&lt;br /&gt;
In this example we split the archive into 1GB chunks, and the archive files will be named archiveFile.1.dar, archiveFile.2.dar, and so on. To list the contents of the archive, you can type:&lt;br /&gt;
&lt;br /&gt;
 dar -l archiveFile&lt;br /&gt;
&lt;br /&gt;
To temporarily extract files for post-processing into current directory, you would type:&lt;br /&gt;
&lt;br /&gt;
 dar -R . -O -x archiveFile -v -g pathToYourFile/fileToExtract&lt;br /&gt;
&lt;br /&gt;
=== I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host ===&lt;br /&gt;
&lt;br /&gt;
The most likely cause of this behaviour is repeated failed login attempts.  Part of our security policies involves blocking the IP address of machines that attempt multiple logins with incorrect passwords over a short period of time---many brute-force attacks on systems do exactly this: looking for poor passwords, badly configured accounts, etc.  Unfortunately, it isn&amp;#039;t uncommon for a user to forget their password and make repeated login attempts with incorrect passwords and end up with that machine blacklisted and unable to connect at all.&lt;br /&gt;
&lt;br /&gt;
A temporary solution is simply to attempt to login from another machine.  If you have access to another machine at your site, you can shell to that machine first, and then shell to the SHARCNET system (as that machine&amp;#039;s IP shouldn&amp;#039;t be blacklisted).  In order to have your machine unblocked, you will have to email to [mailto:support@computecanada.ca support@computecanada.ca] as a system administrator must manually intervene in order to fix it.&lt;br /&gt;
&lt;br /&gt;
NOTE: there are other situations that can produce this message, however they are rarer and more transient.  If you are unable to log in from one machine, but can from another, it is most likely the IP blacklisting that is the problem and the above will provide a temporary work-around while your problem ticket is processed.&lt;br /&gt;
&lt;br /&gt;
=== I am unable to ssh/scp from SHARCNET to my local computer ===&lt;br /&gt;
&lt;br /&gt;
Most campus networks are behind some sort of firewall.  If you can ssh out to SHARCNET, but cannot establish a connection in the other direction, then you are probably behind a firewall and should speak with your local system administrator or campus IT department to determine if there are any exceptions or workarounds in place.&lt;br /&gt;
&lt;br /&gt;
=== SSH tells me SOMEONE IS DOING SOMETHING NASTY!? ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please first read the following:&lt;br /&gt;
&lt;br /&gt;
https://docs.computecanada.ca/wiki/SSH_security_improvements&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suppose you attempt to login to SHARCNET, but instead get an alarming message like this:&lt;br /&gt;
&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that the RSA host key has just been changed.&lt;br /&gt;
 The fingerprint for the RSA key sent by the remote host is&lt;br /&gt;
 fe:65:ab:89:9a:23:34:5a:50:1e:05:d6:bf:ec:da:67.&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending key in /home/user/.ssh/known_hosts:42&lt;br /&gt;
 RSA host key for requin has changed and you have requested strict checking.&lt;br /&gt;
 Host key verification failed. &lt;br /&gt;
&lt;br /&gt;
SSH begins a connection by verifying that the host you&amp;#039;re connecting to is authentic. It does this by caching the hosts&amp;#039;s &amp;quot;hostkey&amp;quot; in your  &amp;lt;tt&amp;gt;~/.ssh/known_hosts&amp;lt;/tt&amp;gt; file. At times, a hostkey may be changed legitimately; when this happens, you may see such a message. It&amp;#039;s a good idea to verify this with us, you may be able to check the fingerprint yourself by logging into another sharcnet system and running:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub &lt;br /&gt;
&lt;br /&gt;
If the fingerprint is OK, the normal way to fix the problem is to simply remove the old hostkey from your &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. On machines with commandline SSH, you can do this with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -R thehostname&lt;br /&gt;
&lt;br /&gt;
You can use your choice of editor if you&amp;#039;re comfortable doing so (it&amp;#039;s a plain text file, but has long lines). On a unix-compatible machine, you can also use the following very small script (Substitute the line(s) printed in the warning message illustrated above for &amp;#039;42&amp;#039; here.):&lt;br /&gt;
&lt;br /&gt;
 perl -pi -e &amp;#039;undef $_ if (++$line == 42)&amp;#039; ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
Another solution is brute-force: remove the whole &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. This throws away any authentication checking, and afterwards, your first connection to any machine will prompt you to accept a newly discovered host key.&lt;br /&gt;
&lt;br /&gt;
=== Ssh works, but scp doesn&amp;#039;t! ===&lt;br /&gt;
&lt;br /&gt;
If you can &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; to a cluster successfully, but cannot &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to to it, the problem is likely that your login scripts print unexpected messages which confuse &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; is based on the same &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, but assumes that the connection is &amp;quot;clean&amp;quot;: that is, that it does not produce any un-asked-for content. If you have something like:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; will be confused by the salutation. To avoid this, simply ensure that the message is only printed on an interactive login:&lt;br /&gt;
&lt;br /&gt;
 if [ -t 0 ]; then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
or in csh/tcsh syntax:&lt;br /&gt;
&lt;br /&gt;
 if ( -t 0 ) then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
=== How do I edit my program on a cluster? ===&lt;br /&gt;
&lt;br /&gt;
We provide a variety of editors, such as the traditional text-mode &amp;lt;tt&amp;gt;emacs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; (vim), as well as a simpler one called &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;. If you have X on your desktop (and tunneled through SSH), you can use the GUI versions (&amp;lt;tt&amp;gt;xemacs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If your desktop supports FUSE, it&amp;#039;s very convenient to simply mount your home tree like this:&lt;br /&gt;
 mkdir sharcnet&lt;br /&gt;
 sshfs graham.computecanada.ca: sharcnet&lt;br /&gt;
you can then use any local editor of your choice.&lt;br /&gt;
&lt;br /&gt;
If you run emacs on your desktop, you can also edit a remote file from within your local emacs client using [http://www.gnu.org/software/tramp Tramp], opening and saving a file as /username@cluster.computecanada.ca:path/file.&lt;br /&gt;
&lt;br /&gt;
== Research at SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== I have a research project I would like to collaborate on with SHARCNET, who should I talk to? ===&lt;br /&gt;
&lt;br /&gt;
You may contact [mailto:barb@sharcnet.ca SHARCNET head office] or contact members of the [https://www.sharcnet.ca/my/contact/directory#techteam SHARCNET technical staff].&lt;br /&gt;
&lt;br /&gt;
=== How can I contribute compute resources to SHARCNET so that other researchers can share it? ===&lt;br /&gt;
&lt;br /&gt;
Most people&amp;#039;s research is &amp;quot;bursty&amp;quot; - there are usually sparse periods of time when some computation is urgently needed, and other periods when there is less demand. One problem with this is that if you purchase the equipment you need to meet your &amp;quot;burst&amp;quot; needs, it&amp;#039;ll probably sit, underutilized, during other times.&lt;br /&gt;
&lt;br /&gt;
An alternative is to donate control of this equipment to SHARCNET, and let us arrange for other users to use it when you are not. We prefer to be involved in the selection and configuration of such equipment. Our promise to contributors is that as much as possible, they should obtain as much benefit from the cluster as if it were not shared. Owners get preferential access. Naturally, owners are also able to burst to higher peak usage, since their equipment has been pooled with other contributions. (Technically, SHARCNET cannot itself own such equipment — it remains owned by the institution in question, and will be returned to the contributor upon request.) If you think this model will also work for you and you would like to contribute your computational resource to help the research community at SHARCNET, you can contact us for such arrangement.&lt;br /&gt;
&lt;br /&gt;
=== I do not know much about computation, nor is it my research interest. But I am interested in getting my research done faster with the help of the high performance computing technology. In other words, I do not care about the process and mechanism, but only the final results. Can SHARCNET provide this type of help? ===&lt;br /&gt;
&lt;br /&gt;
We will be happy to bring the technology of high performance computing to you to accelerate your research, if at all possible. If you would like to discuss your plan with us, please feel free to contact our [https://www.sharcnet.ca/my/contact/directory#techteam high performance computing specialists]. They will be happy to listen to your needs and are ready to provide appropriate suggestions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET participates in the Alliance national RAC (Resource Allocation Competition) and provides a continual competition for groups that require more than the default level of access to our resources.  Please see [[Dedicated Resources]] for further information.&lt;br /&gt;
&lt;br /&gt;
=== I heard SHARCNET offers fellowships, where can I get more information? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET no longer actively runs a fellowship program.  You may find information regarding past fellowships and other dedicated resource opportunities on the [https://www.sharcnet.ca/my/research/fellowships Research Fellowships page] of the web portal.&lt;br /&gt;
&lt;br /&gt;
=== I would like to do some research at SHARCNET as a visiting scholar, how should I apply? ===&lt;br /&gt;
&lt;br /&gt;
In general, you will need to find a hosting department or a person affiliated with one of the SHARCNET institutions. You may also [http://www.sharcnet.ca/my/contact contact us] directly for more specific information.&lt;br /&gt;
&lt;br /&gt;
=== I would like to send my students to SHARCNET to do some work for me. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
See above.&lt;br /&gt;
&lt;br /&gt;
== Contacting SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for research, academic exchanges, and technical issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for business development, education and other issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact a specific staff member at SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
See [https://www.sharcnet.ca/my/contact/directory staff directory] for contact information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Acknowledge SHARCNET in Publications ==&lt;br /&gt;
&lt;br /&gt;
=== How do I acknowledge SHARCNET in my publications? ===&lt;br /&gt;
&lt;br /&gt;
We recommend one cite the following:&lt;br /&gt;
&lt;br /&gt;
 This work was made possible by the facilities of the Shared Hierarchical &lt;br /&gt;
 Academic Research Computing Network (SHARCNET:www.sharcnet.ca) and Digital Research Alliance of Canada (https://alliancecan.ca/en).&lt;br /&gt;
&lt;br /&gt;
=== I&amp;#039;ve seen different spellings of the name, what is the standard spelling of SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
We suggest the spelling SHARCNET, all in upper case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What types of research programs / support are provided to the research community? ==&lt;br /&gt;
&lt;br /&gt;
Our overall intent is to provide support that can both respond to the range of needs that the user community presents and help to increase the sophistication of the community and enable new and larger-in-scope applications making use of SHARCNET&amp;#039;s HPC facilities. The range of support can perhaps best be understood in terms of a pyramid:&lt;br /&gt;
&lt;br /&gt;
=== Level 1 ===&lt;br /&gt;
&lt;br /&gt;
At the apex of the pyramid, SHARCNET supports a small number of projects with dedicated programmer support. The intent is to enable projects that will have a lasting impact and may lead to a &amp;quot;step change&amp;quot; in the way research is done at SHARCNET. Inter-disciplinary and inter-institutional projects are particularly welcomed. For the latest information about the program, including application guidelines, please see the  [https://www.sharcnet.ca/my/research/programming Programming Competition] page in our web portal.&lt;br /&gt;
&lt;br /&gt;
=== Level 2 ===&lt;br /&gt;
&lt;br /&gt;
The middle layers of support are provided through a number of initiatives.&lt;br /&gt;
&lt;br /&gt;
These include:&lt;br /&gt;
* Programming support of more modest duration (several days to one month engagement, usually part time)&lt;br /&gt;
* Training on a variety of topics through [https://helpwiki.sharcnet.ca/wiki/Training workshops, seminars and online training materials]&lt;br /&gt;
* Consultation. This may include user-initiated interactions on particular programs, algorithms, techniques, debugging, optimization etc., as well as unsolicited help to ensure effective use of SHARCNET systems&lt;br /&gt;
* Site Leaders play an important role in working with the community to help researchers connect with SHARCNET staff and to obtain appropriate help and support.&lt;br /&gt;
&lt;br /&gt;
=== Level 3 ===&lt;br /&gt;
&lt;br /&gt;
The base level of the pyramid handles the very large number of small requests that are essential to keeping the user community working effectively with the infrastructure on a day-to-day basis. Several of these can be answered by this FAQ; many of the issues are presented through the [https://www.sharcnet.ca/help/index.php/Knowledge_Base#Compute_Canada_Problem_Ticket_System ticketing system]. The support is largely problem oriented with each problem being time limited.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=945</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=945"/>
		<updated>2024-09-17T17:34:21Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Sharcnet_logo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== About SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== What is SHARCNET? ===&lt;br /&gt;
SHARCNET stands for Shared Hierarchical Academic Research Computing Network. Established in 2000, SHARCNET is the largest high performance computing consortium in Canada, involving 19 universities and colleges across southern, central and northern Ontario.&lt;br /&gt;
&lt;br /&gt;
SHARCNET is a member consortium in the [https://alliancecan.ca/en Digital Research Alliance of Canada (Alliance)]  national HPC platform.&lt;br /&gt;
&lt;br /&gt;
=== Where is SHARCNET? ===&lt;br /&gt;
The [http://www.sharcnet.ca/my/contact main office] of SHARCNET is located in the Western Science Centre at [http://www.uwo.ca/ The University of Western Ontario].&lt;br /&gt;
&lt;br /&gt;
=== What does SHARCNET have? ===&lt;br /&gt;
The primary SHARCNET compute system is [https://docs.computecanada.ca/wiki/Graham Graham heterogeneous cluster] located at the University of Waterloo.  It is named after Wes Graham, the first director of the Computing Centre at Waterloo.  It consists of 41,548 cores and 520 GPU devices, spread across 1,185 nodes of different configurations.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with SHARCNET? ===&lt;br /&gt;
If you have a program that takes months to run on your PC, you could probably run it within a few hours using hundreds of processors on SHARCNET / Alliance, provided your program is inherently parallelisable. If you have hundreds or thousands of test cases to run through on your PC or computers in your lab, then with hundreds of processors running those cases independently will significantly reduce your test cycles.&lt;br /&gt;
&lt;br /&gt;
=== Who is running SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
The daily operation and development of SHARCNET computational facilities is managed by a group of highly qualified system administrators. In addition, we have a team of high performance technical computing consultants, who are responsible for technical support on libraries, programming and application analysis.&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET? ===&lt;br /&gt;
For technical inquiries, you may send E-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] or [mailto:help@sharcnet.ca help@sharcnet.ca], or [https://www.sharcnet.ca/my/contact/directory#techteam contact your local system administrator or HPC specialist]. For general inquiries, you may contact the SHARCNET [http://www.sharcnet.ca/my/contact main office].&lt;br /&gt;
&lt;br /&gt;
== Getting an Account with SHARCNET and Related Issues ==&lt;br /&gt;
&lt;br /&gt;
To use SHARCNET (and any other national facilities in Alliance) one has to [https://www.alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account apply for an Alliance account].&lt;br /&gt;
&lt;br /&gt;
== Getting Help ==&lt;br /&gt;
&lt;br /&gt;
=== I have encountered a problem while using an Alliance /SHARCNET system and need help, who should I talk to? ===&lt;br /&gt;
We encourage you to use the problem ticketing system (described in detail [[FAQ#Alliance_Problem_Ticket_System|below]]) .  This is the most efficient way of reporting a problem.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the [https://www.sharcnet.ca/my/contact/directory directory] page.&lt;br /&gt;
&lt;br /&gt;
=== How long should I expect to wait for support? ===&lt;br /&gt;
Unfortunately Alliance/SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week.  User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .  &lt;br /&gt;
&lt;br /&gt;
Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.  &lt;br /&gt;
&lt;br /&gt;
=== Alliance Problem Ticket System ===&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;problem ticket system&amp;quot;? ====&lt;br /&gt;
&lt;br /&gt;
This is a system that allows anyone with an Alliance account to start a persistent email thread that is referred to as a &amp;quot;problem ticket&amp;quot;.    When a user submits a new ticket it will be brought to the attention of an appropriate and available Alliance/SHARCNET staff member for resolution.  &lt;br /&gt;
&lt;br /&gt;
You interact with the ticket system entirely via email.&lt;br /&gt;
&lt;br /&gt;
==== What do I need to specify in a ticket ? ====&lt;br /&gt;
&lt;br /&gt;
To help us address your question faster, please try to do the following when submitting a ticket:&lt;br /&gt;
&lt;br /&gt;
#specify which of our systems is involved &lt;br /&gt;
#if the problem pertains to a job, then report the &amp;lt;u&amp;gt;jobid&amp;lt;/u&amp;gt; associated with the job; this is an integer that is returned by the scheduler when you submit the job&lt;br /&gt;
#report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem; if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem&lt;br /&gt;
#if you&amp;#039;d like for a particular staff member to be aware of the ticket, mention them&lt;br /&gt;
&lt;br /&gt;
==== How do I submit a ticket? ====&lt;br /&gt;
&lt;br /&gt;
In general, you can submit a new ticket by emailing  [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca]  with the email address associated with your Alliance account.  If you are using another email address, please provide your full name, your Alliance default username (if available) and your university or institution.&lt;br /&gt;
&lt;br /&gt;
If you like, you can also target your inquiry more specifically, by using the following addresses to submit your ticket:&lt;br /&gt;
&lt;br /&gt;
* [mailto:help@sharcnet.ca help@sharcnet.ca] - questions specific to SHARCNET, for example relating to contributed SHARCNET systems&lt;br /&gt;
* [mailto:globus@tech.alliancecan.ca globus@tech.alliancecan.ca] -- Questions about [[Globus]] file transfer services&lt;br /&gt;
* [mailto:cloud@tech.alliancecan.ca cloud@tech.alliancecan.ca] -- Questions about using Alliance cloud resources&lt;br /&gt;
* [mailto:accounts@tech.alliancecan.ca accounts@tech.alliancecan.ca] -- Questions about Alliance accounts&lt;br /&gt;
* [mailto:renewals@tech.alliancecan.ca renewals@tech.alliancecan.ca] -- Questions about Alliance account renewals&lt;br /&gt;
&lt;br /&gt;
=== I am new to parallel programming, can you help me get started with my project? ===&lt;br /&gt;
Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research. If your programming project would involve a significant staff time, you should consider applying for Dedicated Programming support. (We run the competition annually; see https://www.sharcnet.ca/my/research/programming).&lt;br /&gt;
&lt;br /&gt;
=== Can you install a package on a cluster for me? ===&lt;br /&gt;
Certainly.  We suggest you make the request by sending e-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] with the specific request.&lt;br /&gt;
&lt;br /&gt;
=== I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that? ===&lt;br /&gt;
If you tell us what you want, we may be able to help you out.&lt;br /&gt;
&lt;br /&gt;
=== Does SHARCNET provide any training on programming and using the systems? ===&lt;br /&gt;
&lt;br /&gt;
Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every summer (usually late May to early June), SHARCNET holds [https://www.sharcnet.ca/help/index.php/Summer_Schools an annual HPC Summer School] with a variety of in-depth, hands-on workshops. &lt;br /&gt;
&lt;br /&gt;
SHARCNET also offers a series of online seminars (so-called &amp;quot;General interest webinars&amp;quot;), typically delivered every second Wednesday at lunch time.  These are announced via the SHARCNET events mailing list and one can see the schedule at the [https://www.sharcnet.ca/my/news/calendar SHARCNET event calendar].  Past seminars are recorded and posted on [http://youtube.sharcnet.ca our youtube channel]. A full listing of the past webinars is available on the [https://helpwiki.sharcnet.ca/wiki/Online_Seminars Online Seminars] page.&lt;br /&gt;
&lt;br /&gt;
=== Attending SHARCNET Webinars ===&lt;br /&gt;
{{:Attending SHARCNET Webinars}}&lt;br /&gt;
&lt;br /&gt;
== Logging in to Systems, Transferring and Editing Files ==&lt;br /&gt;
&lt;br /&gt;
=== How do I login to SHARCNET? ===&lt;br /&gt;
You access the SHARCNET clusters using ssh.  For Graham and other national systems Alliance credentials are required.  For the remaining (&amp;quot;Legacy&amp;quot;) systems, you will require SHARCNET credentials (submit a ticket to help@sharcnet.ca if you have questions).&lt;br /&gt;
&lt;br /&gt;
====Unix/Linux/OS X====&lt;br /&gt;
To login to a system, you need to use an [http://www.openssh.com/ Secure Shell (SSH)] connection. If you are logging in from a UNIX-based machine, make sure it has an SSH client (ssh) installed (this is almost always the case on UNIX/Linux/OS X). If you have the same login name on both your local system and SHARCNET, and you want to login to, say, &amp;lt;tt&amp;gt;graham&amp;lt;/tt&amp;gt;, you may use the command:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If your Alliance username is different from the username on your local systems, then you may use either of the following forms:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca -l username&lt;br /&gt;
 ssh username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If you want to establish an X window connection so that you can use graphics applications such as &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ddt&amp;lt;/tt&amp;gt;, you can add a &amp;lt;tt&amp;gt;-Y&amp;lt;/tt&amp;gt; to the command:&lt;br /&gt;
&lt;br /&gt;
 ssh -Y username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
This will automatically set the X DISPLAY variable when you login.&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
If you are logging from a computer running Windows and need some pointers we recommend consulting our [[SSH]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between Login Nodes and Compute Nodes? ===&lt;br /&gt;
====Login Nodes====&lt;br /&gt;
&lt;br /&gt;
Most of our clusters have distinct &amp;#039;&amp;#039;login nodes&amp;#039;&amp;#039; associated with them that you are automatically redirected to when you login to the cluster (some systems are directly logged into, eg. SMPs and smaller specialty systems).  You can use these to do most of your work preparing for jobs (compiling, editing configuration files) and other low-intensity tasks like moving and copying files.  &lt;br /&gt;
&lt;br /&gt;
You can also use them for other quick tasks, like simple post-processing, but any significant work should be submitted as a job to the compute nodes.  On most login nodes, each process is limited to 1 cpu-hour; this will be noticable if you perform anything compute-intensive, and can affect IO-oriented activity as well (such as very large &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; operations.)&lt;br /&gt;
&lt;br /&gt;
=== How can I suspend and resume my session? ===&lt;br /&gt;
&lt;br /&gt;
The program screen can start persistent terminals from which you can detach and reattach.  The simplest use of screen is&lt;br /&gt;
&lt;br /&gt;
 screen -dR&lt;br /&gt;
&lt;br /&gt;
which will either reattach you to any existing session or create a new one if one doesn&amp;#039;t exist.  To terminate the current screen session, type &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;.  To detach manually (you are automatically detached if the connection is lost) press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;d&amp;#039;&amp;#039;, you can the resume later as above (ideal for running background jobs).  Note that &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; is screen&amp;#039;s escape sequence, so you have to do &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;a&amp;#039;&amp;#039; to get the regular effect of pressing &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; inside a screen session (e.g., moving the cursor to the start of the line in a shell).&lt;br /&gt;
&lt;br /&gt;
For a list of other &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; key sequences, press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;?&amp;#039;&amp;#039;.  For further details and  command line options, see the [http://www.gnu.org/software/screen/manual/screen.html screen manual] (or type &amp;lt;tt&amp;gt;man screen&amp;lt;/tt&amp;gt; on any of the clusters).&lt;br /&gt;
&lt;br /&gt;
Other notes:&lt;br /&gt;
* If you want to create additional &amp;quot;text windows&amp;quot;, use Ctrl-A Ctrl-C. Remember to type &amp;quot;exit&amp;quot; to close it. &lt;br /&gt;
* To switch to a &amp;quot;text window&amp;quot; with a certain number, use Ctrl-A # (where # is 0 to 9).&lt;br /&gt;
* To see a list of window numbers use Ctrl-A w&lt;br /&gt;
* To be presented a list of windows and select one to use, use Ctrl-A &amp;quot; (This is handy if you&amp;#039;ve made too many windows.)&lt;br /&gt;
* If the program running in a screen &amp;quot;text window&amp;quot; refuses to die (i.e., it needs to be killed) you can use Ctrl-A K&lt;br /&gt;
* For brief help on keystrokes use Ctrl-A ?&lt;br /&gt;
* For extensive help, run &amp;quot;man screen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What operating systems are supported? ===&lt;br /&gt;
UNIX in general. Currently, Linux is the only operating system used within SHARCNET.&lt;br /&gt;
&lt;br /&gt;
=== What makes a cluster different than my UNIX workstation? ===&lt;br /&gt;
&lt;br /&gt;
If you are familiar with UNIX, then using a cluster is not much different from using a workstation. When you login to a cluster, you in fact only log in to one of the cluster nodes. In most cases, each cluster node is a physical machine, usually a server class machine, with one or several CPUs, that is more or less the same as a workstation you are familiar with. The difference is that these nodes are interconnected with special interconnect devices and the way you run your program is slightly different. Across SHARCNET clusters, you are not expected to run your program interactively. You will have to run your program through a queueing system. That also means where and when your program gets to run is not decided by you, but by the queueing system.&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Those primary programming languages such as C, C++, Fortran, and Python are supported. Other languages, such as Java, Pascal and Ada, are also supported, but with limited technical support from us. &lt;br /&gt;
&lt;br /&gt;
=== How do I organize my files? ===&lt;br /&gt;
[https://docs.computecanada.ca/wiki/Storage_and_file_management#Storage_types Main file systems on our National systems.]&lt;br /&gt;
&lt;br /&gt;
==== How do I transfer files/directories to/from or between cluster? ====&lt;br /&gt;
&lt;br /&gt;
=====Unix/Linux=====&lt;br /&gt;
To transfer files to and from a cluster on a UNIX machine, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt;. For example, if you want to upload file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; to cluster graham from your machine &amp;lt;tt&amp;gt;myhost&amp;lt;/tt&amp;gt;, use the following command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp foo.f graham.computecanada.ca:&lt;br /&gt;
&lt;br /&gt;
assuming that your machine has &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; installed. If you want to transfer a file from Windows or Mac, you need have &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt; for Windows or Mac installed.&lt;br /&gt;
&lt;br /&gt;
If you transfer file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; between Alliance clusters, say from your home directory on cedar to your home directory on graham, simply use the following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp foo.f graham:/home/username/&lt;br /&gt;
&lt;br /&gt;
If you are transferring files between a UNIX machine and a cluster, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; command with &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; option. For instance, if you want to download the subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; in the directory &amp;lt;tt&amp;gt;project&amp;lt;/tt&amp;gt; in your home directory on graham to your local UNIX machine, on your local machine, use command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp -rp graham.sharcnet.ca:project/foo .&lt;br /&gt;
&lt;br /&gt;
Similarly, you can transfer the subdirectory between Alliance clusters. The following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp -r graham:/home/username/scratch/foo .&lt;br /&gt;
&lt;br /&gt;
will download subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; from your scratch directory on graham to your home directory on cedar (note that the prompt indicates you are currently logged on to cedar).&lt;br /&gt;
&lt;br /&gt;
The use of &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; option above will preserve the time stamp of each file. For Windows and Mac, you need to check the documentation of &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; for features. &amp;#039;&amp;#039;&amp;#039;Do not use -p switch with scp or cp commands on clusters, when the destination is your project space&amp;#039;&amp;#039;&amp;#039;, or you might run into the infamous [https://docs.computecanada.ca/wiki/Frequently_Asked_Questions#Disk_quota_exceeded_error_on_.2Fproject_filesystems Disk quota exceeded issue].&lt;br /&gt;
&lt;br /&gt;
You may also &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; and compress the entire directory and then use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to save bandwidth. In the above example, first you login to graham, then do the following&lt;br /&gt;
&lt;br /&gt;
 [username@gra-login2:~]$ cd project&lt;br /&gt;
 [username@gra-login2:~]$ tar -cvf foo.tar foo&lt;br /&gt;
 [username@gra-login2:~]$ gzip foo.tar&lt;br /&gt;
&lt;br /&gt;
Then on your local machine myhost, use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to copy the tar file&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp graham.computecanada.ca:project/foo.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Note for most Linux distributions, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; has an option &amp;lt;tt&amp;gt;-z&amp;lt;/tt&amp;gt; that will compress the &amp;lt;tt&amp;gt;.tar&amp;lt;/tt&amp;gt; file using &amp;lt;tt&amp;gt;gzip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Windows=====&lt;br /&gt;
You may read the instructions on using an ssh client. [[https://helpwiki.sharcnet.ca/wiki/SSH#Transfering_files_.28Secure_File_Transfer_Client.29]]&lt;br /&gt;
&lt;br /&gt;
====How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect?====&lt;br /&gt;
&lt;br /&gt;
In general, most users should be fine using &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to transfer data to and from SHARCNET systems.  If you need to transfer a lot of files &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; is recommended to ensure that you do not need to restart the transfer from scratch should there be a connection failure.  Although you can use &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to any cluster&amp;#039;s login node(s), it is often best to use gra-dtn1.computecanada.ca - it is dedicated to data transfer. &lt;br /&gt;
&lt;br /&gt;
In general one should expect the following transfer rates with &amp;#039;&amp;#039;scp&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* If you are connecting to SHARCNET through a Research/Education network site (ORION, CANARIE, Internet2) and are on a fast local network (this is the case for most users connecting from academic institutions) then you should be able to attain sustained transfer speeds in excess of 10MB/s.  If your path is all gigabit or better, you should be able to reach rates above 50 MB/s.&lt;br /&gt;
* If you are transferring data over the wider internet, you will not be able to attain these speeds, as all traffic that does not enter/exit SHARCNET via the R&amp;amp;E net is restricted to a limited-bandwidth commercial feed. In this case one will typically see rates on the order of 1MB/s or less.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that filesystems and networks are  shared resources and suffer from contention; if they are busy the above rates may not be attainable&lt;br /&gt;
&lt;br /&gt;
For transferring large amounts of data (many gigabytes) the best approach is to use the online tool [https://docs.computecanada.ca/wiki/Transferring_data#Globus_transfer Globus].&lt;br /&gt;
&lt;br /&gt;
==== How do I access the same file from different subdirectories on the same cluster ? ====&lt;br /&gt;
&lt;br /&gt;
You should not need copy large files on the same cluster (e.g. from one user to another&lt;br /&gt;
or using the same file in different subdirectories).  Instead of using&lt;br /&gt;
scp you might consider issuing a &amp;quot;soft link&amp;quot; command. Assume that you need access&lt;br /&gt;
to the file large_file1 in subdirectory /home/user1/subdir1 and you need it to be in your&lt;br /&gt;
subdirectory /home/my_account/my_dir from where you will invoke it under the name&lt;br /&gt;
my_large_file1.  Then go to that directory and type:&lt;br /&gt;
&lt;br /&gt;
 ln -s /home/user1/subdir1/large_file1    my_large_file1&lt;br /&gt;
&lt;br /&gt;
Another example, assume that in subdirectory /home/my_account/PROJ1 you have several&lt;br /&gt;
subdirectories called CASE1, CASE2, ...  In each subdirectory CASEn you have a slightly&lt;br /&gt;
different code but all of them process the same data file called test_data. Rather than&lt;br /&gt;
copying the test_data file into each CASEn subdirectory, place test_data above i.e.&lt;br /&gt;
in /home/my_account/PROJ1 and then in each CASEn subdirectory issue following &amp;quot;soft link&amp;quot;&lt;br /&gt;
command:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../test_data  test_data&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;soft links&amp;quot; can be removed by using the rm command. For example, to remove the soft link from&lt;br /&gt;
/home/my_account/PROJ1/CASE2 type following command from this subdirectory:&lt;br /&gt;
&lt;br /&gt;
 rm -rf test_data&lt;br /&gt;
&lt;br /&gt;
Typing above command from subdirectory /home/my_account/PROJ1 would remove the actual file and then&lt;br /&gt;
none of the CASEn subdirectories would have access to it.&lt;br /&gt;
&lt;br /&gt;
==== How are files deleted from the /home/userid/scratch filesystems? ====&lt;br /&gt;
&lt;br /&gt;
All files on /home/userid/scratch that are over 2 months old (not old in the common sense, please see below) are automatically deleted. Data needed for long term storage and reference should be kept in either /project, /nearline, or other archival storage areas. The scratch filesystem is checked at the end of the month for files which will be candidates for expiry on the 15th of the following month. On the first day of the month, a login message is posted and a notification e-mail is sent to all users who have at least one file which is a candidate for purging and containing the location of a file which lists all the candidates for purging.  On the 12th of the month, a second scan is run to check for files that will still expire on the 15th, and again, users with candidates for expiry are sent a second warning email.  Lastly, on the 15th, all files which are due for expiry are removed.&lt;br /&gt;
&lt;br /&gt;
An unconventional aspect of this system is that it does not determine the age of a file based on the file&amp;#039;s attributes, e.g., the standard dates reported by the &amp;lt;i&amp;gt;stat&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;find&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;ls&amp;lt;/i&amp;gt;, etc. commands.  (This is known as the &amp;quot;mtime&amp;quot; of the file, for &amp;quot;modification time&amp;quot;, and is frequently inaccurate.) The age of a file is determined based on whether or not its data contents (i.e., the information stored in the file) have changed or been accessed, and this age is stored externally to the file.  Only files where the contents have changed or accessed will have their age counter &amp;quot;reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A list of your candidate files for expiry can be found in /home/scratch_to_delete/$USER  (where $USER is your userid).&lt;br /&gt;
&lt;br /&gt;
===== How do I check the age of a file =====&lt;br /&gt;
We define a file&amp;#039;s age as the most recent of:&lt;br /&gt;
&lt;br /&gt;
 *the access time (atime) and&lt;br /&gt;
 *the change time (ctime)&lt;br /&gt;
&lt;br /&gt;
You can find the ctime of a file using&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lc &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while the atime can be obtained with the command&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lu &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do not use the modify time (mtime) of the file because it can be modified by the user or by other programs to display incorrect information.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, simple use of the atime property would be sufficient, as it is updated by the system in sync with the ctime. However, userspace programs are able to alter atime, potentially to times in the past, which could result in early expiration of a file. The use of ctime as a fallback guards against this undesirable behaviour.&lt;br /&gt;
&lt;br /&gt;
It is also your responsibility to manage your stored data: most of the filesystems are not intended to provide an indefinite archiving service so when a given file or directory is no longer needed, you need to move it to a more appropriate filesystem which may well mean your personal workstation or some other storage system under your control. Moving significant amounts of data between your workstation and an Alliance system or between two Alliance systems should generally be done using Globus.&lt;br /&gt;
&lt;br /&gt;
==== How to archive my data? ====&lt;br /&gt;
&lt;br /&gt;
===== Use tar to archive files and directories =====&lt;br /&gt;
&lt;br /&gt;
The primary archiving utility on all Linux and Unix-like systems is the [https://www.gnu.org/software/tar/manual/tar.html tar] command. It will bundle a bunch of files or directories together and generate a single file, called an &amp;#039;&amp;#039;archive file&amp;#039;&amp;#039; or &amp;#039;&amp;#039;tar-file&amp;#039;&amp;#039;. By convention an archive file has &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; as the file name extension. When you archive a directory with &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, it will, by default, include all the files and sub-directories contained within it, and sub-sub-directories contained in those, and so on. So the command &amp;lt;code&amp;gt;tar --create --file project1.tar project1&amp;lt;/code&amp;gt; will pack all the content of directory &amp;#039;&amp;#039;project1&amp;#039;&amp;#039; into the file &amp;#039;&amp;#039;project1.tar&amp;#039;&amp;#039;. The original directory will remain unchanged, so this may double the amount of disk space occupied!&lt;br /&gt;
&lt;br /&gt;
You can extract files from an archive using the same command with a different option:&amp;lt;code&amp;gt;tar --extract --file project1.tar&amp;lt;/code&amp;gt;. If there is no directory with the original name, it will be created. If a directory of that name exists and contains files of the same names as in the archive file, they will be overwritten. Another option can be added to specify the destination directory where to extract the archive&amp;#039;s content.   &lt;br /&gt;
&lt;br /&gt;
===== Compress and uncompress tar files =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; archiving utility can compress an archive file at the same time it creates it. There are a number of compression methods to choose from. We recommend either &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;, which can be used as follows:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ tar --create --xz --file project1.tar.xz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --xz --file project1.tar.xz&lt;br /&gt;
 [user_name@localhost]$ tar --create --gzip --file project1.tar.gz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --gzip --file project1.tar.gz&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;code&amp;gt;--xz&amp;lt;/code&amp;gt; will produce a smaller compressed file (a &amp;quot;better compression ratio&amp;quot;) but takes longer and uses more RAM while working. &amp;lt;code&amp;gt;--gzip&amp;lt;/code&amp;gt; does not typically compress as small, but may be used if you encounter difficulties due to insufficient memory or excessive run time during &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt;. A third option, &amp;lt;code&amp;gt;--bzip2&amp;lt;/code&amp;gt;, is also available, that typically does not compress as small as &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; but takes longer than &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt; first without compression and then use the commands &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; in a separate step, although there is rarely a reason to do so. Similarly, you can run &amp;lt;code&amp;gt;xz -d&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip -d&amp;lt;/code&amp;gt; to decompress an archive file before running &amp;lt;code&amp;gt;tar --extract&amp;lt;/code&amp;gt;, but again there is rarely a reason to do so.&lt;br /&gt;
&lt;br /&gt;
The commands &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; can be used to compress any file, not just archive files:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ gzip bigfile&lt;br /&gt;
 [user_name@localhost]$ xz bigfile&lt;br /&gt;
&lt;br /&gt;
These commands will produce the files &amp;lt;code&amp;gt;bigfile.gz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigfile.xz&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
=====Archival Storage=====&lt;br /&gt;
&lt;br /&gt;
On Graham, files copied to ~/nearline will be subsequently moved to offline (tape-based) storage. See [https://docs.computecanada.ca/wiki/Using_nearline_storage this link] for more details.&lt;br /&gt;
&lt;br /&gt;
==== How can I check the hidden files in directory? ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;.&amp;quot; at the beginning of the name means that the file is &amp;quot;hidden&amp;quot;. You have to use the -a option with ls to see it. I.e. &amp;lt;code&amp;gt;ls -a &amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
If you want to display only the hidden files then type:&lt;br /&gt;
 ls -d .*&lt;br /&gt;
&lt;br /&gt;
Note: there is an alias which is loaded from /etc/bashrc (see your .bashrc file). The alias is defined by alias &amp;lt;code&amp;gt; l.=&amp;#039;ls -d .* --color=auto&amp;#039; &amp;lt;/code&amp;gt; and if you type:&lt;br /&gt;
 l.&lt;br /&gt;
you will also display only the hidden files.&lt;br /&gt;
&lt;br /&gt;
==== How can I count the number of files in a directory? ====&lt;br /&gt;
&lt;br /&gt;
One can use the following command to count the number of files in a directory (in this example, your /work directory):&lt;br /&gt;
&lt;br /&gt;
 find /home/$USER -type f   | wc -l&lt;br /&gt;
&lt;br /&gt;
It is always a good idea to [[Knowledge_Base#How_to_archive_my_data.3F|archive]] and/or compress files that are no longer needed on the filesystem (see [https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_to_organize_a_large_number_of_files.3F below]).  This helps minimize one&amp;#039;s footprint on the filesystem and as such the impact they have on other users of the shared resource.&lt;br /&gt;
&lt;br /&gt;
==== How to organize a large number of files? ====&lt;br /&gt;
&lt;br /&gt;
With parallel cluster filesystems, you will get best I/O performance writing data to a small number of large files. Since all metadata operations on each of our parallel filesystems are handled by a single file server, depending on how many files are being accessed the server can become overwhelmed leading to poor overall I/O performance for all users. If your workflow involves storing data in a large number of files, it is best to pack these files into a small number of larger archives, e.g. using tar command&lt;br /&gt;
&lt;br /&gt;
 tar cvf archiveFile.tar directoryToArchive&lt;br /&gt;
&lt;br /&gt;
For better performance with many files inside your archive, we recommend to use DAR (Disk ARchive utility), which is a disk analog of tar (Tape ARchive).  Dar can extract files from anywhere in the archive much faster than tar. The dar command is available by default on sharcnet systems. It can be used to pack files into a dar archive by doing something like: &lt;br /&gt;
&lt;br /&gt;
 dar -s 1G -w -c archiveFile -g directoryToArchive&lt;br /&gt;
&lt;br /&gt;
In this example we split the archive into 1GB chunks, and the archive files will be named archiveFile.1.dar, archiveFile.2.dar, and so on. To list the contents of the archive, you can type:&lt;br /&gt;
&lt;br /&gt;
 dar -l archiveFile&lt;br /&gt;
&lt;br /&gt;
To temporarily extract files for post-processing into current directory, you would type:&lt;br /&gt;
&lt;br /&gt;
 dar -R . -O -x archiveFile -v -g pathToYourFile/fileToExtract&lt;br /&gt;
&lt;br /&gt;
=== I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host ===&lt;br /&gt;
&lt;br /&gt;
The most likely cause of this behaviour is repeated failed login attempts.  Part of our security policies involves blocking the IP address of machines that attempt multiple logins with incorrect passwords over a short period of time---many brute-force attacks on systems do exactly this: looking for poor passwords, badly configured accounts, etc.  Unfortunately, it isn&amp;#039;t uncommon for a user to forget their password and make repeated login attempts with incorrect passwords and end up with that machine blacklisted and unable to connect at all.&lt;br /&gt;
&lt;br /&gt;
A temporary solution is simply to attempt to login from another machine.  If you have access to another machine at your site, you can shell to that machine first, and then shell to the SHARCNET system (as that machine&amp;#039;s IP shouldn&amp;#039;t be blacklisted).  In order to have your machine unblocked, you will have to email to [mailto:support@computecanada.ca support@computecanada.ca] as a system administrator must manually intervene in order to fix it.&lt;br /&gt;
&lt;br /&gt;
NOTE: there are other situations that can produce this message, however they are rarer and more transient.  If you are unable to log in from one machine, but can from another, it is most likely the IP blacklisting that is the problem and the above will provide a temporary work-around while your problem ticket is processed.&lt;br /&gt;
&lt;br /&gt;
=== I am unable to ssh/scp from SHARCNET to my local computer ===&lt;br /&gt;
&lt;br /&gt;
Most campus networks are behind some sort of firewall.  If you can ssh out to SHARCNET, but cannot establish a connection in the other direction, then you are probably behind a firewall and should speak with your local system administrator or campus IT department to determine if there are any exceptions or workarounds in place.&lt;br /&gt;
&lt;br /&gt;
=== SSH tells me SOMEONE IS DOING SOMETHING NASTY!? ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please first read the following:&lt;br /&gt;
&lt;br /&gt;
https://docs.computecanada.ca/wiki/SSH_security_improvements&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suppose you attempt to login to SHARCNET, but instead get an alarming message like this:&lt;br /&gt;
&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that the RSA host key has just been changed.&lt;br /&gt;
 The fingerprint for the RSA key sent by the remote host is&lt;br /&gt;
 fe:65:ab:89:9a:23:34:5a:50:1e:05:d6:bf:ec:da:67.&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending key in /home/user/.ssh/known_hosts:42&lt;br /&gt;
 RSA host key for requin has changed and you have requested strict checking.&lt;br /&gt;
 Host key verification failed. &lt;br /&gt;
&lt;br /&gt;
SSH begins a connection by verifying that the host you&amp;#039;re connecting to is authentic. It does this by caching the hosts&amp;#039;s &amp;quot;hostkey&amp;quot; in your  &amp;lt;tt&amp;gt;~/.ssh/known_hosts&amp;lt;/tt&amp;gt; file. At times, a hostkey may be changed legitimately; when this happens, you may see such a message. It&amp;#039;s a good idea to verify this with us, you may be able to check the fingerprint yourself by logging into another sharcnet system and running:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub &lt;br /&gt;
&lt;br /&gt;
If the fingerprint is OK, the normal way to fix the problem is to simply remove the old hostkey from your &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. On machines with commandline SSH, you can do this with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -R thehostname&lt;br /&gt;
&lt;br /&gt;
You can use your choice of editor if you&amp;#039;re comfortable doing so (it&amp;#039;s a plain text file, but has long lines). On a unix-compatible machine, you can also use the following very small script (Substitute the line(s) printed in the warning message illustrated above for &amp;#039;42&amp;#039; here.):&lt;br /&gt;
&lt;br /&gt;
 perl -pi -e &amp;#039;undef $_ if (++$line == 42)&amp;#039; ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
Another solution is brute-force: remove the whole &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. This throws away any authentication checking, and afterwards, your first connection to any machine will prompt you to accept a newly discovered host key.&lt;br /&gt;
&lt;br /&gt;
=== Ssh works, but scp doesn&amp;#039;t! ===&lt;br /&gt;
&lt;br /&gt;
If you can &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; to a cluster successfully, but cannot &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to to it, the problem is likely that your login scripts print unexpected messages which confuse &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; is based on the same &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, but assumes that the connection is &amp;quot;clean&amp;quot;: that is, that it does not produce any un-asked-for content. If you have something like:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; will be confused by the salutation. To avoid this, simply ensure that the message is only printed on an interactive login:&lt;br /&gt;
&lt;br /&gt;
 if [ -t 0 ]; then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
or in csh/tcsh syntax:&lt;br /&gt;
&lt;br /&gt;
 if ( -t 0 ) then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
=== How do I edit my program on a cluster? ===&lt;br /&gt;
&lt;br /&gt;
We provide a variety of editors, such as the traditional text-mode &amp;lt;tt&amp;gt;emacs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; (vim), as well as a simpler one called &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;. If you have X on your desktop (and tunneled through SSH), you can use the GUI versions (&amp;lt;tt&amp;gt;xemacs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If your desktop supports FUSE, it&amp;#039;s very convenient to simply mount your home tree like this:&lt;br /&gt;
 mkdir sharcnet&lt;br /&gt;
 sshfs graham.computecanada.ca: sharcnet&lt;br /&gt;
you can then use any local editor of your choice.&lt;br /&gt;
&lt;br /&gt;
If you run emacs on your desktop, you can also edit a remote file from within your local emacs client using [http://www.gnu.org/software/tramp Tramp], opening and saving a file as /username@cluster.computecanada.ca:path/file.&lt;br /&gt;
&lt;br /&gt;
== Research at SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== I have a research project I would like to collaborate on with SHARCNET, who should I talk to? ===&lt;br /&gt;
&lt;br /&gt;
You may contact [mailto:barb@sharcnet.ca SHARCNET head office] or contact members of the [https://www.sharcnet.ca/my/contact/directory#techteam SHARCNET technical staff].&lt;br /&gt;
&lt;br /&gt;
=== How can I contribute compute resources to SHARCNET so that other researchers can share it? ===&lt;br /&gt;
&lt;br /&gt;
Most people&amp;#039;s research is &amp;quot;bursty&amp;quot; - there are usually sparse periods of time when some computation is urgently needed, and other periods when there is less demand. One problem with this is that if you purchase the equipment you need to meet your &amp;quot;burst&amp;quot; needs, it&amp;#039;ll probably sit, underutilized, during other times.&lt;br /&gt;
&lt;br /&gt;
An alternative is to donate control of this equipment to SHARCNET, and let us arrange for other users to use it when you are not. We prefer to be involved in the selection and configuration of such equipment. Our promise to contributors is that as much as possible, they should obtain as much benefit from the cluster as if it were not shared. Owners get preferential access. Naturally, owners are also able to burst to higher peak usage, since their equipment has been pooled with other contributions. (Technically, SHARCNET cannot itself own such equipment — it remains owned by the institution in question, and will be returned to the contributor upon request.) If you think this model will also work for you and you would like to contribute your computational resource to help the research community at SHARCNET, you can contact us for such arrangement.&lt;br /&gt;
&lt;br /&gt;
=== I do not know much about computation, nor is it my research interest. But I am interested in getting my research done faster with the help of the high performance computing technology. In other words, I do not care about the process and mechanism, but only the final results. Can SHARCNET provide this type of help? ===&lt;br /&gt;
&lt;br /&gt;
We will be happy to bring the technology of high performance computing to you to accelerate your research, if at all possible. If you would like to discuss your plan with us, please feel free to contact our [https://www.sharcnet.ca/my/contact/directory#techteam high performance computing specialists]. They will be happy to listen to your needs and are ready to provide appropriate suggestions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET participates in the Alliance national RAC (Resource Allocation Competition) and provides a continual competition for groups that require more than the default level of access to our resources.  Please see [[Dedicated Resources]] for further information.&lt;br /&gt;
&lt;br /&gt;
=== I heard SHARCNET offers fellowships, where can I get more information? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET no longer actively runs a fellowship program.  You may find information regarding past fellowships and other dedicated resource opportunities on the [https://www.sharcnet.ca/my/research/fellowships Research Fellowships page] of the web portal.&lt;br /&gt;
&lt;br /&gt;
=== I would like to do some research at SHARCNET as a visiting scholar, how should I apply? ===&lt;br /&gt;
&lt;br /&gt;
In general, you will need to find a hosting department or a person affiliated with one of the SHARCNET institutions. You may also [http://www.sharcnet.ca/my/contact contact us] directly for more specific information.&lt;br /&gt;
&lt;br /&gt;
=== I would like to send my students to SHARCNET to do some work for me. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
See above.&lt;br /&gt;
&lt;br /&gt;
== Contacting SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for research, academic exchanges, and technical issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for business development, education and other issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact a specific staff member at SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
See [https://www.sharcnet.ca/my/contact/directory staff directory] for contact information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Acknowledge SHARCNET in Publications ==&lt;br /&gt;
&lt;br /&gt;
=== How do I acknowledge SHARCNET in my publications? ===&lt;br /&gt;
&lt;br /&gt;
We recommend one cite the following:&lt;br /&gt;
&lt;br /&gt;
 This work was made possible by the facilities of the Shared Hierarchical &lt;br /&gt;
 Academic Research Computing Network (SHARCNET:www.sharcnet.ca) and Digital Research Alliance of Canada (https://alliancecan.ca/en).&lt;br /&gt;
&lt;br /&gt;
=== I&amp;#039;ve seen different spellings of the name, what is the standard spelling of SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
We suggest the spelling SHARCNET, all in upper case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What types of research programs / support are provided to the research community? ==&lt;br /&gt;
&lt;br /&gt;
Our overall intent is to provide support that can both respond to the range of needs that the user community presents and help to increase the sophistication of the community and enable new and larger-in-scope applications making use of SHARCNET&amp;#039;s HPC facilities. The range of support can perhaps best be understood in terms of a pyramid:&lt;br /&gt;
&lt;br /&gt;
=== Level 1 ===&lt;br /&gt;
&lt;br /&gt;
At the apex of the pyramid, SHARCNET supports a small number of projects with dedicated programmer support. The intent is to enable projects that will have a lasting impact and may lead to a &amp;quot;step change&amp;quot; in the way research is done at SHARCNET. Inter-disciplinary and inter-institutional projects are particularly welcomed. For the latest information about the program, including application guidelines, please see the  [https://www.sharcnet.ca/my/research/programming Programming Competition] page in our web portal.&lt;br /&gt;
&lt;br /&gt;
=== Level 2 ===&lt;br /&gt;
&lt;br /&gt;
The middle layers of support are provided through a number of initiatives.&lt;br /&gt;
&lt;br /&gt;
These include:&lt;br /&gt;
* Programming support of more modest duration (several days to one month engagement, usually part time)&lt;br /&gt;
* Training on a variety of topics through [https://www.sharcnet.ca/help/index.php/Training workshops, seminars and online training materials]&lt;br /&gt;
* Consultation. This may include user-initiated interactions on particular programs, algorithms, techniques, debugging, optimization etc., as well as unsolicited help to ensure effective use of SHARCNET systems&lt;br /&gt;
* Site Leaders play an important role in working with the community to help researchers connect with SHARCNET staff and to obtain appropriate help and support.&lt;br /&gt;
&lt;br /&gt;
=== Level 3 ===&lt;br /&gt;
&lt;br /&gt;
The base level of the pyramid handles the very large number of small requests that are essential to keeping the user community working effectively with the infrastructure on a day-to-day basis. Several of these can be answered by this FAQ; many of the issues are presented through the [https://www.sharcnet.ca/help/index.php/Knowledge_Base#Compute_Canada_Problem_Ticket_System ticketing system]. The support is largely problem oriented with each problem being time limited.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=944</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=944"/>
		<updated>2024-09-17T17:33:12Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* How do I check the age of a file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Sharcnet_logo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== About SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== What is SHARCNET? ===&lt;br /&gt;
SHARCNET stands for Shared Hierarchical Academic Research Computing Network. Established in 2000, SHARCNET is the largest high performance computing consortium in Canada, involving 19 universities and colleges across southern, central and northern Ontario.&lt;br /&gt;
&lt;br /&gt;
SHARCNET is a member consortium in the [https://alliancecan.ca/en Digital Research Alliance of Canada (Alliance)]  national HPC platform.&lt;br /&gt;
&lt;br /&gt;
=== Where is SHARCNET? ===&lt;br /&gt;
The [http://www.sharcnet.ca/my/contact main office] of SHARCNET is located in the Western Science Centre at [http://www.uwo.ca/ The University of Western Ontario].&lt;br /&gt;
&lt;br /&gt;
=== What does SHARCNET have? ===&lt;br /&gt;
The primary SHARCNET compute system is [https://docs.computecanada.ca/wiki/Graham Graham heterogeneous cluster] located at the University of Waterloo.  It is named after Wes Graham, the first director of the Computing Centre at Waterloo.  It consists of 41,548 cores and 520 GPU devices, spread across 1,185 nodes of different configurations.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with SHARCNET? ===&lt;br /&gt;
If you have a program that takes months to run on your PC, you could probably run it within a few hours using hundreds of processors on SHARCNET / Alliance, provided your program is inherently parallelisable. If you have hundreds or thousands of test cases to run through on your PC or computers in your lab, then with hundreds of processors running those cases independently will significantly reduce your test cycles.&lt;br /&gt;
&lt;br /&gt;
=== Who is running SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
The daily operation and development of SHARCNET computational facilities is managed by a group of highly qualified system administrators. In addition, we have a team of high performance technical computing consultants, who are responsible for technical support on libraries, programming and application analysis.&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET? ===&lt;br /&gt;
For technical inquiries, you may send E-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] or [mailto:help@sharcnet.ca help@sharcnet.ca], or [https://www.sharcnet.ca/my/contact/directory#techteam contact your local system administrator or HPC specialist]. For general inquiries, you may contact the SHARCNET [http://www.sharcnet.ca/my/contact main office].&lt;br /&gt;
&lt;br /&gt;
== Getting an Account with SHARCNET and Related Issues ==&lt;br /&gt;
&lt;br /&gt;
To use SHARCNET (and any other national facilities in Alliance) one has to [https://www.alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account apply for an Alliance account].&lt;br /&gt;
&lt;br /&gt;
== Getting Help ==&lt;br /&gt;
&lt;br /&gt;
=== I have encountered a problem while using an Alliance /SHARCNET system and need help, who should I talk to? ===&lt;br /&gt;
We encourage you to use the problem ticketing system (described in detail [[FAQ#Alliance_Problem_Ticket_System|below]]) .  This is the most efficient way of reporting a problem.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the [https://www.sharcnet.ca/my/contact/directory directory] page.&lt;br /&gt;
&lt;br /&gt;
=== How long should I expect to wait for support? ===&lt;br /&gt;
Unfortunately Alliance/SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week.  User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .  &lt;br /&gt;
&lt;br /&gt;
Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.  &lt;br /&gt;
&lt;br /&gt;
=== Alliance Problem Ticket System ===&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;problem ticket system&amp;quot;? ====&lt;br /&gt;
&lt;br /&gt;
This is a system that allows anyone with an Alliance account to start a persistent email thread that is referred to as a &amp;quot;problem ticket&amp;quot;.    When a user submits a new ticket it will be brought to the attention of an appropriate and available Alliance/SHARCNET staff member for resolution.  &lt;br /&gt;
&lt;br /&gt;
You interact with the ticket system entirely via email.&lt;br /&gt;
&lt;br /&gt;
==== What do I need to specify in a ticket ? ====&lt;br /&gt;
&lt;br /&gt;
To help us address your question faster, please try to do the following when submitting a ticket:&lt;br /&gt;
&lt;br /&gt;
#specify which of our systems is involved &lt;br /&gt;
#if the problem pertains to a job, then report the &amp;lt;u&amp;gt;jobid&amp;lt;/u&amp;gt; associated with the job; this is an integer that is returned by the scheduler when you submit the job&lt;br /&gt;
#report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem; if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem&lt;br /&gt;
#if you&amp;#039;d like for a particular staff member to be aware of the ticket, mention them&lt;br /&gt;
&lt;br /&gt;
==== How do I submit a ticket? ====&lt;br /&gt;
&lt;br /&gt;
In general, you can submit a new ticket by emailing  [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca]  with the email address associated with your Alliance account.  If you are using another email address, please provide your full name, your Alliance default username (if available) and your university or institution.&lt;br /&gt;
&lt;br /&gt;
If you like, you can also target your inquiry more specifically, by using the following addresses to submit your ticket:&lt;br /&gt;
&lt;br /&gt;
* [mailto:help@sharcnet.ca help@sharcnet.ca] - questions specific to SHARCNET, for example relating to contributed SHARCNET systems&lt;br /&gt;
* [mailto:globus@tech.alliancecan.ca globus@tech.alliancecan.ca] -- Questions about [[Globus]] file transfer services&lt;br /&gt;
* [mailto:cloud@tech.alliancecan.ca cloud@tech.alliancecan.ca] -- Questions about using Alliance cloud resources&lt;br /&gt;
* [mailto:accounts@tech.alliancecan.ca accounts@tech.alliancecan.ca] -- Questions about Alliance accounts&lt;br /&gt;
* [mailto:renewals@tech.alliancecan.ca renewals@tech.alliancecan.ca] -- Questions about Alliance account renewals&lt;br /&gt;
&lt;br /&gt;
=== I am new to parallel programming, can you help me get started with my project? ===&lt;br /&gt;
Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research. If your programming project would involve a significant staff time, you should consider applying for Dedicated Programming support. (We run the competition annually; see https://www.sharcnet.ca/my/research/programming).&lt;br /&gt;
&lt;br /&gt;
=== Can you install a package on a cluster for me? ===&lt;br /&gt;
Certainly.  We suggest you make the request by sending e-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] with the specific request.&lt;br /&gt;
&lt;br /&gt;
=== I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that? ===&lt;br /&gt;
If you tell us what you want, we may be able to help you out.&lt;br /&gt;
&lt;br /&gt;
=== Does SHARCNET provide any training on programming and using the systems? ===&lt;br /&gt;
&lt;br /&gt;
Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every summer (usually late May to early June), SHARCNET holds [https://www.sharcnet.ca/help/index.php/Summer_Schools an annual HPC Summer School] with a variety of in-depth, hands-on workshops. &lt;br /&gt;
&lt;br /&gt;
SHARCNET also offers a series of online seminars (so-called &amp;quot;General interest webinars&amp;quot;), typically delivered every second Wednesday at lunch time.  These are announced via the SHARCNET events mailing list and one can see the schedule at the [https://www.sharcnet.ca/my/news/calendar SHARCNET event calendar].  Past seminars are recorded and posted on [http://youtube.sharcnet.ca our youtube channel]. A full listing of the past webinars is available on the [https://helpwiki.sharcnet.ca/wiki/Online_Seminars Online Seminars] page.&lt;br /&gt;
&lt;br /&gt;
=== Attending SHARCNET Webinars ===&lt;br /&gt;
{{:Attending SHARCNET Webinars}}&lt;br /&gt;
&lt;br /&gt;
== Logging in to Systems, Transferring and Editing Files ==&lt;br /&gt;
&lt;br /&gt;
=== How do I login to SHARCNET? ===&lt;br /&gt;
You access the SHARCNET clusters using ssh.  For Graham and other national systems Alliance credentials are required.  For the remaining (&amp;quot;Legacy&amp;quot;) systems, you will require SHARCNET credentials (submit a ticket to help@sharcnet.ca if you have questions).&lt;br /&gt;
&lt;br /&gt;
====Unix/Linux/OS X====&lt;br /&gt;
To login to a system, you need to use an [http://www.openssh.com/ Secure Shell (SSH)] connection. If you are logging in from a UNIX-based machine, make sure it has an SSH client (ssh) installed (this is almost always the case on UNIX/Linux/OS X). If you have the same login name on both your local system and SHARCNET, and you want to login to, say, &amp;lt;tt&amp;gt;graham&amp;lt;/tt&amp;gt;, you may use the command:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If your Alliance username is different from the username on your local systems, then you may use either of the following forms:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca -l username&lt;br /&gt;
 ssh username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If you want to establish an X window connection so that you can use graphics applications such as &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ddt&amp;lt;/tt&amp;gt;, you can add a &amp;lt;tt&amp;gt;-Y&amp;lt;/tt&amp;gt; to the command:&lt;br /&gt;
&lt;br /&gt;
 ssh -Y username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
This will automatically set the X DISPLAY variable when you login.&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
If you are logging from a computer running Windows and need some pointers we recommend consulting our [[SSH]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between Login Nodes and Compute Nodes? ===&lt;br /&gt;
====Login Nodes====&lt;br /&gt;
&lt;br /&gt;
Most of our clusters have distinct &amp;#039;&amp;#039;login nodes&amp;#039;&amp;#039; associated with them that you are automatically redirected to when you login to the cluster (some systems are directly logged into, eg. SMPs and smaller specialty systems).  You can use these to do most of your work preparing for jobs (compiling, editing configuration files) and other low-intensity tasks like moving and copying files.  &lt;br /&gt;
&lt;br /&gt;
You can also use them for other quick tasks, like simple post-processing, but any significant work should be submitted as a job to the compute nodes.  On most login nodes, each process is limited to 1 cpu-hour; this will be noticable if you perform anything compute-intensive, and can affect IO-oriented activity as well (such as very large &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; operations.)&lt;br /&gt;
&lt;br /&gt;
=== How can I suspend and resume my session? ===&lt;br /&gt;
&lt;br /&gt;
The program screen can start persistent terminals from which you can detach and reattach.  The simplest use of screen is&lt;br /&gt;
&lt;br /&gt;
 screen -dR&lt;br /&gt;
&lt;br /&gt;
which will either reattach you to any existing session or create a new one if one doesn&amp;#039;t exist.  To terminate the current screen session, type &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;.  To detach manually (you are automatically detached if the connection is lost) press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;d&amp;#039;&amp;#039;, you can the resume later as above (ideal for running background jobs).  Note that &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; is screen&amp;#039;s escape sequence, so you have to do &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;a&amp;#039;&amp;#039; to get the regular effect of pressing &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; inside a screen session (e.g., moving the cursor to the start of the line in a shell).&lt;br /&gt;
&lt;br /&gt;
For a list of other &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; key sequences, press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;?&amp;#039;&amp;#039;.  For further details and  command line options, see the [http://www.gnu.org/software/screen/manual/screen.html screen manual] (or type &amp;lt;tt&amp;gt;man screen&amp;lt;/tt&amp;gt; on any of the clusters).&lt;br /&gt;
&lt;br /&gt;
Other notes:&lt;br /&gt;
* If you want to create additional &amp;quot;text windows&amp;quot;, use Ctrl-A Ctrl-C. Remember to type &amp;quot;exit&amp;quot; to close it. &lt;br /&gt;
* To switch to a &amp;quot;text window&amp;quot; with a certain number, use Ctrl-A # (where # is 0 to 9).&lt;br /&gt;
* To see a list of window numbers use Ctrl-A w&lt;br /&gt;
* To be presented a list of windows and select one to use, use Ctrl-A &amp;quot; (This is handy if you&amp;#039;ve made too many windows.)&lt;br /&gt;
* If the program running in a screen &amp;quot;text window&amp;quot; refuses to die (i.e., it needs to be killed) you can use Ctrl-A K&lt;br /&gt;
* For brief help on keystrokes use Ctrl-A ?&lt;br /&gt;
* For extensive help, run &amp;quot;man screen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What operating systems are supported? ===&lt;br /&gt;
UNIX in general. Currently, Linux is the only operating system used within SHARCNET.&lt;br /&gt;
&lt;br /&gt;
=== What makes a cluster different than my UNIX workstation? ===&lt;br /&gt;
&lt;br /&gt;
If you are familiar with UNIX, then using a cluster is not much different from using a workstation. When you login to a cluster, you in fact only log in to one of the cluster nodes. In most cases, each cluster node is a physical machine, usually a server class machine, with one or several CPUs, that is more or less the same as a workstation you are familiar with. The difference is that these nodes are interconnected with special interconnect devices and the way you run your program is slightly different. Across SHARCNET clusters, you are not expected to run your program interactively. You will have to run your program through a queueing system. That also means where and when your program gets to run is not decided by you, but by the queueing system.&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Those primary programming languages such as C, C++, Fortran, and Python are supported. Other languages, such as Java, Pascal and Ada, are also supported, but with limited technical support from us. &lt;br /&gt;
&lt;br /&gt;
=== How do I organize my files? ===&lt;br /&gt;
[https://docs.computecanada.ca/wiki/Storage_and_file_management#Storage_types Main file systems on our National systems.]&lt;br /&gt;
&lt;br /&gt;
==== How do I transfer files/directories to/from or between cluster? ====&lt;br /&gt;
&lt;br /&gt;
=====Unix/Linux=====&lt;br /&gt;
To transfer files to and from a cluster on a UNIX machine, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt;. For example, if you want to upload file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; to cluster graham from your machine &amp;lt;tt&amp;gt;myhost&amp;lt;/tt&amp;gt;, use the following command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp foo.f graham.computecanada.ca:&lt;br /&gt;
&lt;br /&gt;
assuming that your machine has &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; installed. If you want to transfer a file from Windows or Mac, you need have &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt; for Windows or Mac installed.&lt;br /&gt;
&lt;br /&gt;
If you transfer file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; between Alliance clusters, say from your home directory on cedar to your home directory on graham, simply use the following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp foo.f graham:/home/username/&lt;br /&gt;
&lt;br /&gt;
If you are transferring files between a UNIX machine and a cluster, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; command with &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; option. For instance, if you want to download the subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; in the directory &amp;lt;tt&amp;gt;project&amp;lt;/tt&amp;gt; in your home directory on graham to your local UNIX machine, on your local machine, use command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp -rp graham.sharcnet.ca:project/foo .&lt;br /&gt;
&lt;br /&gt;
Similarly, you can transfer the subdirectory between Alliance clusters. The following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp -r graham:/home/username/scratch/foo .&lt;br /&gt;
&lt;br /&gt;
will download subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; from your scratch directory on graham to your home directory on cedar (note that the prompt indicates you are currently logged on to cedar).&lt;br /&gt;
&lt;br /&gt;
The use of &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; option above will preserve the time stamp of each file. For Windows and Mac, you need to check the documentation of &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; for features. &amp;#039;&amp;#039;&amp;#039;Do not use -p switch with scp or cp commands on clusters, when the destination is your project space&amp;#039;&amp;#039;&amp;#039;, or you might run into the infamous [https://docs.computecanada.ca/wiki/Frequently_Asked_Questions#Disk_quota_exceeded_error_on_.2Fproject_filesystems Disk quota exceeded issue].&lt;br /&gt;
&lt;br /&gt;
You may also &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; and compress the entire directory and then use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to save bandwidth. In the above example, first you login to graham, then do the following&lt;br /&gt;
&lt;br /&gt;
 [username@gra-login2:~]$ cd project&lt;br /&gt;
 [username@gra-login2:~]$ tar -cvf foo.tar foo&lt;br /&gt;
 [username@gra-login2:~]$ gzip foo.tar&lt;br /&gt;
&lt;br /&gt;
Then on your local machine myhost, use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to copy the tar file&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp graham.computecanada.ca:project/foo.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Note for most Linux distributions, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; has an option &amp;lt;tt&amp;gt;-z&amp;lt;/tt&amp;gt; that will compress the &amp;lt;tt&amp;gt;.tar&amp;lt;/tt&amp;gt; file using &amp;lt;tt&amp;gt;gzip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Windows=====&lt;br /&gt;
You may read the instructions on using an ssh client. [[https://helpwiki.sharcnet.ca/wiki/SSH#Transfering_files_.28Secure_File_Transfer_Client.29]]&lt;br /&gt;
&lt;br /&gt;
====How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect?====&lt;br /&gt;
&lt;br /&gt;
In general, most users should be fine using &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to transfer data to and from SHARCNET systems.  If you need to transfer a lot of files &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; is recommended to ensure that you do not need to restart the transfer from scratch should there be a connection failure.  Although you can use &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to any cluster&amp;#039;s login node(s), it is often best to use gra-dtn1.computecanada.ca - it is dedicated to data transfer. &lt;br /&gt;
&lt;br /&gt;
In general one should expect the following transfer rates with &amp;#039;&amp;#039;scp&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* If you are connecting to SHARCNET through a Research/Education network site (ORION, CANARIE, Internet2) and are on a fast local network (this is the case for most users connecting from academic institutions) then you should be able to attain sustained transfer speeds in excess of 10MB/s.  If your path is all gigabit or better, you should be able to reach rates above 50 MB/s.&lt;br /&gt;
* If you are transferring data over the wider internet, you will not be able to attain these speeds, as all traffic that does not enter/exit SHARCNET via the R&amp;amp;E net is restricted to a limited-bandwidth commercial feed. In this case one will typically see rates on the order of 1MB/s or less.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that filesystems and networks are  shared resources and suffer from contention; if they are busy the above rates may not be attainable&lt;br /&gt;
&lt;br /&gt;
For transferring large amounts of data (many gigabytes) the best approach is to use the online tool [https://docs.computecanada.ca/wiki/Transferring_data#Globus_transfer Globus].&lt;br /&gt;
&lt;br /&gt;
==== How do I access the same file from different subdirectories on the same cluster ? ====&lt;br /&gt;
&lt;br /&gt;
You should not need copy large files on the same cluster (e.g. from one user to another&lt;br /&gt;
or using the same file in different subdirectories).  Instead of using&lt;br /&gt;
scp you might consider issuing a &amp;quot;soft link&amp;quot; command. Assume that you need access&lt;br /&gt;
to the file large_file1 in subdirectory /home/user1/subdir1 and you need it to be in your&lt;br /&gt;
subdirectory /home/my_account/my_dir from where you will invoke it under the name&lt;br /&gt;
my_large_file1.  Then go to that directory and type:&lt;br /&gt;
&lt;br /&gt;
 ln -s /home/user1/subdir1/large_file1    my_large_file1&lt;br /&gt;
&lt;br /&gt;
Another example, assume that in subdirectory /home/my_account/PROJ1 you have several&lt;br /&gt;
subdirectories called CASE1, CASE2, ...  In each subdirectory CASEn you have a slightly&lt;br /&gt;
different code but all of them process the same data file called test_data. Rather than&lt;br /&gt;
copying the test_data file into each CASEn subdirectory, place test_data above i.e.&lt;br /&gt;
in /home/my_account/PROJ1 and then in each CASEn subdirectory issue following &amp;quot;soft link&amp;quot;&lt;br /&gt;
command:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../test_data  test_data&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;soft links&amp;quot; can be removed by using the rm command. For example, to remove the soft link from&lt;br /&gt;
/home/my_account/PROJ1/CASE2 type following command from this subdirectory:&lt;br /&gt;
&lt;br /&gt;
 rm -rf test_data&lt;br /&gt;
&lt;br /&gt;
Typing above command from subdirectory /home/my_account/PROJ1 would remove the actual file and then&lt;br /&gt;
none of the CASEn subdirectories would have access to it.&lt;br /&gt;
&lt;br /&gt;
==== How are files deleted from the /home/userid/scratch filesystems? ====&lt;br /&gt;
&lt;br /&gt;
All files on /home/userid/scratch that are over 2 months old (not old in the common sense, please see below) are automatically deleted. Data needed for long term storage and reference should be kept in either /project, /nearline, or other archival storage areas. The scratch filesystem is checked at the end of the month for files which will be candidates for expiry on the 15th of the following month. On the first day of the month, a login message is posted and a notification e-mail is sent to all users who have at least one file which is a candidate for purging and containing the location of a file which lists all the candidates for purging.  On the 12th of the month, a second scan is run to check for files that will still expire on the 15th, and again, users with candidates for expiry are sent a second warning email.  Lastly, on the 15th, all files which are due for expiry are removed.&lt;br /&gt;
&lt;br /&gt;
An unconventional aspect of this system is that it does not determine the age of a file based on the file&amp;#039;s attributes, e.g., the standard dates reported by the &amp;lt;i&amp;gt;stat&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;find&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;ls&amp;lt;/i&amp;gt;, etc. commands.  (This is known as the &amp;quot;mtime&amp;quot; of the file, for &amp;quot;modification time&amp;quot;, and is frequently inaccurate.) The age of a file is determined based on whether or not its data contents (i.e., the information stored in the file) have changed or been accessed, and this age is stored externally to the file.  Only files where the contents have changed or accessed will have their age counter &amp;quot;reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A list of your candidate files for expiry can be found in /home/scratch_to_delete/$USER  (where $USER is your userid).&lt;br /&gt;
&lt;br /&gt;
===== How do I check the age of a file =====&lt;br /&gt;
We define a file&amp;#039;s age as the most recent of:&lt;br /&gt;
&lt;br /&gt;
 *the access time (atime) and&lt;br /&gt;
 *the change time (ctime)&lt;br /&gt;
&lt;br /&gt;
You can find the ctime of a file using&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lc &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while the atime can be obtained with the command&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lu &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do not use the modify time (mtime) of the file because it can be modified by the user or by other programs to display incorrect information.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, simple use of the atime property would be sufficient, as it is updated by the system in sync with the ctime. However, userspace programs are able to alter atime, potentially to times in the past, which could result in early expiration of a file. The use of ctime as a fallback guards against this undesirable behaviour.&lt;br /&gt;
&lt;br /&gt;
It is also your responsibility to manage your stored data: most of the filesystems are not intended to provide an indefinite archiving service so when a given file or directory is no longer needed, you need to move it to a more appropriate filesystem which may well mean your personal workstation or some other storage system under your control. Moving significant amounts of data between your workstation and an Alliance system or between two Alliance systems should generally be done using Globus.&lt;br /&gt;
&lt;br /&gt;
==== How to archive my data? ====&lt;br /&gt;
&lt;br /&gt;
===== Use tar to archive files and directories =====&lt;br /&gt;
&lt;br /&gt;
The primary archiving utility on all Linux and Unix-like systems is the [https://www.gnu.org/software/tar/manual/tar.html tar] command. It will bundle a bunch of files or directories together and generate a single file, called an &amp;#039;&amp;#039;archive file&amp;#039;&amp;#039; or &amp;#039;&amp;#039;tar-file&amp;#039;&amp;#039;. By convention an archive file has &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; as the file name extension. When you archive a directory with &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, it will, by default, include all the files and sub-directories contained within it, and sub-sub-directories contained in those, and so on. So the command &amp;lt;code&amp;gt;tar --create --file project1.tar project1&amp;lt;/code&amp;gt; will pack all the content of directory &amp;#039;&amp;#039;project1&amp;#039;&amp;#039; into the file &amp;#039;&amp;#039;project1.tar&amp;#039;&amp;#039;. The original directory will remain unchanged, so this may double the amount of disk space occupied!&lt;br /&gt;
&lt;br /&gt;
You can extract files from an archive using the same command with a different option:&amp;lt;code&amp;gt;tar --extract --file project1.tar&amp;lt;/code&amp;gt;. If there is no directory with the original name, it will be created. If a directory of that name exists and contains files of the same names as in the archive file, they will be overwritten. Another option can be added to specify the destination directory where to extract the archive&amp;#039;s content.   &lt;br /&gt;
&lt;br /&gt;
===== Compress and uncompress tar files =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; archiving utility can compress an archive file at the same time it creates it. There are a number of compression methods to choose from. We recommend either &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;, which can be used as follows:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ tar --create --xz --file project1.tar.xz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --xz --file project1.tar.xz&lt;br /&gt;
 [user_name@localhost]$ tar --create --gzip --file project1.tar.gz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --gzip --file project1.tar.gz&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;code&amp;gt;--xz&amp;lt;/code&amp;gt; will produce a smaller compressed file (a &amp;quot;better compression ratio&amp;quot;) but takes longer and uses more RAM while working. &amp;lt;code&amp;gt;--gzip&amp;lt;/code&amp;gt; does not typically compress as small, but may be used if you encounter difficulties due to insufficient memory or excessive run time during &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt;. A third option, &amp;lt;code&amp;gt;--bzip2&amp;lt;/code&amp;gt;, is also available, that typically does not compress as small as &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; but takes longer than &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt; first without compression and then use the commands &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; in a separate step, although there is rarely a reason to do so. Similarly, you can run &amp;lt;code&amp;gt;xz -d&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip -d&amp;lt;/code&amp;gt; to decompress an archive file before running &amp;lt;code&amp;gt;tar --extract&amp;lt;/code&amp;gt;, but again there is rarely a reason to do so.&lt;br /&gt;
&lt;br /&gt;
The commands &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; can be used to compress any file, not just archive files:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ gzip bigfile&lt;br /&gt;
 [user_name@localhost]$ xz bigfile&lt;br /&gt;
&lt;br /&gt;
These commands will produce the files &amp;lt;code&amp;gt;bigfile.gz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigfile.xz&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
=====Archival Storage=====&lt;br /&gt;
&lt;br /&gt;
On Graham, files copied to ~/nearline will be subsequently moved to offline (tape-based) storage. See [https://docs.computecanada.ca/wiki/Using_nearline_storage this link] for more details.&lt;br /&gt;
&lt;br /&gt;
==== How can I check the hidden files in directory? ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;.&amp;quot; at the beginning of the name means that the file is &amp;quot;hidden&amp;quot;. You have to use the -a option with ls to see it. I.e. &amp;lt;code&amp;gt;ls -a &amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
If you want to display only the hidden files then type:&lt;br /&gt;
 ls -d .*&lt;br /&gt;
&lt;br /&gt;
Note: there is an alias which is loaded from /etc/bashrc (see your .bashrc file). The alias is defined by alias &amp;lt;code&amp;gt; l.=&amp;#039;ls -d .* --color=auto&amp;#039; &amp;lt;/code&amp;gt; and if you type:&lt;br /&gt;
 l.&lt;br /&gt;
you will also display only the hidden files.&lt;br /&gt;
&lt;br /&gt;
==== How can I count the number of files in a directory? ====&lt;br /&gt;
&lt;br /&gt;
One can use the following command to count the number of files in a directory (in this example, your /work directory):&lt;br /&gt;
&lt;br /&gt;
 find /home/$USER -type f   | wc -l&lt;br /&gt;
&lt;br /&gt;
It is always a good idea to [[Knowledge_Base#How_to_archive_my_data.3F|archive]] and/or compress files that are no longer needed on the filesystem (see [https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_to_organize_a_large_number_of_files.3F below]).  This helps minimize one&amp;#039;s footprint on the filesystem and as such the impact they have on other users of the shared resource.&lt;br /&gt;
&lt;br /&gt;
==== How to organize a large number of files? ====&lt;br /&gt;
&lt;br /&gt;
With parallel cluster filesystems, you will get best I/O performance writing data to a small number of large files. Since all metadata operations on each of our parallel filesystems are handled by a single file server, depending on how many files are being accessed the server can become overwhelmed leading to poor overall I/O performance for all users. If your workflow involves storing data in a large number of files, it is best to pack these files into a small number of larger archives, e.g. using tar command&lt;br /&gt;
&lt;br /&gt;
 tar cvf archiveFile.tar directoryToArchive&lt;br /&gt;
&lt;br /&gt;
For better performance with many files inside your archive, we recommend to use DAR (Disk ARchive utility), which is a disk analog of tar (Tape ARchive).  Dar can extract files from anywhere in the archive much faster than tar. The dar command is available by default on sharcnet systems. It can be used to pack files into a dar archive by doing something like: &lt;br /&gt;
&lt;br /&gt;
 dar -s 1G -w -c archiveFile -g directoryToArchive&lt;br /&gt;
&lt;br /&gt;
In this example we split the archive into 1GB chunks, and the archive files will be named archiveFile.1.dar, archiveFile.2.dar, and so on. To list the contents of the archive, you can type:&lt;br /&gt;
&lt;br /&gt;
 dar -l archiveFile&lt;br /&gt;
&lt;br /&gt;
To temporarily extract files for post-processing into current directory, you would type:&lt;br /&gt;
&lt;br /&gt;
 dar -R . -O -x archiveFile -v -g pathToYourFile/fileToExtract&lt;br /&gt;
&lt;br /&gt;
=== I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host ===&lt;br /&gt;
&lt;br /&gt;
The most likely cause of this behaviour is repeated failed login attempts.  Part of our security policies involves blocking the IP address of machines that attempt multiple logins with incorrect passwords over a short period of time---many brute-force attacks on systems do exactly this: looking for poor passwords, badly configured accounts, etc.  Unfortunately, it isn&amp;#039;t uncommon for a user to forget their password and make repeated login attempts with incorrect passwords and end up with that machine blacklisted and unable to connect at all.&lt;br /&gt;
&lt;br /&gt;
A temporary solution is simply to attempt to login from another machine.  If you have access to another machine at your site, you can shell to that machine first, and then shell to the SHARCNET system (as that machine&amp;#039;s IP shouldn&amp;#039;t be blacklisted).  In order to have your machine unblocked, you will have to email to [mailto:support@computecanada.ca support@computecanada.ca] as a system administrator must manually intervene in order to fix it.&lt;br /&gt;
&lt;br /&gt;
NOTE: there are other situations that can produce this message, however they are rarer and more transient.  If you are unable to log in from one machine, but can from another, it is most likely the IP blacklisting that is the problem and the above will provide a temporary work-around while your problem ticket is processed.&lt;br /&gt;
&lt;br /&gt;
=== I am unable to ssh/scp from SHARCNET to my local computer ===&lt;br /&gt;
&lt;br /&gt;
Most campus networks are behind some sort of firewall.  If you can ssh out to SHARCNET, but cannot establish a connection in the other direction, then you are probably behind a firewall and should speak with your local system administrator or campus IT department to determine if there are any exceptions or workarounds in place.&lt;br /&gt;
&lt;br /&gt;
=== SSH tells me SOMEONE IS DOING SOMETHING NASTY!? ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please first read the following:&lt;br /&gt;
&lt;br /&gt;
https://docs.computecanada.ca/wiki/SSH_security_improvements&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suppose you attempt to login to SHARCNET, but instead get an alarming message like this:&lt;br /&gt;
&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that the RSA host key has just been changed.&lt;br /&gt;
 The fingerprint for the RSA key sent by the remote host is&lt;br /&gt;
 fe:65:ab:89:9a:23:34:5a:50:1e:05:d6:bf:ec:da:67.&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending key in /home/user/.ssh/known_hosts:42&lt;br /&gt;
 RSA host key for requin has changed and you have requested strict checking.&lt;br /&gt;
 Host key verification failed. &lt;br /&gt;
&lt;br /&gt;
SSH begins a connection by verifying that the host you&amp;#039;re connecting to is authentic. It does this by caching the hosts&amp;#039;s &amp;quot;hostkey&amp;quot; in your  &amp;lt;tt&amp;gt;~/.ssh/known_hosts&amp;lt;/tt&amp;gt; file. At times, a hostkey may be changed legitimately; when this happens, you may see such a message. It&amp;#039;s a good idea to verify this with us, you may be able to check the fingerprint yourself by logging into another sharcnet system and running:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub &lt;br /&gt;
&lt;br /&gt;
If the fingerprint is OK, the normal way to fix the problem is to simply remove the old hostkey from your &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. On machines with commandline SSH, you can do this with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -R thehostname&lt;br /&gt;
&lt;br /&gt;
You can use your choice of editor if you&amp;#039;re comfortable doing so (it&amp;#039;s a plain text file, but has long lines). On a unix-compatible machine, you can also use the following very small script (Substitute the line(s) printed in the warning message illustrated above for &amp;#039;42&amp;#039; here.):&lt;br /&gt;
&lt;br /&gt;
 perl -pi -e &amp;#039;undef $_ if (++$line == 42)&amp;#039; ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
Another solution is brute-force: remove the whole &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. This throws away any authentication checking, and afterwards, your first connection to any machine will prompt you to accept a newly discovered host key.&lt;br /&gt;
&lt;br /&gt;
=== Ssh works, but scp doesn&amp;#039;t! ===&lt;br /&gt;
&lt;br /&gt;
If you can &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; to a cluster successfully, but cannot &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to to it, the problem is likely that your login scripts print unexpected messages which confuse &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; is based on the same &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, but assumes that the connection is &amp;quot;clean&amp;quot;: that is, that it does not produce any un-asked-for content. If you have something like:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; will be confused by the salutation. To avoid this, simply ensure that the message is only printed on an interactive login:&lt;br /&gt;
&lt;br /&gt;
 if [ -t 0 ]; then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
or in csh/tcsh syntax:&lt;br /&gt;
&lt;br /&gt;
 if ( -t 0 ) then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
=== How do I edit my program on a cluster? ===&lt;br /&gt;
&lt;br /&gt;
We provide a variety of editors, such as the traditional text-mode &amp;lt;tt&amp;gt;emacs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; (vim), as well as a simpler one called &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;. If you have X on your desktop (and tunneled through SSH), you can use the GUI versions (&amp;lt;tt&amp;gt;xemacs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If your desktop supports FUSE, it&amp;#039;s very convenient to simply mount your home tree like this:&lt;br /&gt;
 mkdir sharcnet&lt;br /&gt;
 sshfs graham.computecanada.ca: sharcnet&lt;br /&gt;
you can then use any local editor of your choice.&lt;br /&gt;
&lt;br /&gt;
If you run emacs on your desktop, you can also edit a remote file from within your local emacs client using [http://www.gnu.org/software/tramp Tramp], opening and saving a file as /username@cluster.computecanada.ca:path/file.&lt;br /&gt;
&lt;br /&gt;
== Research at SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== I have a research project I would like to collaborate on with SHARCNET, who should I talk to? ===&lt;br /&gt;
&lt;br /&gt;
You may contact [mailto:barb@sharcnet.ca SHARCNET head office] or contact members of the [https://www.sharcnet.ca/my/contact/directory#techteam SHARCNET technical staff].&lt;br /&gt;
&lt;br /&gt;
=== How can I contribute compute resources to SHARCNET so that other researchers can share it? ===&lt;br /&gt;
&lt;br /&gt;
Most people&amp;#039;s research is &amp;quot;bursty&amp;quot; - there are usually sparse periods of time when some computation is urgently needed, and other periods when there is less demand. One problem with this is that if you purchase the equipment you need to meet your &amp;quot;burst&amp;quot; needs, it&amp;#039;ll probably sit, underutilized, during other times.&lt;br /&gt;
&lt;br /&gt;
An alternative is to donate control of this equipment to SHARCNET, and let us arrange for other users to use it when you are not. We prefer to be involved in the selection and configuration of such equipment. Our promise to contributors is that as much as possible, they should obtain as much benefit from the cluster as if it were not shared. Owners get preferential access. Naturally, owners are also able to burst to higher peak usage, since their equipment has been pooled with other contributions. (Technically, SHARCNET cannot itself own such equipment — it remains owned by the institution in question, and will be returned to the contributor upon request.) If you think this model will also work for you and you would like to contribute your computational resource to help the research community at SHARCNET, you can contact us for such arrangement.&lt;br /&gt;
&lt;br /&gt;
=== I do not know much about computation, nor is it my research interest. But I am interested in getting my research done faster with the help of the high performance computing technology. In other words, I do not care about the process and mechanism, but only the final results. Can SHARCNET provide this type of help? ===&lt;br /&gt;
&lt;br /&gt;
We will be happy to bring the technology of high performance computing to you to accelerate your research, if at all possible. If you would like to discuss your plan with us, please feel free to contact our [https://www.sharcnet.ca/my/contact/directory#techteam high performance computing specialists]. They will be happy to listen to your needs and are ready to provide appropriate suggestions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET participates in the Compute Canada NRAC (National Resource Allocation Competition) and provides a continual competition for groups that require more than the default level of access to our resources.  Please see [[Dedicated Resources]] for further information.&lt;br /&gt;
&lt;br /&gt;
=== I heard SHARCNET offers fellowships, where can I get more information? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET no longer actively runs a fellowship program.  You may find information regarding past fellowships and other dedicated resource opportunities on the [https://www.sharcnet.ca/my/research/fellowships Research Fellowships page] of the web portal.&lt;br /&gt;
&lt;br /&gt;
=== I would like to do some research at SHARCNET as a visiting scholar, how should I apply? ===&lt;br /&gt;
&lt;br /&gt;
In general, you will need to find a hosting department or a person affiliated with one of the SHARCNET institutions. You may also [http://www.sharcnet.ca/my/contact contact us] directly for more specific information.&lt;br /&gt;
&lt;br /&gt;
=== I would like to send my students to SHARCNET to do some work for me. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
See above.&lt;br /&gt;
&lt;br /&gt;
== Contacting SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for research, academic exchanges, and technical issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for business development, education and other issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact a specific staff member at SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
See [https://www.sharcnet.ca/my/contact/directory staff directory] for contact information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Acknowledge SHARCNET in Publications ==&lt;br /&gt;
&lt;br /&gt;
=== How do I acknowledge SHARCNET in my publications? ===&lt;br /&gt;
&lt;br /&gt;
We recommend one cite the following:&lt;br /&gt;
&lt;br /&gt;
 This work was made possible by the facilities of the Shared Hierarchical &lt;br /&gt;
 Academic Research Computing Network (SHARCNET:www.sharcnet.ca) and Digital Research Alliance of Canada (https://alliancecan.ca/en).&lt;br /&gt;
&lt;br /&gt;
=== I&amp;#039;ve seen different spellings of the name, what is the standard spelling of SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
We suggest the spelling SHARCNET, all in upper case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What types of research programs / support are provided to the research community? ==&lt;br /&gt;
&lt;br /&gt;
Our overall intent is to provide support that can both respond to the range of needs that the user community presents and help to increase the sophistication of the community and enable new and larger-in-scope applications making use of SHARCNET&amp;#039;s HPC facilities. The range of support can perhaps best be understood in terms of a pyramid:&lt;br /&gt;
&lt;br /&gt;
=== Level 1 ===&lt;br /&gt;
&lt;br /&gt;
At the apex of the pyramid, SHARCNET supports a small number of projects with dedicated programmer support. The intent is to enable projects that will have a lasting impact and may lead to a &amp;quot;step change&amp;quot; in the way research is done at SHARCNET. Inter-disciplinary and inter-institutional projects are particularly welcomed. For the latest information about the program, including application guidelines, please see the  [https://www.sharcnet.ca/my/research/programming Programming Competition] page in our web portal.&lt;br /&gt;
&lt;br /&gt;
=== Level 2 ===&lt;br /&gt;
&lt;br /&gt;
The middle layers of support are provided through a number of initiatives.&lt;br /&gt;
&lt;br /&gt;
These include:&lt;br /&gt;
* Programming support of more modest duration (several days to one month engagement, usually part time)&lt;br /&gt;
* Training on a variety of topics through [https://www.sharcnet.ca/help/index.php/Training workshops, seminars and online training materials]&lt;br /&gt;
* Consultation. This may include user-initiated interactions on particular programs, algorithms, techniques, debugging, optimization etc., as well as unsolicited help to ensure effective use of SHARCNET systems&lt;br /&gt;
* Site Leaders play an important role in working with the community to help researchers connect with SHARCNET staff and to obtain appropriate help and support.&lt;br /&gt;
&lt;br /&gt;
=== Level 3 ===&lt;br /&gt;
&lt;br /&gt;
The base level of the pyramid handles the very large number of small requests that are essential to keeping the user community working effectively with the infrastructure on a day-to-day basis. Several of these can be answered by this FAQ; many of the issues are presented through the [https://www.sharcnet.ca/help/index.php/Knowledge_Base#Compute_Canada_Problem_Ticket_System ticketing system]. The support is largely problem oriented with each problem being time limited.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=943</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=943"/>
		<updated>2024-09-17T17:31:57Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* Unix/Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Sharcnet_logo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== About SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== What is SHARCNET? ===&lt;br /&gt;
SHARCNET stands for Shared Hierarchical Academic Research Computing Network. Established in 2000, SHARCNET is the largest high performance computing consortium in Canada, involving 19 universities and colleges across southern, central and northern Ontario.&lt;br /&gt;
&lt;br /&gt;
SHARCNET is a member consortium in the [https://alliancecan.ca/en Digital Research Alliance of Canada (Alliance)]  national HPC platform.&lt;br /&gt;
&lt;br /&gt;
=== Where is SHARCNET? ===&lt;br /&gt;
The [http://www.sharcnet.ca/my/contact main office] of SHARCNET is located in the Western Science Centre at [http://www.uwo.ca/ The University of Western Ontario].&lt;br /&gt;
&lt;br /&gt;
=== What does SHARCNET have? ===&lt;br /&gt;
The primary SHARCNET compute system is [https://docs.computecanada.ca/wiki/Graham Graham heterogeneous cluster] located at the University of Waterloo.  It is named after Wes Graham, the first director of the Computing Centre at Waterloo.  It consists of 41,548 cores and 520 GPU devices, spread across 1,185 nodes of different configurations.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with SHARCNET? ===&lt;br /&gt;
If you have a program that takes months to run on your PC, you could probably run it within a few hours using hundreds of processors on SHARCNET / Alliance, provided your program is inherently parallelisable. If you have hundreds or thousands of test cases to run through on your PC or computers in your lab, then with hundreds of processors running those cases independently will significantly reduce your test cycles.&lt;br /&gt;
&lt;br /&gt;
=== Who is running SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
The daily operation and development of SHARCNET computational facilities is managed by a group of highly qualified system administrators. In addition, we have a team of high performance technical computing consultants, who are responsible for technical support on libraries, programming and application analysis.&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET? ===&lt;br /&gt;
For technical inquiries, you may send E-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] or [mailto:help@sharcnet.ca help@sharcnet.ca], or [https://www.sharcnet.ca/my/contact/directory#techteam contact your local system administrator or HPC specialist]. For general inquiries, you may contact the SHARCNET [http://www.sharcnet.ca/my/contact main office].&lt;br /&gt;
&lt;br /&gt;
== Getting an Account with SHARCNET and Related Issues ==&lt;br /&gt;
&lt;br /&gt;
To use SHARCNET (and any other national facilities in Alliance) one has to [https://www.alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account apply for an Alliance account].&lt;br /&gt;
&lt;br /&gt;
== Getting Help ==&lt;br /&gt;
&lt;br /&gt;
=== I have encountered a problem while using an Alliance /SHARCNET system and need help, who should I talk to? ===&lt;br /&gt;
We encourage you to use the problem ticketing system (described in detail [[FAQ#Alliance_Problem_Ticket_System|below]]) .  This is the most efficient way of reporting a problem.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the [https://www.sharcnet.ca/my/contact/directory directory] page.&lt;br /&gt;
&lt;br /&gt;
=== How long should I expect to wait for support? ===&lt;br /&gt;
Unfortunately Alliance/SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week.  User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .  &lt;br /&gt;
&lt;br /&gt;
Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.  &lt;br /&gt;
&lt;br /&gt;
=== Alliance Problem Ticket System ===&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;problem ticket system&amp;quot;? ====&lt;br /&gt;
&lt;br /&gt;
This is a system that allows anyone with an Alliance account to start a persistent email thread that is referred to as a &amp;quot;problem ticket&amp;quot;.    When a user submits a new ticket it will be brought to the attention of an appropriate and available Alliance/SHARCNET staff member for resolution.  &lt;br /&gt;
&lt;br /&gt;
You interact with the ticket system entirely via email.&lt;br /&gt;
&lt;br /&gt;
==== What do I need to specify in a ticket ? ====&lt;br /&gt;
&lt;br /&gt;
To help us address your question faster, please try to do the following when submitting a ticket:&lt;br /&gt;
&lt;br /&gt;
#specify which of our systems is involved &lt;br /&gt;
#if the problem pertains to a job, then report the &amp;lt;u&amp;gt;jobid&amp;lt;/u&amp;gt; associated with the job; this is an integer that is returned by the scheduler when you submit the job&lt;br /&gt;
#report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem; if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem&lt;br /&gt;
#if you&amp;#039;d like for a particular staff member to be aware of the ticket, mention them&lt;br /&gt;
&lt;br /&gt;
==== How do I submit a ticket? ====&lt;br /&gt;
&lt;br /&gt;
In general, you can submit a new ticket by emailing  [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca]  with the email address associated with your Alliance account.  If you are using another email address, please provide your full name, your Alliance default username (if available) and your university or institution.&lt;br /&gt;
&lt;br /&gt;
If you like, you can also target your inquiry more specifically, by using the following addresses to submit your ticket:&lt;br /&gt;
&lt;br /&gt;
* [mailto:help@sharcnet.ca help@sharcnet.ca] - questions specific to SHARCNET, for example relating to contributed SHARCNET systems&lt;br /&gt;
* [mailto:globus@tech.alliancecan.ca globus@tech.alliancecan.ca] -- Questions about [[Globus]] file transfer services&lt;br /&gt;
* [mailto:cloud@tech.alliancecan.ca cloud@tech.alliancecan.ca] -- Questions about using Alliance cloud resources&lt;br /&gt;
* [mailto:accounts@tech.alliancecan.ca accounts@tech.alliancecan.ca] -- Questions about Alliance accounts&lt;br /&gt;
* [mailto:renewals@tech.alliancecan.ca renewals@tech.alliancecan.ca] -- Questions about Alliance account renewals&lt;br /&gt;
&lt;br /&gt;
=== I am new to parallel programming, can you help me get started with my project? ===&lt;br /&gt;
Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research. If your programming project would involve a significant staff time, you should consider applying for Dedicated Programming support. (We run the competition annually; see https://www.sharcnet.ca/my/research/programming).&lt;br /&gt;
&lt;br /&gt;
=== Can you install a package on a cluster for me? ===&lt;br /&gt;
Certainly.  We suggest you make the request by sending e-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] with the specific request.&lt;br /&gt;
&lt;br /&gt;
=== I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that? ===&lt;br /&gt;
If you tell us what you want, we may be able to help you out.&lt;br /&gt;
&lt;br /&gt;
=== Does SHARCNET provide any training on programming and using the systems? ===&lt;br /&gt;
&lt;br /&gt;
Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every summer (usually late May to early June), SHARCNET holds [https://www.sharcnet.ca/help/index.php/Summer_Schools an annual HPC Summer School] with a variety of in-depth, hands-on workshops. &lt;br /&gt;
&lt;br /&gt;
SHARCNET also offers a series of online seminars (so-called &amp;quot;General interest webinars&amp;quot;), typically delivered every second Wednesday at lunch time.  These are announced via the SHARCNET events mailing list and one can see the schedule at the [https://www.sharcnet.ca/my/news/calendar SHARCNET event calendar].  Past seminars are recorded and posted on [http://youtube.sharcnet.ca our youtube channel]. A full listing of the past webinars is available on the [https://helpwiki.sharcnet.ca/wiki/Online_Seminars Online Seminars] page.&lt;br /&gt;
&lt;br /&gt;
=== Attending SHARCNET Webinars ===&lt;br /&gt;
{{:Attending SHARCNET Webinars}}&lt;br /&gt;
&lt;br /&gt;
== Logging in to Systems, Transferring and Editing Files ==&lt;br /&gt;
&lt;br /&gt;
=== How do I login to SHARCNET? ===&lt;br /&gt;
You access the SHARCNET clusters using ssh.  For Graham and other national systems Alliance credentials are required.  For the remaining (&amp;quot;Legacy&amp;quot;) systems, you will require SHARCNET credentials (submit a ticket to help@sharcnet.ca if you have questions).&lt;br /&gt;
&lt;br /&gt;
====Unix/Linux/OS X====&lt;br /&gt;
To login to a system, you need to use an [http://www.openssh.com/ Secure Shell (SSH)] connection. If you are logging in from a UNIX-based machine, make sure it has an SSH client (ssh) installed (this is almost always the case on UNIX/Linux/OS X). If you have the same login name on both your local system and SHARCNET, and you want to login to, say, &amp;lt;tt&amp;gt;graham&amp;lt;/tt&amp;gt;, you may use the command:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If your Alliance username is different from the username on your local systems, then you may use either of the following forms:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca -l username&lt;br /&gt;
 ssh username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If you want to establish an X window connection so that you can use graphics applications such as &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ddt&amp;lt;/tt&amp;gt;, you can add a &amp;lt;tt&amp;gt;-Y&amp;lt;/tt&amp;gt; to the command:&lt;br /&gt;
&lt;br /&gt;
 ssh -Y username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
This will automatically set the X DISPLAY variable when you login.&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
If you are logging from a computer running Windows and need some pointers we recommend consulting our [[SSH]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between Login Nodes and Compute Nodes? ===&lt;br /&gt;
====Login Nodes====&lt;br /&gt;
&lt;br /&gt;
Most of our clusters have distinct &amp;#039;&amp;#039;login nodes&amp;#039;&amp;#039; associated with them that you are automatically redirected to when you login to the cluster (some systems are directly logged into, eg. SMPs and smaller specialty systems).  You can use these to do most of your work preparing for jobs (compiling, editing configuration files) and other low-intensity tasks like moving and copying files.  &lt;br /&gt;
&lt;br /&gt;
You can also use them for other quick tasks, like simple post-processing, but any significant work should be submitted as a job to the compute nodes.  On most login nodes, each process is limited to 1 cpu-hour; this will be noticable if you perform anything compute-intensive, and can affect IO-oriented activity as well (such as very large &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; operations.)&lt;br /&gt;
&lt;br /&gt;
=== How can I suspend and resume my session? ===&lt;br /&gt;
&lt;br /&gt;
The program screen can start persistent terminals from which you can detach and reattach.  The simplest use of screen is&lt;br /&gt;
&lt;br /&gt;
 screen -dR&lt;br /&gt;
&lt;br /&gt;
which will either reattach you to any existing session or create a new one if one doesn&amp;#039;t exist.  To terminate the current screen session, type &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;.  To detach manually (you are automatically detached if the connection is lost) press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;d&amp;#039;&amp;#039;, you can the resume later as above (ideal for running background jobs).  Note that &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; is screen&amp;#039;s escape sequence, so you have to do &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;a&amp;#039;&amp;#039; to get the regular effect of pressing &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; inside a screen session (e.g., moving the cursor to the start of the line in a shell).&lt;br /&gt;
&lt;br /&gt;
For a list of other &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; key sequences, press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;?&amp;#039;&amp;#039;.  For further details and  command line options, see the [http://www.gnu.org/software/screen/manual/screen.html screen manual] (or type &amp;lt;tt&amp;gt;man screen&amp;lt;/tt&amp;gt; on any of the clusters).&lt;br /&gt;
&lt;br /&gt;
Other notes:&lt;br /&gt;
* If you want to create additional &amp;quot;text windows&amp;quot;, use Ctrl-A Ctrl-C. Remember to type &amp;quot;exit&amp;quot; to close it. &lt;br /&gt;
* To switch to a &amp;quot;text window&amp;quot; with a certain number, use Ctrl-A # (where # is 0 to 9).&lt;br /&gt;
* To see a list of window numbers use Ctrl-A w&lt;br /&gt;
* To be presented a list of windows and select one to use, use Ctrl-A &amp;quot; (This is handy if you&amp;#039;ve made too many windows.)&lt;br /&gt;
* If the program running in a screen &amp;quot;text window&amp;quot; refuses to die (i.e., it needs to be killed) you can use Ctrl-A K&lt;br /&gt;
* For brief help on keystrokes use Ctrl-A ?&lt;br /&gt;
* For extensive help, run &amp;quot;man screen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What operating systems are supported? ===&lt;br /&gt;
UNIX in general. Currently, Linux is the only operating system used within SHARCNET.&lt;br /&gt;
&lt;br /&gt;
=== What makes a cluster different than my UNIX workstation? ===&lt;br /&gt;
&lt;br /&gt;
If you are familiar with UNIX, then using a cluster is not much different from using a workstation. When you login to a cluster, you in fact only log in to one of the cluster nodes. In most cases, each cluster node is a physical machine, usually a server class machine, with one or several CPUs, that is more or less the same as a workstation you are familiar with. The difference is that these nodes are interconnected with special interconnect devices and the way you run your program is slightly different. Across SHARCNET clusters, you are not expected to run your program interactively. You will have to run your program through a queueing system. That also means where and when your program gets to run is not decided by you, but by the queueing system.&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Those primary programming languages such as C, C++, Fortran, and Python are supported. Other languages, such as Java, Pascal and Ada, are also supported, but with limited technical support from us. &lt;br /&gt;
&lt;br /&gt;
=== How do I organize my files? ===&lt;br /&gt;
[https://docs.computecanada.ca/wiki/Storage_and_file_management#Storage_types Main file systems on our National systems.]&lt;br /&gt;
&lt;br /&gt;
==== How do I transfer files/directories to/from or between cluster? ====&lt;br /&gt;
&lt;br /&gt;
=====Unix/Linux=====&lt;br /&gt;
To transfer files to and from a cluster on a UNIX machine, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt;. For example, if you want to upload file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; to cluster graham from your machine &amp;lt;tt&amp;gt;myhost&amp;lt;/tt&amp;gt;, use the following command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp foo.f graham.computecanada.ca:&lt;br /&gt;
&lt;br /&gt;
assuming that your machine has &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; installed. If you want to transfer a file from Windows or Mac, you need have &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt; for Windows or Mac installed.&lt;br /&gt;
&lt;br /&gt;
If you transfer file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; between Alliance clusters, say from your home directory on cedar to your home directory on graham, simply use the following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp foo.f graham:/home/username/&lt;br /&gt;
&lt;br /&gt;
If you are transferring files between a UNIX machine and a cluster, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; command with &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; option. For instance, if you want to download the subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; in the directory &amp;lt;tt&amp;gt;project&amp;lt;/tt&amp;gt; in your home directory on graham to your local UNIX machine, on your local machine, use command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp -rp graham.sharcnet.ca:project/foo .&lt;br /&gt;
&lt;br /&gt;
Similarly, you can transfer the subdirectory between Alliance clusters. The following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp -r graham:/home/username/scratch/foo .&lt;br /&gt;
&lt;br /&gt;
will download subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; from your scratch directory on graham to your home directory on cedar (note that the prompt indicates you are currently logged on to cedar).&lt;br /&gt;
&lt;br /&gt;
The use of &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; option above will preserve the time stamp of each file. For Windows and Mac, you need to check the documentation of &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; for features. &amp;#039;&amp;#039;&amp;#039;Do not use -p switch with scp or cp commands on clusters, when the destination is your project space&amp;#039;&amp;#039;&amp;#039;, or you might run into the infamous [https://docs.computecanada.ca/wiki/Frequently_Asked_Questions#Disk_quota_exceeded_error_on_.2Fproject_filesystems Disk quota exceeded issue].&lt;br /&gt;
&lt;br /&gt;
You may also &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; and compress the entire directory and then use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to save bandwidth. In the above example, first you login to graham, then do the following&lt;br /&gt;
&lt;br /&gt;
 [username@gra-login2:~]$ cd project&lt;br /&gt;
 [username@gra-login2:~]$ tar -cvf foo.tar foo&lt;br /&gt;
 [username@gra-login2:~]$ gzip foo.tar&lt;br /&gt;
&lt;br /&gt;
Then on your local machine myhost, use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to copy the tar file&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp graham.computecanada.ca:project/foo.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Note for most Linux distributions, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; has an option &amp;lt;tt&amp;gt;-z&amp;lt;/tt&amp;gt; that will compress the &amp;lt;tt&amp;gt;.tar&amp;lt;/tt&amp;gt; file using &amp;lt;tt&amp;gt;gzip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Windows=====&lt;br /&gt;
You may read the instructions on using an ssh client. [[https://helpwiki.sharcnet.ca/wiki/SSH#Transfering_files_.28Secure_File_Transfer_Client.29]]&lt;br /&gt;
&lt;br /&gt;
====How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect?====&lt;br /&gt;
&lt;br /&gt;
In general, most users should be fine using &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to transfer data to and from SHARCNET systems.  If you need to transfer a lot of files &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; is recommended to ensure that you do not need to restart the transfer from scratch should there be a connection failure.  Although you can use &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to any cluster&amp;#039;s login node(s), it is often best to use gra-dtn1.computecanada.ca - it is dedicated to data transfer. &lt;br /&gt;
&lt;br /&gt;
In general one should expect the following transfer rates with &amp;#039;&amp;#039;scp&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* If you are connecting to SHARCNET through a Research/Education network site (ORION, CANARIE, Internet2) and are on a fast local network (this is the case for most users connecting from academic institutions) then you should be able to attain sustained transfer speeds in excess of 10MB/s.  If your path is all gigabit or better, you should be able to reach rates above 50 MB/s.&lt;br /&gt;
* If you are transferring data over the wider internet, you will not be able to attain these speeds, as all traffic that does not enter/exit SHARCNET via the R&amp;amp;E net is restricted to a limited-bandwidth commercial feed. In this case one will typically see rates on the order of 1MB/s or less.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that filesystems and networks are  shared resources and suffer from contention; if they are busy the above rates may not be attainable&lt;br /&gt;
&lt;br /&gt;
For transferring large amounts of data (many gigabytes) the best approach is to use the online tool [https://docs.computecanada.ca/wiki/Transferring_data#Globus_transfer Globus].&lt;br /&gt;
&lt;br /&gt;
==== How do I access the same file from different subdirectories on the same cluster ? ====&lt;br /&gt;
&lt;br /&gt;
You should not need copy large files on the same cluster (e.g. from one user to another&lt;br /&gt;
or using the same file in different subdirectories).  Instead of using&lt;br /&gt;
scp you might consider issuing a &amp;quot;soft link&amp;quot; command. Assume that you need access&lt;br /&gt;
to the file large_file1 in subdirectory /home/user1/subdir1 and you need it to be in your&lt;br /&gt;
subdirectory /home/my_account/my_dir from where you will invoke it under the name&lt;br /&gt;
my_large_file1.  Then go to that directory and type:&lt;br /&gt;
&lt;br /&gt;
 ln -s /home/user1/subdir1/large_file1    my_large_file1&lt;br /&gt;
&lt;br /&gt;
Another example, assume that in subdirectory /home/my_account/PROJ1 you have several&lt;br /&gt;
subdirectories called CASE1, CASE2, ...  In each subdirectory CASEn you have a slightly&lt;br /&gt;
different code but all of them process the same data file called test_data. Rather than&lt;br /&gt;
copying the test_data file into each CASEn subdirectory, place test_data above i.e.&lt;br /&gt;
in /home/my_account/PROJ1 and then in each CASEn subdirectory issue following &amp;quot;soft link&amp;quot;&lt;br /&gt;
command:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../test_data  test_data&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;soft links&amp;quot; can be removed by using the rm command. For example, to remove the soft link from&lt;br /&gt;
/home/my_account/PROJ1/CASE2 type following command from this subdirectory:&lt;br /&gt;
&lt;br /&gt;
 rm -rf test_data&lt;br /&gt;
&lt;br /&gt;
Typing above command from subdirectory /home/my_account/PROJ1 would remove the actual file and then&lt;br /&gt;
none of the CASEn subdirectories would have access to it.&lt;br /&gt;
&lt;br /&gt;
==== How are files deleted from the /home/userid/scratch filesystems? ====&lt;br /&gt;
&lt;br /&gt;
All files on /home/userid/scratch that are over 2 months old (not old in the common sense, please see below) are automatically deleted. Data needed for long term storage and reference should be kept in either /project, /nearline, or other archival storage areas. The scratch filesystem is checked at the end of the month for files which will be candidates for expiry on the 15th of the following month. On the first day of the month, a login message is posted and a notification e-mail is sent to all users who have at least one file which is a candidate for purging and containing the location of a file which lists all the candidates for purging.  On the 12th of the month, a second scan is run to check for files that will still expire on the 15th, and again, users with candidates for expiry are sent a second warning email.  Lastly, on the 15th, all files which are due for expiry are removed.&lt;br /&gt;
&lt;br /&gt;
An unconventional aspect of this system is that it does not determine the age of a file based on the file&amp;#039;s attributes, e.g., the standard dates reported by the &amp;lt;i&amp;gt;stat&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;find&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;ls&amp;lt;/i&amp;gt;, etc. commands.  (This is known as the &amp;quot;mtime&amp;quot; of the file, for &amp;quot;modification time&amp;quot;, and is frequently inaccurate.) The age of a file is determined based on whether or not its data contents (i.e., the information stored in the file) have changed or been accessed, and this age is stored externally to the file.  Only files where the contents have changed or accessed will have their age counter &amp;quot;reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A list of your candidate files for expiry can be found in /home/scratch_to_delete/$USER  (where $USER is your userid).&lt;br /&gt;
&lt;br /&gt;
===== How do I check the age of a file =====&lt;br /&gt;
We define a file&amp;#039;s age as the most recent of:&lt;br /&gt;
&lt;br /&gt;
 *the access time (atime) and&lt;br /&gt;
 *the change time (ctime)&lt;br /&gt;
&lt;br /&gt;
You can find the ctime of a file using&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lc &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while the atime can be obtained with the command&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lu &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do not use the modify time (mtime) of the file because it can be modified by the user or by other programs to display incorrect information.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, simple use of the atime property would be sufficient, as it is updated by the system in sync with the ctime. However, userspace programs are able to alter atime, potentially to times in the past, which could result in early expiration of a file. The use of ctime as a fallback guards against this undesirable behaviour.&lt;br /&gt;
&lt;br /&gt;
It is also your responsibility to manage your stored data: most of the filesystems are not intended to provide an indefinite archiving service so when a given file or directory is no longer needed, you need to move it to a more appropriate filesystem which may well mean your personal workstation or some other storage system under your control. Moving significant amounts of data between your workstation and a Compute Canada system or between two Compute Canada systems should generally be done using Globus.&lt;br /&gt;
&lt;br /&gt;
==== How to archive my data? ====&lt;br /&gt;
&lt;br /&gt;
===== Use tar to archive files and directories =====&lt;br /&gt;
&lt;br /&gt;
The primary archiving utility on all Linux and Unix-like systems is the [https://www.gnu.org/software/tar/manual/tar.html tar] command. It will bundle a bunch of files or directories together and generate a single file, called an &amp;#039;&amp;#039;archive file&amp;#039;&amp;#039; or &amp;#039;&amp;#039;tar-file&amp;#039;&amp;#039;. By convention an archive file has &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; as the file name extension. When you archive a directory with &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, it will, by default, include all the files and sub-directories contained within it, and sub-sub-directories contained in those, and so on. So the command &amp;lt;code&amp;gt;tar --create --file project1.tar project1&amp;lt;/code&amp;gt; will pack all the content of directory &amp;#039;&amp;#039;project1&amp;#039;&amp;#039; into the file &amp;#039;&amp;#039;project1.tar&amp;#039;&amp;#039;. The original directory will remain unchanged, so this may double the amount of disk space occupied!&lt;br /&gt;
&lt;br /&gt;
You can extract files from an archive using the same command with a different option:&amp;lt;code&amp;gt;tar --extract --file project1.tar&amp;lt;/code&amp;gt;. If there is no directory with the original name, it will be created. If a directory of that name exists and contains files of the same names as in the archive file, they will be overwritten. Another option can be added to specify the destination directory where to extract the archive&amp;#039;s content.   &lt;br /&gt;
&lt;br /&gt;
===== Compress and uncompress tar files =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; archiving utility can compress an archive file at the same time it creates it. There are a number of compression methods to choose from. We recommend either &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;, which can be used as follows:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ tar --create --xz --file project1.tar.xz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --xz --file project1.tar.xz&lt;br /&gt;
 [user_name@localhost]$ tar --create --gzip --file project1.tar.gz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --gzip --file project1.tar.gz&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;code&amp;gt;--xz&amp;lt;/code&amp;gt; will produce a smaller compressed file (a &amp;quot;better compression ratio&amp;quot;) but takes longer and uses more RAM while working. &amp;lt;code&amp;gt;--gzip&amp;lt;/code&amp;gt; does not typically compress as small, but may be used if you encounter difficulties due to insufficient memory or excessive run time during &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt;. A third option, &amp;lt;code&amp;gt;--bzip2&amp;lt;/code&amp;gt;, is also available, that typically does not compress as small as &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; but takes longer than &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt; first without compression and then use the commands &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; in a separate step, although there is rarely a reason to do so. Similarly, you can run &amp;lt;code&amp;gt;xz -d&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip -d&amp;lt;/code&amp;gt; to decompress an archive file before running &amp;lt;code&amp;gt;tar --extract&amp;lt;/code&amp;gt;, but again there is rarely a reason to do so.&lt;br /&gt;
&lt;br /&gt;
The commands &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; can be used to compress any file, not just archive files:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ gzip bigfile&lt;br /&gt;
 [user_name@localhost]$ xz bigfile&lt;br /&gt;
&lt;br /&gt;
These commands will produce the files &amp;lt;code&amp;gt;bigfile.gz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigfile.xz&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
=====Archival Storage=====&lt;br /&gt;
&lt;br /&gt;
On Graham, files copied to ~/nearline will be subsequently moved to offline (tape-based) storage. See [https://docs.computecanada.ca/wiki/Using_nearline_storage this link] for more details.&lt;br /&gt;
&lt;br /&gt;
==== How can I check the hidden files in directory? ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;.&amp;quot; at the beginning of the name means that the file is &amp;quot;hidden&amp;quot;. You have to use the -a option with ls to see it. I.e. &amp;lt;code&amp;gt;ls -a &amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
If you want to display only the hidden files then type:&lt;br /&gt;
 ls -d .*&lt;br /&gt;
&lt;br /&gt;
Note: there is an alias which is loaded from /etc/bashrc (see your .bashrc file). The alias is defined by alias &amp;lt;code&amp;gt; l.=&amp;#039;ls -d .* --color=auto&amp;#039; &amp;lt;/code&amp;gt; and if you type:&lt;br /&gt;
 l.&lt;br /&gt;
you will also display only the hidden files.&lt;br /&gt;
&lt;br /&gt;
==== How can I count the number of files in a directory? ====&lt;br /&gt;
&lt;br /&gt;
One can use the following command to count the number of files in a directory (in this example, your /work directory):&lt;br /&gt;
&lt;br /&gt;
 find /home/$USER -type f   | wc -l&lt;br /&gt;
&lt;br /&gt;
It is always a good idea to [[Knowledge_Base#How_to_archive_my_data.3F|archive]] and/or compress files that are no longer needed on the filesystem (see [https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_to_organize_a_large_number_of_files.3F below]).  This helps minimize one&amp;#039;s footprint on the filesystem and as such the impact they have on other users of the shared resource.&lt;br /&gt;
&lt;br /&gt;
==== How to organize a large number of files? ====&lt;br /&gt;
&lt;br /&gt;
With parallel cluster filesystems, you will get best I/O performance writing data to a small number of large files. Since all metadata operations on each of our parallel filesystems are handled by a single file server, depending on how many files are being accessed the server can become overwhelmed leading to poor overall I/O performance for all users. If your workflow involves storing data in a large number of files, it is best to pack these files into a small number of larger archives, e.g. using tar command&lt;br /&gt;
&lt;br /&gt;
 tar cvf archiveFile.tar directoryToArchive&lt;br /&gt;
&lt;br /&gt;
For better performance with many files inside your archive, we recommend to use DAR (Disk ARchive utility), which is a disk analog of tar (Tape ARchive).  Dar can extract files from anywhere in the archive much faster than tar. The dar command is available by default on sharcnet systems. It can be used to pack files into a dar archive by doing something like: &lt;br /&gt;
&lt;br /&gt;
 dar -s 1G -w -c archiveFile -g directoryToArchive&lt;br /&gt;
&lt;br /&gt;
In this example we split the archive into 1GB chunks, and the archive files will be named archiveFile.1.dar, archiveFile.2.dar, and so on. To list the contents of the archive, you can type:&lt;br /&gt;
&lt;br /&gt;
 dar -l archiveFile&lt;br /&gt;
&lt;br /&gt;
To temporarily extract files for post-processing into current directory, you would type:&lt;br /&gt;
&lt;br /&gt;
 dar -R . -O -x archiveFile -v -g pathToYourFile/fileToExtract&lt;br /&gt;
&lt;br /&gt;
=== I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host ===&lt;br /&gt;
&lt;br /&gt;
The most likely cause of this behaviour is repeated failed login attempts.  Part of our security policies involves blocking the IP address of machines that attempt multiple logins with incorrect passwords over a short period of time---many brute-force attacks on systems do exactly this: looking for poor passwords, badly configured accounts, etc.  Unfortunately, it isn&amp;#039;t uncommon for a user to forget their password and make repeated login attempts with incorrect passwords and end up with that machine blacklisted and unable to connect at all.&lt;br /&gt;
&lt;br /&gt;
A temporary solution is simply to attempt to login from another machine.  If you have access to another machine at your site, you can shell to that machine first, and then shell to the SHARCNET system (as that machine&amp;#039;s IP shouldn&amp;#039;t be blacklisted).  In order to have your machine unblocked, you will have to email to [mailto:support@computecanada.ca support@computecanada.ca] as a system administrator must manually intervene in order to fix it.&lt;br /&gt;
&lt;br /&gt;
NOTE: there are other situations that can produce this message, however they are rarer and more transient.  If you are unable to log in from one machine, but can from another, it is most likely the IP blacklisting that is the problem and the above will provide a temporary work-around while your problem ticket is processed.&lt;br /&gt;
&lt;br /&gt;
=== I am unable to ssh/scp from SHARCNET to my local computer ===&lt;br /&gt;
&lt;br /&gt;
Most campus networks are behind some sort of firewall.  If you can ssh out to SHARCNET, but cannot establish a connection in the other direction, then you are probably behind a firewall and should speak with your local system administrator or campus IT department to determine if there are any exceptions or workarounds in place.&lt;br /&gt;
&lt;br /&gt;
=== SSH tells me SOMEONE IS DOING SOMETHING NASTY!? ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please first read the following:&lt;br /&gt;
&lt;br /&gt;
https://docs.computecanada.ca/wiki/SSH_security_improvements&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suppose you attempt to login to SHARCNET, but instead get an alarming message like this:&lt;br /&gt;
&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that the RSA host key has just been changed.&lt;br /&gt;
 The fingerprint for the RSA key sent by the remote host is&lt;br /&gt;
 fe:65:ab:89:9a:23:34:5a:50:1e:05:d6:bf:ec:da:67.&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending key in /home/user/.ssh/known_hosts:42&lt;br /&gt;
 RSA host key for requin has changed and you have requested strict checking.&lt;br /&gt;
 Host key verification failed. &lt;br /&gt;
&lt;br /&gt;
SSH begins a connection by verifying that the host you&amp;#039;re connecting to is authentic. It does this by caching the hosts&amp;#039;s &amp;quot;hostkey&amp;quot; in your  &amp;lt;tt&amp;gt;~/.ssh/known_hosts&amp;lt;/tt&amp;gt; file. At times, a hostkey may be changed legitimately; when this happens, you may see such a message. It&amp;#039;s a good idea to verify this with us, you may be able to check the fingerprint yourself by logging into another sharcnet system and running:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub &lt;br /&gt;
&lt;br /&gt;
If the fingerprint is OK, the normal way to fix the problem is to simply remove the old hostkey from your &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. On machines with commandline SSH, you can do this with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -R thehostname&lt;br /&gt;
&lt;br /&gt;
You can use your choice of editor if you&amp;#039;re comfortable doing so (it&amp;#039;s a plain text file, but has long lines). On a unix-compatible machine, you can also use the following very small script (Substitute the line(s) printed in the warning message illustrated above for &amp;#039;42&amp;#039; here.):&lt;br /&gt;
&lt;br /&gt;
 perl -pi -e &amp;#039;undef $_ if (++$line == 42)&amp;#039; ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
Another solution is brute-force: remove the whole &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. This throws away any authentication checking, and afterwards, your first connection to any machine will prompt you to accept a newly discovered host key.&lt;br /&gt;
&lt;br /&gt;
=== Ssh works, but scp doesn&amp;#039;t! ===&lt;br /&gt;
&lt;br /&gt;
If you can &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; to a cluster successfully, but cannot &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to to it, the problem is likely that your login scripts print unexpected messages which confuse &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; is based on the same &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, but assumes that the connection is &amp;quot;clean&amp;quot;: that is, that it does not produce any un-asked-for content. If you have something like:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; will be confused by the salutation. To avoid this, simply ensure that the message is only printed on an interactive login:&lt;br /&gt;
&lt;br /&gt;
 if [ -t 0 ]; then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
or in csh/tcsh syntax:&lt;br /&gt;
&lt;br /&gt;
 if ( -t 0 ) then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
=== How do I edit my program on a cluster? ===&lt;br /&gt;
&lt;br /&gt;
We provide a variety of editors, such as the traditional text-mode &amp;lt;tt&amp;gt;emacs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; (vim), as well as a simpler one called &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;. If you have X on your desktop (and tunneled through SSH), you can use the GUI versions (&amp;lt;tt&amp;gt;xemacs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If your desktop supports FUSE, it&amp;#039;s very convenient to simply mount your home tree like this:&lt;br /&gt;
 mkdir sharcnet&lt;br /&gt;
 sshfs graham.computecanada.ca: sharcnet&lt;br /&gt;
you can then use any local editor of your choice.&lt;br /&gt;
&lt;br /&gt;
If you run emacs on your desktop, you can also edit a remote file from within your local emacs client using [http://www.gnu.org/software/tramp Tramp], opening and saving a file as /username@cluster.computecanada.ca:path/file.&lt;br /&gt;
&lt;br /&gt;
== Research at SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== I have a research project I would like to collaborate on with SHARCNET, who should I talk to? ===&lt;br /&gt;
&lt;br /&gt;
You may contact [mailto:barb@sharcnet.ca SHARCNET head office] or contact members of the [https://www.sharcnet.ca/my/contact/directory#techteam SHARCNET technical staff].&lt;br /&gt;
&lt;br /&gt;
=== How can I contribute compute resources to SHARCNET so that other researchers can share it? ===&lt;br /&gt;
&lt;br /&gt;
Most people&amp;#039;s research is &amp;quot;bursty&amp;quot; - there are usually sparse periods of time when some computation is urgently needed, and other periods when there is less demand. One problem with this is that if you purchase the equipment you need to meet your &amp;quot;burst&amp;quot; needs, it&amp;#039;ll probably sit, underutilized, during other times.&lt;br /&gt;
&lt;br /&gt;
An alternative is to donate control of this equipment to SHARCNET, and let us arrange for other users to use it when you are not. We prefer to be involved in the selection and configuration of such equipment. Our promise to contributors is that as much as possible, they should obtain as much benefit from the cluster as if it were not shared. Owners get preferential access. Naturally, owners are also able to burst to higher peak usage, since their equipment has been pooled with other contributions. (Technically, SHARCNET cannot itself own such equipment — it remains owned by the institution in question, and will be returned to the contributor upon request.) If you think this model will also work for you and you would like to contribute your computational resource to help the research community at SHARCNET, you can contact us for such arrangement.&lt;br /&gt;
&lt;br /&gt;
=== I do not know much about computation, nor is it my research interest. But I am interested in getting my research done faster with the help of the high performance computing technology. In other words, I do not care about the process and mechanism, but only the final results. Can SHARCNET provide this type of help? ===&lt;br /&gt;
&lt;br /&gt;
We will be happy to bring the technology of high performance computing to you to accelerate your research, if at all possible. If you would like to discuss your plan with us, please feel free to contact our [https://www.sharcnet.ca/my/contact/directory#techteam high performance computing specialists]. They will be happy to listen to your needs and are ready to provide appropriate suggestions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET participates in the Compute Canada NRAC (National Resource Allocation Competition) and provides a continual competition for groups that require more than the default level of access to our resources.  Please see [[Dedicated Resources]] for further information.&lt;br /&gt;
&lt;br /&gt;
=== I heard SHARCNET offers fellowships, where can I get more information? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET no longer actively runs a fellowship program.  You may find information regarding past fellowships and other dedicated resource opportunities on the [https://www.sharcnet.ca/my/research/fellowships Research Fellowships page] of the web portal.&lt;br /&gt;
&lt;br /&gt;
=== I would like to do some research at SHARCNET as a visiting scholar, how should I apply? ===&lt;br /&gt;
&lt;br /&gt;
In general, you will need to find a hosting department or a person affiliated with one of the SHARCNET institutions. You may also [http://www.sharcnet.ca/my/contact contact us] directly for more specific information.&lt;br /&gt;
&lt;br /&gt;
=== I would like to send my students to SHARCNET to do some work for me. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
See above.&lt;br /&gt;
&lt;br /&gt;
== Contacting SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for research, academic exchanges, and technical issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for business development, education and other issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact a specific staff member at SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
See [https://www.sharcnet.ca/my/contact/directory staff directory] for contact information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Acknowledge SHARCNET in Publications ==&lt;br /&gt;
&lt;br /&gt;
=== How do I acknowledge SHARCNET in my publications? ===&lt;br /&gt;
&lt;br /&gt;
We recommend one cite the following:&lt;br /&gt;
&lt;br /&gt;
 This work was made possible by the facilities of the Shared Hierarchical &lt;br /&gt;
 Academic Research Computing Network (SHARCNET:www.sharcnet.ca) and Digital Research Alliance of Canada (https://alliancecan.ca/en).&lt;br /&gt;
&lt;br /&gt;
=== I&amp;#039;ve seen different spellings of the name, what is the standard spelling of SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
We suggest the spelling SHARCNET, all in upper case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What types of research programs / support are provided to the research community? ==&lt;br /&gt;
&lt;br /&gt;
Our overall intent is to provide support that can both respond to the range of needs that the user community presents and help to increase the sophistication of the community and enable new and larger-in-scope applications making use of SHARCNET&amp;#039;s HPC facilities. The range of support can perhaps best be understood in terms of a pyramid:&lt;br /&gt;
&lt;br /&gt;
=== Level 1 ===&lt;br /&gt;
&lt;br /&gt;
At the apex of the pyramid, SHARCNET supports a small number of projects with dedicated programmer support. The intent is to enable projects that will have a lasting impact and may lead to a &amp;quot;step change&amp;quot; in the way research is done at SHARCNET. Inter-disciplinary and inter-institutional projects are particularly welcomed. For the latest information about the program, including application guidelines, please see the  [https://www.sharcnet.ca/my/research/programming Programming Competition] page in our web portal.&lt;br /&gt;
&lt;br /&gt;
=== Level 2 ===&lt;br /&gt;
&lt;br /&gt;
The middle layers of support are provided through a number of initiatives.&lt;br /&gt;
&lt;br /&gt;
These include:&lt;br /&gt;
* Programming support of more modest duration (several days to one month engagement, usually part time)&lt;br /&gt;
* Training on a variety of topics through [https://www.sharcnet.ca/help/index.php/Training workshops, seminars and online training materials]&lt;br /&gt;
* Consultation. This may include user-initiated interactions on particular programs, algorithms, techniques, debugging, optimization etc., as well as unsolicited help to ensure effective use of SHARCNET systems&lt;br /&gt;
* Site Leaders play an important role in working with the community to help researchers connect with SHARCNET staff and to obtain appropriate help and support.&lt;br /&gt;
&lt;br /&gt;
=== Level 3 ===&lt;br /&gt;
&lt;br /&gt;
The base level of the pyramid handles the very large number of small requests that are essential to keeping the user community working effectively with the infrastructure on a day-to-day basis. Several of these can be answered by this FAQ; many of the issues are presented through the [https://www.sharcnet.ca/help/index.php/Knowledge_Base#Compute_Canada_Problem_Ticket_System ticketing system]. The support is largely problem oriented with each problem being time limited.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=942</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=942"/>
		<updated>2024-09-17T17:31:29Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* Unix/Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Sharcnet_logo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== About SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== What is SHARCNET? ===&lt;br /&gt;
SHARCNET stands for Shared Hierarchical Academic Research Computing Network. Established in 2000, SHARCNET is the largest high performance computing consortium in Canada, involving 19 universities and colleges across southern, central and northern Ontario.&lt;br /&gt;
&lt;br /&gt;
SHARCNET is a member consortium in the [https://alliancecan.ca/en Digital Research Alliance of Canada (Alliance)]  national HPC platform.&lt;br /&gt;
&lt;br /&gt;
=== Where is SHARCNET? ===&lt;br /&gt;
The [http://www.sharcnet.ca/my/contact main office] of SHARCNET is located in the Western Science Centre at [http://www.uwo.ca/ The University of Western Ontario].&lt;br /&gt;
&lt;br /&gt;
=== What does SHARCNET have? ===&lt;br /&gt;
The primary SHARCNET compute system is [https://docs.computecanada.ca/wiki/Graham Graham heterogeneous cluster] located at the University of Waterloo.  It is named after Wes Graham, the first director of the Computing Centre at Waterloo.  It consists of 41,548 cores and 520 GPU devices, spread across 1,185 nodes of different configurations.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with SHARCNET? ===&lt;br /&gt;
If you have a program that takes months to run on your PC, you could probably run it within a few hours using hundreds of processors on SHARCNET / Alliance, provided your program is inherently parallelisable. If you have hundreds or thousands of test cases to run through on your PC or computers in your lab, then with hundreds of processors running those cases independently will significantly reduce your test cycles.&lt;br /&gt;
&lt;br /&gt;
=== Who is running SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
The daily operation and development of SHARCNET computational facilities is managed by a group of highly qualified system administrators. In addition, we have a team of high performance technical computing consultants, who are responsible for technical support on libraries, programming and application analysis.&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET? ===&lt;br /&gt;
For technical inquiries, you may send E-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] or [mailto:help@sharcnet.ca help@sharcnet.ca], or [https://www.sharcnet.ca/my/contact/directory#techteam contact your local system administrator or HPC specialist]. For general inquiries, you may contact the SHARCNET [http://www.sharcnet.ca/my/contact main office].&lt;br /&gt;
&lt;br /&gt;
== Getting an Account with SHARCNET and Related Issues ==&lt;br /&gt;
&lt;br /&gt;
To use SHARCNET (and any other national facilities in Alliance) one has to [https://www.alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account apply for an Alliance account].&lt;br /&gt;
&lt;br /&gt;
== Getting Help ==&lt;br /&gt;
&lt;br /&gt;
=== I have encountered a problem while using an Alliance /SHARCNET system and need help, who should I talk to? ===&lt;br /&gt;
We encourage you to use the problem ticketing system (described in detail [[FAQ#Alliance_Problem_Ticket_System|below]]) .  This is the most efficient way of reporting a problem.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the [https://www.sharcnet.ca/my/contact/directory directory] page.&lt;br /&gt;
&lt;br /&gt;
=== How long should I expect to wait for support? ===&lt;br /&gt;
Unfortunately Alliance/SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week.  User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .  &lt;br /&gt;
&lt;br /&gt;
Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.  &lt;br /&gt;
&lt;br /&gt;
=== Alliance Problem Ticket System ===&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;problem ticket system&amp;quot;? ====&lt;br /&gt;
&lt;br /&gt;
This is a system that allows anyone with an Alliance account to start a persistent email thread that is referred to as a &amp;quot;problem ticket&amp;quot;.    When a user submits a new ticket it will be brought to the attention of an appropriate and available Alliance/SHARCNET staff member for resolution.  &lt;br /&gt;
&lt;br /&gt;
You interact with the ticket system entirely via email.&lt;br /&gt;
&lt;br /&gt;
==== What do I need to specify in a ticket ? ====&lt;br /&gt;
&lt;br /&gt;
To help us address your question faster, please try to do the following when submitting a ticket:&lt;br /&gt;
&lt;br /&gt;
#specify which of our systems is involved &lt;br /&gt;
#if the problem pertains to a job, then report the &amp;lt;u&amp;gt;jobid&amp;lt;/u&amp;gt; associated with the job; this is an integer that is returned by the scheduler when you submit the job&lt;br /&gt;
#report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem; if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem&lt;br /&gt;
#if you&amp;#039;d like for a particular staff member to be aware of the ticket, mention them&lt;br /&gt;
&lt;br /&gt;
==== How do I submit a ticket? ====&lt;br /&gt;
&lt;br /&gt;
In general, you can submit a new ticket by emailing  [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca]  with the email address associated with your Alliance account.  If you are using another email address, please provide your full name, your Alliance default username (if available) and your university or institution.&lt;br /&gt;
&lt;br /&gt;
If you like, you can also target your inquiry more specifically, by using the following addresses to submit your ticket:&lt;br /&gt;
&lt;br /&gt;
* [mailto:help@sharcnet.ca help@sharcnet.ca] - questions specific to SHARCNET, for example relating to contributed SHARCNET systems&lt;br /&gt;
* [mailto:globus@tech.alliancecan.ca globus@tech.alliancecan.ca] -- Questions about [[Globus]] file transfer services&lt;br /&gt;
* [mailto:cloud@tech.alliancecan.ca cloud@tech.alliancecan.ca] -- Questions about using Alliance cloud resources&lt;br /&gt;
* [mailto:accounts@tech.alliancecan.ca accounts@tech.alliancecan.ca] -- Questions about Alliance accounts&lt;br /&gt;
* [mailto:renewals@tech.alliancecan.ca renewals@tech.alliancecan.ca] -- Questions about Alliance account renewals&lt;br /&gt;
&lt;br /&gt;
=== I am new to parallel programming, can you help me get started with my project? ===&lt;br /&gt;
Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research. If your programming project would involve a significant staff time, you should consider applying for Dedicated Programming support. (We run the competition annually; see https://www.sharcnet.ca/my/research/programming).&lt;br /&gt;
&lt;br /&gt;
=== Can you install a package on a cluster for me? ===&lt;br /&gt;
Certainly.  We suggest you make the request by sending e-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] with the specific request.&lt;br /&gt;
&lt;br /&gt;
=== I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that? ===&lt;br /&gt;
If you tell us what you want, we may be able to help you out.&lt;br /&gt;
&lt;br /&gt;
=== Does SHARCNET provide any training on programming and using the systems? ===&lt;br /&gt;
&lt;br /&gt;
Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every summer (usually late May to early June), SHARCNET holds [https://www.sharcnet.ca/help/index.php/Summer_Schools an annual HPC Summer School] with a variety of in-depth, hands-on workshops. &lt;br /&gt;
&lt;br /&gt;
SHARCNET also offers a series of online seminars (so-called &amp;quot;General interest webinars&amp;quot;), typically delivered every second Wednesday at lunch time.  These are announced via the SHARCNET events mailing list and one can see the schedule at the [https://www.sharcnet.ca/my/news/calendar SHARCNET event calendar].  Past seminars are recorded and posted on [http://youtube.sharcnet.ca our youtube channel]. A full listing of the past webinars is available on the [https://helpwiki.sharcnet.ca/wiki/Online_Seminars Online Seminars] page.&lt;br /&gt;
&lt;br /&gt;
=== Attending SHARCNET Webinars ===&lt;br /&gt;
{{:Attending SHARCNET Webinars}}&lt;br /&gt;
&lt;br /&gt;
== Logging in to Systems, Transferring and Editing Files ==&lt;br /&gt;
&lt;br /&gt;
=== How do I login to SHARCNET? ===&lt;br /&gt;
You access the SHARCNET clusters using ssh.  For Graham and other national systems Alliance credentials are required.  For the remaining (&amp;quot;Legacy&amp;quot;) systems, you will require SHARCNET credentials (submit a ticket to help@sharcnet.ca if you have questions).&lt;br /&gt;
&lt;br /&gt;
====Unix/Linux/OS X====&lt;br /&gt;
To login to a system, you need to use an [http://www.openssh.com/ Secure Shell (SSH)] connection. If you are logging in from a UNIX-based machine, make sure it has an SSH client (ssh) installed (this is almost always the case on UNIX/Linux/OS X). If you have the same login name on both your local system and SHARCNET, and you want to login to, say, &amp;lt;tt&amp;gt;graham&amp;lt;/tt&amp;gt;, you may use the command:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If your Alliance username is different from the username on your local systems, then you may use either of the following forms:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca -l username&lt;br /&gt;
 ssh username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If you want to establish an X window connection so that you can use graphics applications such as &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ddt&amp;lt;/tt&amp;gt;, you can add a &amp;lt;tt&amp;gt;-Y&amp;lt;/tt&amp;gt; to the command:&lt;br /&gt;
&lt;br /&gt;
 ssh -Y username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
This will automatically set the X DISPLAY variable when you login.&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
If you are logging from a computer running Windows and need some pointers we recommend consulting our [[SSH]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between Login Nodes and Compute Nodes? ===&lt;br /&gt;
====Login Nodes====&lt;br /&gt;
&lt;br /&gt;
Most of our clusters have distinct &amp;#039;&amp;#039;login nodes&amp;#039;&amp;#039; associated with them that you are automatically redirected to when you login to the cluster (some systems are directly logged into, eg. SMPs and smaller specialty systems).  You can use these to do most of your work preparing for jobs (compiling, editing configuration files) and other low-intensity tasks like moving and copying files.  &lt;br /&gt;
&lt;br /&gt;
You can also use them for other quick tasks, like simple post-processing, but any significant work should be submitted as a job to the compute nodes.  On most login nodes, each process is limited to 1 cpu-hour; this will be noticable if you perform anything compute-intensive, and can affect IO-oriented activity as well (such as very large &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; operations.)&lt;br /&gt;
&lt;br /&gt;
=== How can I suspend and resume my session? ===&lt;br /&gt;
&lt;br /&gt;
The program screen can start persistent terminals from which you can detach and reattach.  The simplest use of screen is&lt;br /&gt;
&lt;br /&gt;
 screen -dR&lt;br /&gt;
&lt;br /&gt;
which will either reattach you to any existing session or create a new one if one doesn&amp;#039;t exist.  To terminate the current screen session, type &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;.  To detach manually (you are automatically detached if the connection is lost) press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;d&amp;#039;&amp;#039;, you can the resume later as above (ideal for running background jobs).  Note that &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; is screen&amp;#039;s escape sequence, so you have to do &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;a&amp;#039;&amp;#039; to get the regular effect of pressing &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; inside a screen session (e.g., moving the cursor to the start of the line in a shell).&lt;br /&gt;
&lt;br /&gt;
For a list of other &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; key sequences, press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;?&amp;#039;&amp;#039;.  For further details and  command line options, see the [http://www.gnu.org/software/screen/manual/screen.html screen manual] (or type &amp;lt;tt&amp;gt;man screen&amp;lt;/tt&amp;gt; on any of the clusters).&lt;br /&gt;
&lt;br /&gt;
Other notes:&lt;br /&gt;
* If you want to create additional &amp;quot;text windows&amp;quot;, use Ctrl-A Ctrl-C. Remember to type &amp;quot;exit&amp;quot; to close it. &lt;br /&gt;
* To switch to a &amp;quot;text window&amp;quot; with a certain number, use Ctrl-A # (where # is 0 to 9).&lt;br /&gt;
* To see a list of window numbers use Ctrl-A w&lt;br /&gt;
* To be presented a list of windows and select one to use, use Ctrl-A &amp;quot; (This is handy if you&amp;#039;ve made too many windows.)&lt;br /&gt;
* If the program running in a screen &amp;quot;text window&amp;quot; refuses to die (i.e., it needs to be killed) you can use Ctrl-A K&lt;br /&gt;
* For brief help on keystrokes use Ctrl-A ?&lt;br /&gt;
* For extensive help, run &amp;quot;man screen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What operating systems are supported? ===&lt;br /&gt;
UNIX in general. Currently, Linux is the only operating system used within SHARCNET.&lt;br /&gt;
&lt;br /&gt;
=== What makes a cluster different than my UNIX workstation? ===&lt;br /&gt;
&lt;br /&gt;
If you are familiar with UNIX, then using a cluster is not much different from using a workstation. When you login to a cluster, you in fact only log in to one of the cluster nodes. In most cases, each cluster node is a physical machine, usually a server class machine, with one or several CPUs, that is more or less the same as a workstation you are familiar with. The difference is that these nodes are interconnected with special interconnect devices and the way you run your program is slightly different. Across SHARCNET clusters, you are not expected to run your program interactively. You will have to run your program through a queueing system. That also means where and when your program gets to run is not decided by you, but by the queueing system.&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Those primary programming languages such as C, C++, Fortran, and Python are supported. Other languages, such as Java, Pascal and Ada, are also supported, but with limited technical support from us. &lt;br /&gt;
&lt;br /&gt;
=== How do I organize my files? ===&lt;br /&gt;
[https://docs.computecanada.ca/wiki/Storage_and_file_management#Storage_types Main file systems on our National systems.]&lt;br /&gt;
&lt;br /&gt;
==== How do I transfer files/directories to/from or between cluster? ====&lt;br /&gt;
&lt;br /&gt;
=====Unix/Linux=====&lt;br /&gt;
To transfer files to and from a cluster on a UNIX machine, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt;. For example, if you want to upload file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; to cluster graham from your machine &amp;lt;tt&amp;gt;myhost&amp;lt;/tt&amp;gt;, use the following command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp foo.f graham.computecanada.ca:&lt;br /&gt;
&lt;br /&gt;
assuming that your machine has &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; installed. If you want to transfer a file from Windows or Mac, you need have &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt; for Windows or Mac installed.&lt;br /&gt;
&lt;br /&gt;
If you transfer file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; between Compute Canada clusters, say from your home directory on cedar to your home directory on graham, simply use the following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp foo.f graham:/home/username/&lt;br /&gt;
&lt;br /&gt;
If you are transferring files between a UNIX machine and a cluster, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; command with &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; option. For instance, if you want to download the subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; in the directory &amp;lt;tt&amp;gt;project&amp;lt;/tt&amp;gt; in your home directory on graham to your local UNIX machine, on your local machine, use command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp -rp graham.sharcnet.ca:project/foo .&lt;br /&gt;
&lt;br /&gt;
Similarly, you can transfer the subdirectory between Alliance clusters. The following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp -r graham:/home/username/scratch/foo .&lt;br /&gt;
&lt;br /&gt;
will download subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; from your scratch directory on graham to your home directory on cedar (note that the prompt indicates you are currently logged on to cedar).&lt;br /&gt;
&lt;br /&gt;
The use of &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; option above will preserve the time stamp of each file. For Windows and Mac, you need to check the documentation of &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; for features. &amp;#039;&amp;#039;&amp;#039;Do not use -p switch with scp or cp commands on clusters, when the destination is your project space&amp;#039;&amp;#039;&amp;#039;, or you might run into the infamous [https://docs.computecanada.ca/wiki/Frequently_Asked_Questions#Disk_quota_exceeded_error_on_.2Fproject_filesystems Disk quota exceeded issue].&lt;br /&gt;
&lt;br /&gt;
You may also &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; and compress the entire directory and then use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to save bandwidth. In the above example, first you login to graham, then do the following&lt;br /&gt;
&lt;br /&gt;
 [username@gra-login2:~]$ cd project&lt;br /&gt;
 [username@gra-login2:~]$ tar -cvf foo.tar foo&lt;br /&gt;
 [username@gra-login2:~]$ gzip foo.tar&lt;br /&gt;
&lt;br /&gt;
Then on your local machine myhost, use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to copy the tar file&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp graham.computecanada.ca:project/foo.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Note for most Linux distributions, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; has an option &amp;lt;tt&amp;gt;-z&amp;lt;/tt&amp;gt; that will compress the &amp;lt;tt&amp;gt;.tar&amp;lt;/tt&amp;gt; file using &amp;lt;tt&amp;gt;gzip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Windows=====&lt;br /&gt;
You may read the instructions on using an ssh client. [[https://helpwiki.sharcnet.ca/wiki/SSH#Transfering_files_.28Secure_File_Transfer_Client.29]]&lt;br /&gt;
&lt;br /&gt;
====How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect?====&lt;br /&gt;
&lt;br /&gt;
In general, most users should be fine using &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to transfer data to and from SHARCNET systems.  If you need to transfer a lot of files &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; is recommended to ensure that you do not need to restart the transfer from scratch should there be a connection failure.  Although you can use &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to any cluster&amp;#039;s login node(s), it is often best to use gra-dtn1.computecanada.ca - it is dedicated to data transfer. &lt;br /&gt;
&lt;br /&gt;
In general one should expect the following transfer rates with &amp;#039;&amp;#039;scp&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* If you are connecting to SHARCNET through a Research/Education network site (ORION, CANARIE, Internet2) and are on a fast local network (this is the case for most users connecting from academic institutions) then you should be able to attain sustained transfer speeds in excess of 10MB/s.  If your path is all gigabit or better, you should be able to reach rates above 50 MB/s.&lt;br /&gt;
* If you are transferring data over the wider internet, you will not be able to attain these speeds, as all traffic that does not enter/exit SHARCNET via the R&amp;amp;E net is restricted to a limited-bandwidth commercial feed. In this case one will typically see rates on the order of 1MB/s or less.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that filesystems and networks are  shared resources and suffer from contention; if they are busy the above rates may not be attainable&lt;br /&gt;
&lt;br /&gt;
For transferring large amounts of data (many gigabytes) the best approach is to use the online tool [https://docs.computecanada.ca/wiki/Transferring_data#Globus_transfer Globus].&lt;br /&gt;
&lt;br /&gt;
==== How do I access the same file from different subdirectories on the same cluster ? ====&lt;br /&gt;
&lt;br /&gt;
You should not need copy large files on the same cluster (e.g. from one user to another&lt;br /&gt;
or using the same file in different subdirectories).  Instead of using&lt;br /&gt;
scp you might consider issuing a &amp;quot;soft link&amp;quot; command. Assume that you need access&lt;br /&gt;
to the file large_file1 in subdirectory /home/user1/subdir1 and you need it to be in your&lt;br /&gt;
subdirectory /home/my_account/my_dir from where you will invoke it under the name&lt;br /&gt;
my_large_file1.  Then go to that directory and type:&lt;br /&gt;
&lt;br /&gt;
 ln -s /home/user1/subdir1/large_file1    my_large_file1&lt;br /&gt;
&lt;br /&gt;
Another example, assume that in subdirectory /home/my_account/PROJ1 you have several&lt;br /&gt;
subdirectories called CASE1, CASE2, ...  In each subdirectory CASEn you have a slightly&lt;br /&gt;
different code but all of them process the same data file called test_data. Rather than&lt;br /&gt;
copying the test_data file into each CASEn subdirectory, place test_data above i.e.&lt;br /&gt;
in /home/my_account/PROJ1 and then in each CASEn subdirectory issue following &amp;quot;soft link&amp;quot;&lt;br /&gt;
command:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../test_data  test_data&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;soft links&amp;quot; can be removed by using the rm command. For example, to remove the soft link from&lt;br /&gt;
/home/my_account/PROJ1/CASE2 type following command from this subdirectory:&lt;br /&gt;
&lt;br /&gt;
 rm -rf test_data&lt;br /&gt;
&lt;br /&gt;
Typing above command from subdirectory /home/my_account/PROJ1 would remove the actual file and then&lt;br /&gt;
none of the CASEn subdirectories would have access to it.&lt;br /&gt;
&lt;br /&gt;
==== How are files deleted from the /home/userid/scratch filesystems? ====&lt;br /&gt;
&lt;br /&gt;
All files on /home/userid/scratch that are over 2 months old (not old in the common sense, please see below) are automatically deleted. Data needed for long term storage and reference should be kept in either /project, /nearline, or other archival storage areas. The scratch filesystem is checked at the end of the month for files which will be candidates for expiry on the 15th of the following month. On the first day of the month, a login message is posted and a notification e-mail is sent to all users who have at least one file which is a candidate for purging and containing the location of a file which lists all the candidates for purging.  On the 12th of the month, a second scan is run to check for files that will still expire on the 15th, and again, users with candidates for expiry are sent a second warning email.  Lastly, on the 15th, all files which are due for expiry are removed.&lt;br /&gt;
&lt;br /&gt;
An unconventional aspect of this system is that it does not determine the age of a file based on the file&amp;#039;s attributes, e.g., the standard dates reported by the &amp;lt;i&amp;gt;stat&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;find&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;ls&amp;lt;/i&amp;gt;, etc. commands.  (This is known as the &amp;quot;mtime&amp;quot; of the file, for &amp;quot;modification time&amp;quot;, and is frequently inaccurate.) The age of a file is determined based on whether or not its data contents (i.e., the information stored in the file) have changed or been accessed, and this age is stored externally to the file.  Only files where the contents have changed or accessed will have their age counter &amp;quot;reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A list of your candidate files for expiry can be found in /home/scratch_to_delete/$USER  (where $USER is your userid).&lt;br /&gt;
&lt;br /&gt;
===== How do I check the age of a file =====&lt;br /&gt;
We define a file&amp;#039;s age as the most recent of:&lt;br /&gt;
&lt;br /&gt;
 *the access time (atime) and&lt;br /&gt;
 *the change time (ctime)&lt;br /&gt;
&lt;br /&gt;
You can find the ctime of a file using&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lc &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while the atime can be obtained with the command&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lu &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do not use the modify time (mtime) of the file because it can be modified by the user or by other programs to display incorrect information.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, simple use of the atime property would be sufficient, as it is updated by the system in sync with the ctime. However, userspace programs are able to alter atime, potentially to times in the past, which could result in early expiration of a file. The use of ctime as a fallback guards against this undesirable behaviour.&lt;br /&gt;
&lt;br /&gt;
It is also your responsibility to manage your stored data: most of the filesystems are not intended to provide an indefinite archiving service so when a given file or directory is no longer needed, you need to move it to a more appropriate filesystem which may well mean your personal workstation or some other storage system under your control. Moving significant amounts of data between your workstation and a Compute Canada system or between two Compute Canada systems should generally be done using Globus.&lt;br /&gt;
&lt;br /&gt;
==== How to archive my data? ====&lt;br /&gt;
&lt;br /&gt;
===== Use tar to archive files and directories =====&lt;br /&gt;
&lt;br /&gt;
The primary archiving utility on all Linux and Unix-like systems is the [https://www.gnu.org/software/tar/manual/tar.html tar] command. It will bundle a bunch of files or directories together and generate a single file, called an &amp;#039;&amp;#039;archive file&amp;#039;&amp;#039; or &amp;#039;&amp;#039;tar-file&amp;#039;&amp;#039;. By convention an archive file has &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; as the file name extension. When you archive a directory with &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, it will, by default, include all the files and sub-directories contained within it, and sub-sub-directories contained in those, and so on. So the command &amp;lt;code&amp;gt;tar --create --file project1.tar project1&amp;lt;/code&amp;gt; will pack all the content of directory &amp;#039;&amp;#039;project1&amp;#039;&amp;#039; into the file &amp;#039;&amp;#039;project1.tar&amp;#039;&amp;#039;. The original directory will remain unchanged, so this may double the amount of disk space occupied!&lt;br /&gt;
&lt;br /&gt;
You can extract files from an archive using the same command with a different option:&amp;lt;code&amp;gt;tar --extract --file project1.tar&amp;lt;/code&amp;gt;. If there is no directory with the original name, it will be created. If a directory of that name exists and contains files of the same names as in the archive file, they will be overwritten. Another option can be added to specify the destination directory where to extract the archive&amp;#039;s content.   &lt;br /&gt;
&lt;br /&gt;
===== Compress and uncompress tar files =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; archiving utility can compress an archive file at the same time it creates it. There are a number of compression methods to choose from. We recommend either &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;, which can be used as follows:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ tar --create --xz --file project1.tar.xz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --xz --file project1.tar.xz&lt;br /&gt;
 [user_name@localhost]$ tar --create --gzip --file project1.tar.gz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --gzip --file project1.tar.gz&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;code&amp;gt;--xz&amp;lt;/code&amp;gt; will produce a smaller compressed file (a &amp;quot;better compression ratio&amp;quot;) but takes longer and uses more RAM while working. &amp;lt;code&amp;gt;--gzip&amp;lt;/code&amp;gt; does not typically compress as small, but may be used if you encounter difficulties due to insufficient memory or excessive run time during &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt;. A third option, &amp;lt;code&amp;gt;--bzip2&amp;lt;/code&amp;gt;, is also available, that typically does not compress as small as &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; but takes longer than &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt; first without compression and then use the commands &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; in a separate step, although there is rarely a reason to do so. Similarly, you can run &amp;lt;code&amp;gt;xz -d&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip -d&amp;lt;/code&amp;gt; to decompress an archive file before running &amp;lt;code&amp;gt;tar --extract&amp;lt;/code&amp;gt;, but again there is rarely a reason to do so.&lt;br /&gt;
&lt;br /&gt;
The commands &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; can be used to compress any file, not just archive files:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ gzip bigfile&lt;br /&gt;
 [user_name@localhost]$ xz bigfile&lt;br /&gt;
&lt;br /&gt;
These commands will produce the files &amp;lt;code&amp;gt;bigfile.gz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigfile.xz&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
=====Archival Storage=====&lt;br /&gt;
&lt;br /&gt;
On Graham, files copied to ~/nearline will be subsequently moved to offline (tape-based) storage. See [https://docs.computecanada.ca/wiki/Using_nearline_storage this link] for more details.&lt;br /&gt;
&lt;br /&gt;
==== How can I check the hidden files in directory? ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;.&amp;quot; at the beginning of the name means that the file is &amp;quot;hidden&amp;quot;. You have to use the -a option with ls to see it. I.e. &amp;lt;code&amp;gt;ls -a &amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
If you want to display only the hidden files then type:&lt;br /&gt;
 ls -d .*&lt;br /&gt;
&lt;br /&gt;
Note: there is an alias which is loaded from /etc/bashrc (see your .bashrc file). The alias is defined by alias &amp;lt;code&amp;gt; l.=&amp;#039;ls -d .* --color=auto&amp;#039; &amp;lt;/code&amp;gt; and if you type:&lt;br /&gt;
 l.&lt;br /&gt;
you will also display only the hidden files.&lt;br /&gt;
&lt;br /&gt;
==== How can I count the number of files in a directory? ====&lt;br /&gt;
&lt;br /&gt;
One can use the following command to count the number of files in a directory (in this example, your /work directory):&lt;br /&gt;
&lt;br /&gt;
 find /home/$USER -type f   | wc -l&lt;br /&gt;
&lt;br /&gt;
It is always a good idea to [[Knowledge_Base#How_to_archive_my_data.3F|archive]] and/or compress files that are no longer needed on the filesystem (see [https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_to_organize_a_large_number_of_files.3F below]).  This helps minimize one&amp;#039;s footprint on the filesystem and as such the impact they have on other users of the shared resource.&lt;br /&gt;
&lt;br /&gt;
==== How to organize a large number of files? ====&lt;br /&gt;
&lt;br /&gt;
With parallel cluster filesystems, you will get best I/O performance writing data to a small number of large files. Since all metadata operations on each of our parallel filesystems are handled by a single file server, depending on how many files are being accessed the server can become overwhelmed leading to poor overall I/O performance for all users. If your workflow involves storing data in a large number of files, it is best to pack these files into a small number of larger archives, e.g. using tar command&lt;br /&gt;
&lt;br /&gt;
 tar cvf archiveFile.tar directoryToArchive&lt;br /&gt;
&lt;br /&gt;
For better performance with many files inside your archive, we recommend to use DAR (Disk ARchive utility), which is a disk analog of tar (Tape ARchive).  Dar can extract files from anywhere in the archive much faster than tar. The dar command is available by default on sharcnet systems. It can be used to pack files into a dar archive by doing something like: &lt;br /&gt;
&lt;br /&gt;
 dar -s 1G -w -c archiveFile -g directoryToArchive&lt;br /&gt;
&lt;br /&gt;
In this example we split the archive into 1GB chunks, and the archive files will be named archiveFile.1.dar, archiveFile.2.dar, and so on. To list the contents of the archive, you can type:&lt;br /&gt;
&lt;br /&gt;
 dar -l archiveFile&lt;br /&gt;
&lt;br /&gt;
To temporarily extract files for post-processing into current directory, you would type:&lt;br /&gt;
&lt;br /&gt;
 dar -R . -O -x archiveFile -v -g pathToYourFile/fileToExtract&lt;br /&gt;
&lt;br /&gt;
=== I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host ===&lt;br /&gt;
&lt;br /&gt;
The most likely cause of this behaviour is repeated failed login attempts.  Part of our security policies involves blocking the IP address of machines that attempt multiple logins with incorrect passwords over a short period of time---many brute-force attacks on systems do exactly this: looking for poor passwords, badly configured accounts, etc.  Unfortunately, it isn&amp;#039;t uncommon for a user to forget their password and make repeated login attempts with incorrect passwords and end up with that machine blacklisted and unable to connect at all.&lt;br /&gt;
&lt;br /&gt;
A temporary solution is simply to attempt to login from another machine.  If you have access to another machine at your site, you can shell to that machine first, and then shell to the SHARCNET system (as that machine&amp;#039;s IP shouldn&amp;#039;t be blacklisted).  In order to have your machine unblocked, you will have to email to [mailto:support@computecanada.ca support@computecanada.ca] as a system administrator must manually intervene in order to fix it.&lt;br /&gt;
&lt;br /&gt;
NOTE: there are other situations that can produce this message, however they are rarer and more transient.  If you are unable to log in from one machine, but can from another, it is most likely the IP blacklisting that is the problem and the above will provide a temporary work-around while your problem ticket is processed.&lt;br /&gt;
&lt;br /&gt;
=== I am unable to ssh/scp from SHARCNET to my local computer ===&lt;br /&gt;
&lt;br /&gt;
Most campus networks are behind some sort of firewall.  If you can ssh out to SHARCNET, but cannot establish a connection in the other direction, then you are probably behind a firewall and should speak with your local system administrator or campus IT department to determine if there are any exceptions or workarounds in place.&lt;br /&gt;
&lt;br /&gt;
=== SSH tells me SOMEONE IS DOING SOMETHING NASTY!? ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please first read the following:&lt;br /&gt;
&lt;br /&gt;
https://docs.computecanada.ca/wiki/SSH_security_improvements&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suppose you attempt to login to SHARCNET, but instead get an alarming message like this:&lt;br /&gt;
&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that the RSA host key has just been changed.&lt;br /&gt;
 The fingerprint for the RSA key sent by the remote host is&lt;br /&gt;
 fe:65:ab:89:9a:23:34:5a:50:1e:05:d6:bf:ec:da:67.&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending key in /home/user/.ssh/known_hosts:42&lt;br /&gt;
 RSA host key for requin has changed and you have requested strict checking.&lt;br /&gt;
 Host key verification failed. &lt;br /&gt;
&lt;br /&gt;
SSH begins a connection by verifying that the host you&amp;#039;re connecting to is authentic. It does this by caching the hosts&amp;#039;s &amp;quot;hostkey&amp;quot; in your  &amp;lt;tt&amp;gt;~/.ssh/known_hosts&amp;lt;/tt&amp;gt; file. At times, a hostkey may be changed legitimately; when this happens, you may see such a message. It&amp;#039;s a good idea to verify this with us, you may be able to check the fingerprint yourself by logging into another sharcnet system and running:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub &lt;br /&gt;
&lt;br /&gt;
If the fingerprint is OK, the normal way to fix the problem is to simply remove the old hostkey from your &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. On machines with commandline SSH, you can do this with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -R thehostname&lt;br /&gt;
&lt;br /&gt;
You can use your choice of editor if you&amp;#039;re comfortable doing so (it&amp;#039;s a plain text file, but has long lines). On a unix-compatible machine, you can also use the following very small script (Substitute the line(s) printed in the warning message illustrated above for &amp;#039;42&amp;#039; here.):&lt;br /&gt;
&lt;br /&gt;
 perl -pi -e &amp;#039;undef $_ if (++$line == 42)&amp;#039; ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
Another solution is brute-force: remove the whole &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. This throws away any authentication checking, and afterwards, your first connection to any machine will prompt you to accept a newly discovered host key.&lt;br /&gt;
&lt;br /&gt;
=== Ssh works, but scp doesn&amp;#039;t! ===&lt;br /&gt;
&lt;br /&gt;
If you can &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; to a cluster successfully, but cannot &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to to it, the problem is likely that your login scripts print unexpected messages which confuse &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; is based on the same &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, but assumes that the connection is &amp;quot;clean&amp;quot;: that is, that it does not produce any un-asked-for content. If you have something like:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; will be confused by the salutation. To avoid this, simply ensure that the message is only printed on an interactive login:&lt;br /&gt;
&lt;br /&gt;
 if [ -t 0 ]; then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
or in csh/tcsh syntax:&lt;br /&gt;
&lt;br /&gt;
 if ( -t 0 ) then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
=== How do I edit my program on a cluster? ===&lt;br /&gt;
&lt;br /&gt;
We provide a variety of editors, such as the traditional text-mode &amp;lt;tt&amp;gt;emacs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; (vim), as well as a simpler one called &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;. If you have X on your desktop (and tunneled through SSH), you can use the GUI versions (&amp;lt;tt&amp;gt;xemacs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If your desktop supports FUSE, it&amp;#039;s very convenient to simply mount your home tree like this:&lt;br /&gt;
 mkdir sharcnet&lt;br /&gt;
 sshfs graham.computecanada.ca: sharcnet&lt;br /&gt;
you can then use any local editor of your choice.&lt;br /&gt;
&lt;br /&gt;
If you run emacs on your desktop, you can also edit a remote file from within your local emacs client using [http://www.gnu.org/software/tramp Tramp], opening and saving a file as /username@cluster.computecanada.ca:path/file.&lt;br /&gt;
&lt;br /&gt;
== Research at SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== I have a research project I would like to collaborate on with SHARCNET, who should I talk to? ===&lt;br /&gt;
&lt;br /&gt;
You may contact [mailto:barb@sharcnet.ca SHARCNET head office] or contact members of the [https://www.sharcnet.ca/my/contact/directory#techteam SHARCNET technical staff].&lt;br /&gt;
&lt;br /&gt;
=== How can I contribute compute resources to SHARCNET so that other researchers can share it? ===&lt;br /&gt;
&lt;br /&gt;
Most people&amp;#039;s research is &amp;quot;bursty&amp;quot; - there are usually sparse periods of time when some computation is urgently needed, and other periods when there is less demand. One problem with this is that if you purchase the equipment you need to meet your &amp;quot;burst&amp;quot; needs, it&amp;#039;ll probably sit, underutilized, during other times.&lt;br /&gt;
&lt;br /&gt;
An alternative is to donate control of this equipment to SHARCNET, and let us arrange for other users to use it when you are not. We prefer to be involved in the selection and configuration of such equipment. Our promise to contributors is that as much as possible, they should obtain as much benefit from the cluster as if it were not shared. Owners get preferential access. Naturally, owners are also able to burst to higher peak usage, since their equipment has been pooled with other contributions. (Technically, SHARCNET cannot itself own such equipment — it remains owned by the institution in question, and will be returned to the contributor upon request.) If you think this model will also work for you and you would like to contribute your computational resource to help the research community at SHARCNET, you can contact us for such arrangement.&lt;br /&gt;
&lt;br /&gt;
=== I do not know much about computation, nor is it my research interest. But I am interested in getting my research done faster with the help of the high performance computing technology. In other words, I do not care about the process and mechanism, but only the final results. Can SHARCNET provide this type of help? ===&lt;br /&gt;
&lt;br /&gt;
We will be happy to bring the technology of high performance computing to you to accelerate your research, if at all possible. If you would like to discuss your plan with us, please feel free to contact our [https://www.sharcnet.ca/my/contact/directory#techteam high performance computing specialists]. They will be happy to listen to your needs and are ready to provide appropriate suggestions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET participates in the Compute Canada NRAC (National Resource Allocation Competition) and provides a continual competition for groups that require more than the default level of access to our resources.  Please see [[Dedicated Resources]] for further information.&lt;br /&gt;
&lt;br /&gt;
=== I heard SHARCNET offers fellowships, where can I get more information? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET no longer actively runs a fellowship program.  You may find information regarding past fellowships and other dedicated resource opportunities on the [https://www.sharcnet.ca/my/research/fellowships Research Fellowships page] of the web portal.&lt;br /&gt;
&lt;br /&gt;
=== I would like to do some research at SHARCNET as a visiting scholar, how should I apply? ===&lt;br /&gt;
&lt;br /&gt;
In general, you will need to find a hosting department or a person affiliated with one of the SHARCNET institutions. You may also [http://www.sharcnet.ca/my/contact contact us] directly for more specific information.&lt;br /&gt;
&lt;br /&gt;
=== I would like to send my students to SHARCNET to do some work for me. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
See above.&lt;br /&gt;
&lt;br /&gt;
== Contacting SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for research, academic exchanges, and technical issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for business development, education and other issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact a specific staff member at SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
See [https://www.sharcnet.ca/my/contact/directory staff directory] for contact information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Acknowledge SHARCNET in Publications ==&lt;br /&gt;
&lt;br /&gt;
=== How do I acknowledge SHARCNET in my publications? ===&lt;br /&gt;
&lt;br /&gt;
We recommend one cite the following:&lt;br /&gt;
&lt;br /&gt;
 This work was made possible by the facilities of the Shared Hierarchical &lt;br /&gt;
 Academic Research Computing Network (SHARCNET:www.sharcnet.ca) and Digital Research Alliance of Canada (https://alliancecan.ca/en).&lt;br /&gt;
&lt;br /&gt;
=== I&amp;#039;ve seen different spellings of the name, what is the standard spelling of SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
We suggest the spelling SHARCNET, all in upper case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What types of research programs / support are provided to the research community? ==&lt;br /&gt;
&lt;br /&gt;
Our overall intent is to provide support that can both respond to the range of needs that the user community presents and help to increase the sophistication of the community and enable new and larger-in-scope applications making use of SHARCNET&amp;#039;s HPC facilities. The range of support can perhaps best be understood in terms of a pyramid:&lt;br /&gt;
&lt;br /&gt;
=== Level 1 ===&lt;br /&gt;
&lt;br /&gt;
At the apex of the pyramid, SHARCNET supports a small number of projects with dedicated programmer support. The intent is to enable projects that will have a lasting impact and may lead to a &amp;quot;step change&amp;quot; in the way research is done at SHARCNET. Inter-disciplinary and inter-institutional projects are particularly welcomed. For the latest information about the program, including application guidelines, please see the  [https://www.sharcnet.ca/my/research/programming Programming Competition] page in our web portal.&lt;br /&gt;
&lt;br /&gt;
=== Level 2 ===&lt;br /&gt;
&lt;br /&gt;
The middle layers of support are provided through a number of initiatives.&lt;br /&gt;
&lt;br /&gt;
These include:&lt;br /&gt;
* Programming support of more modest duration (several days to one month engagement, usually part time)&lt;br /&gt;
* Training on a variety of topics through [https://www.sharcnet.ca/help/index.php/Training workshops, seminars and online training materials]&lt;br /&gt;
* Consultation. This may include user-initiated interactions on particular programs, algorithms, techniques, debugging, optimization etc., as well as unsolicited help to ensure effective use of SHARCNET systems&lt;br /&gt;
* Site Leaders play an important role in working with the community to help researchers connect with SHARCNET staff and to obtain appropriate help and support.&lt;br /&gt;
&lt;br /&gt;
=== Level 3 ===&lt;br /&gt;
&lt;br /&gt;
The base level of the pyramid handles the very large number of small requests that are essential to keeping the user community working effectively with the infrastructure on a day-to-day basis. Several of these can be answered by this FAQ; many of the issues are presented through the [https://www.sharcnet.ca/help/index.php/Knowledge_Base#Compute_Canada_Problem_Ticket_System ticketing system]. The support is largely problem oriented with each problem being time limited.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=941</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=941"/>
		<updated>2024-09-17T17:30:17Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* Logging in to Systems, Transferring and Editing Files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Sharcnet_logo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== About SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== What is SHARCNET? ===&lt;br /&gt;
SHARCNET stands for Shared Hierarchical Academic Research Computing Network. Established in 2000, SHARCNET is the largest high performance computing consortium in Canada, involving 19 universities and colleges across southern, central and northern Ontario.&lt;br /&gt;
&lt;br /&gt;
SHARCNET is a member consortium in the [https://alliancecan.ca/en Digital Research Alliance of Canada (Alliance)]  national HPC platform.&lt;br /&gt;
&lt;br /&gt;
=== Where is SHARCNET? ===&lt;br /&gt;
The [http://www.sharcnet.ca/my/contact main office] of SHARCNET is located in the Western Science Centre at [http://www.uwo.ca/ The University of Western Ontario].&lt;br /&gt;
&lt;br /&gt;
=== What does SHARCNET have? ===&lt;br /&gt;
The primary SHARCNET compute system is [https://docs.computecanada.ca/wiki/Graham Graham heterogeneous cluster] located at the University of Waterloo.  It is named after Wes Graham, the first director of the Computing Centre at Waterloo.  It consists of 41,548 cores and 520 GPU devices, spread across 1,185 nodes of different configurations.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with SHARCNET? ===&lt;br /&gt;
If you have a program that takes months to run on your PC, you could probably run it within a few hours using hundreds of processors on SHARCNET / Alliance, provided your program is inherently parallelisable. If you have hundreds or thousands of test cases to run through on your PC or computers in your lab, then with hundreds of processors running those cases independently will significantly reduce your test cycles.&lt;br /&gt;
&lt;br /&gt;
=== Who is running SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
The daily operation and development of SHARCNET computational facilities is managed by a group of highly qualified system administrators. In addition, we have a team of high performance technical computing consultants, who are responsible for technical support on libraries, programming and application analysis.&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET? ===&lt;br /&gt;
For technical inquiries, you may send E-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] or [mailto:help@sharcnet.ca help@sharcnet.ca], or [https://www.sharcnet.ca/my/contact/directory#techteam contact your local system administrator or HPC specialist]. For general inquiries, you may contact the SHARCNET [http://www.sharcnet.ca/my/contact main office].&lt;br /&gt;
&lt;br /&gt;
== Getting an Account with SHARCNET and Related Issues ==&lt;br /&gt;
&lt;br /&gt;
To use SHARCNET (and any other national facilities in Alliance) one has to [https://www.alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account apply for an Alliance account].&lt;br /&gt;
&lt;br /&gt;
== Getting Help ==&lt;br /&gt;
&lt;br /&gt;
=== I have encountered a problem while using an Alliance /SHARCNET system and need help, who should I talk to? ===&lt;br /&gt;
We encourage you to use the problem ticketing system (described in detail [[FAQ#Alliance_Problem_Ticket_System|below]]) .  This is the most efficient way of reporting a problem.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the [https://www.sharcnet.ca/my/contact/directory directory] page.&lt;br /&gt;
&lt;br /&gt;
=== How long should I expect to wait for support? ===&lt;br /&gt;
Unfortunately Alliance/SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week.  User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .  &lt;br /&gt;
&lt;br /&gt;
Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.  &lt;br /&gt;
&lt;br /&gt;
=== Alliance Problem Ticket System ===&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;problem ticket system&amp;quot;? ====&lt;br /&gt;
&lt;br /&gt;
This is a system that allows anyone with an Alliance account to start a persistent email thread that is referred to as a &amp;quot;problem ticket&amp;quot;.    When a user submits a new ticket it will be brought to the attention of an appropriate and available Alliance/SHARCNET staff member for resolution.  &lt;br /&gt;
&lt;br /&gt;
You interact with the ticket system entirely via email.&lt;br /&gt;
&lt;br /&gt;
==== What do I need to specify in a ticket ? ====&lt;br /&gt;
&lt;br /&gt;
To help us address your question faster, please try to do the following when submitting a ticket:&lt;br /&gt;
&lt;br /&gt;
#specify which of our systems is involved &lt;br /&gt;
#if the problem pertains to a job, then report the &amp;lt;u&amp;gt;jobid&amp;lt;/u&amp;gt; associated with the job; this is an integer that is returned by the scheduler when you submit the job&lt;br /&gt;
#report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem; if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem&lt;br /&gt;
#if you&amp;#039;d like for a particular staff member to be aware of the ticket, mention them&lt;br /&gt;
&lt;br /&gt;
==== How do I submit a ticket? ====&lt;br /&gt;
&lt;br /&gt;
In general, you can submit a new ticket by emailing  [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca]  with the email address associated with your Alliance account.  If you are using another email address, please provide your full name, your Alliance default username (if available) and your university or institution.&lt;br /&gt;
&lt;br /&gt;
If you like, you can also target your inquiry more specifically, by using the following addresses to submit your ticket:&lt;br /&gt;
&lt;br /&gt;
* [mailto:help@sharcnet.ca help@sharcnet.ca] - questions specific to SHARCNET, for example relating to contributed SHARCNET systems&lt;br /&gt;
* [mailto:globus@tech.alliancecan.ca globus@tech.alliancecan.ca] -- Questions about [[Globus]] file transfer services&lt;br /&gt;
* [mailto:cloud@tech.alliancecan.ca cloud@tech.alliancecan.ca] -- Questions about using Alliance cloud resources&lt;br /&gt;
* [mailto:accounts@tech.alliancecan.ca accounts@tech.alliancecan.ca] -- Questions about Alliance accounts&lt;br /&gt;
* [mailto:renewals@tech.alliancecan.ca renewals@tech.alliancecan.ca] -- Questions about Alliance account renewals&lt;br /&gt;
&lt;br /&gt;
=== I am new to parallel programming, can you help me get started with my project? ===&lt;br /&gt;
Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research. If your programming project would involve a significant staff time, you should consider applying for Dedicated Programming support. (We run the competition annually; see https://www.sharcnet.ca/my/research/programming).&lt;br /&gt;
&lt;br /&gt;
=== Can you install a package on a cluster for me? ===&lt;br /&gt;
Certainly.  We suggest you make the request by sending e-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] with the specific request.&lt;br /&gt;
&lt;br /&gt;
=== I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that? ===&lt;br /&gt;
If you tell us what you want, we may be able to help you out.&lt;br /&gt;
&lt;br /&gt;
=== Does SHARCNET provide any training on programming and using the systems? ===&lt;br /&gt;
&lt;br /&gt;
Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every summer (usually late May to early June), SHARCNET holds [https://www.sharcnet.ca/help/index.php/Summer_Schools an annual HPC Summer School] with a variety of in-depth, hands-on workshops. &lt;br /&gt;
&lt;br /&gt;
SHARCNET also offers a series of online seminars (so-called &amp;quot;General interest webinars&amp;quot;), typically delivered every second Wednesday at lunch time.  These are announced via the SHARCNET events mailing list and one can see the schedule at the [https://www.sharcnet.ca/my/news/calendar SHARCNET event calendar].  Past seminars are recorded and posted on [http://youtube.sharcnet.ca our youtube channel]. A full listing of the past webinars is available on the [https://helpwiki.sharcnet.ca/wiki/Online_Seminars Online Seminars] page.&lt;br /&gt;
&lt;br /&gt;
=== Attending SHARCNET Webinars ===&lt;br /&gt;
{{:Attending SHARCNET Webinars}}&lt;br /&gt;
&lt;br /&gt;
== Logging in to Systems, Transferring and Editing Files ==&lt;br /&gt;
&lt;br /&gt;
=== How do I login to SHARCNET? ===&lt;br /&gt;
You access the SHARCNET clusters using ssh.  For Graham and other national systems Alliance credentials are required.  For the remaining (&amp;quot;Legacy&amp;quot;) systems, you will require SHARCNET credentials (submit a ticket to help@sharcnet.ca if you have questions).&lt;br /&gt;
&lt;br /&gt;
====Unix/Linux/OS X====&lt;br /&gt;
To login to a system, you need to use an [http://www.openssh.com/ Secure Shell (SSH)] connection. If you are logging in from a UNIX-based machine, make sure it has an SSH client (ssh) installed (this is almost always the case on UNIX/Linux/OS X). If you have the same login name on both your local system and SHARCNET, and you want to login to, say, &amp;lt;tt&amp;gt;graham&amp;lt;/tt&amp;gt;, you may use the command:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If your Alliance username is different from the username on your local systems, then you may use either of the following forms:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca -l username&lt;br /&gt;
 ssh username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If you want to establish an X window connection so that you can use graphics applications such as &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ddt&amp;lt;/tt&amp;gt;, you can add a &amp;lt;tt&amp;gt;-Y&amp;lt;/tt&amp;gt; to the command:&lt;br /&gt;
&lt;br /&gt;
 ssh -Y username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
This will automatically set the X DISPLAY variable when you login.&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
If you are logging from a computer running Windows and need some pointers we recommend consulting our [[SSH]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between Login Nodes and Compute Nodes? ===&lt;br /&gt;
====Login Nodes====&lt;br /&gt;
&lt;br /&gt;
Most of our clusters have distinct &amp;#039;&amp;#039;login nodes&amp;#039;&amp;#039; associated with them that you are automatically redirected to when you login to the cluster (some systems are directly logged into, eg. SMPs and smaller specialty systems).  You can use these to do most of your work preparing for jobs (compiling, editing configuration files) and other low-intensity tasks like moving and copying files.  &lt;br /&gt;
&lt;br /&gt;
You can also use them for other quick tasks, like simple post-processing, but any significant work should be submitted as a job to the compute nodes.  On most login nodes, each process is limited to 1 cpu-hour; this will be noticable if you perform anything compute-intensive, and can affect IO-oriented activity as well (such as very large &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; operations.)&lt;br /&gt;
&lt;br /&gt;
=== How can I suspend and resume my session? ===&lt;br /&gt;
&lt;br /&gt;
The program screen can start persistent terminals from which you can detach and reattach.  The simplest use of screen is&lt;br /&gt;
&lt;br /&gt;
 screen -dR&lt;br /&gt;
&lt;br /&gt;
which will either reattach you to any existing session or create a new one if one doesn&amp;#039;t exist.  To terminate the current screen session, type &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;.  To detach manually (you are automatically detached if the connection is lost) press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;d&amp;#039;&amp;#039;, you can the resume later as above (ideal for running background jobs).  Note that &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; is screen&amp;#039;s escape sequence, so you have to do &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;a&amp;#039;&amp;#039; to get the regular effect of pressing &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; inside a screen session (e.g., moving the cursor to the start of the line in a shell).&lt;br /&gt;
&lt;br /&gt;
For a list of other &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; key sequences, press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;?&amp;#039;&amp;#039;.  For further details and  command line options, see the [http://www.gnu.org/software/screen/manual/screen.html screen manual] (or type &amp;lt;tt&amp;gt;man screen&amp;lt;/tt&amp;gt; on any of the clusters).&lt;br /&gt;
&lt;br /&gt;
Other notes:&lt;br /&gt;
* If you want to create additional &amp;quot;text windows&amp;quot;, use Ctrl-A Ctrl-C. Remember to type &amp;quot;exit&amp;quot; to close it. &lt;br /&gt;
* To switch to a &amp;quot;text window&amp;quot; with a certain number, use Ctrl-A # (where # is 0 to 9).&lt;br /&gt;
* To see a list of window numbers use Ctrl-A w&lt;br /&gt;
* To be presented a list of windows and select one to use, use Ctrl-A &amp;quot; (This is handy if you&amp;#039;ve made too many windows.)&lt;br /&gt;
* If the program running in a screen &amp;quot;text window&amp;quot; refuses to die (i.e., it needs to be killed) you can use Ctrl-A K&lt;br /&gt;
* For brief help on keystrokes use Ctrl-A ?&lt;br /&gt;
* For extensive help, run &amp;quot;man screen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What operating systems are supported? ===&lt;br /&gt;
UNIX in general. Currently, Linux is the only operating system used within SHARCNET.&lt;br /&gt;
&lt;br /&gt;
=== What makes a cluster different than my UNIX workstation? ===&lt;br /&gt;
&lt;br /&gt;
If you are familiar with UNIX, then using a cluster is not much different from using a workstation. When you login to a cluster, you in fact only log in to one of the cluster nodes. In most cases, each cluster node is a physical machine, usually a server class machine, with one or several CPUs, that is more or less the same as a workstation you are familiar with. The difference is that these nodes are interconnected with special interconnect devices and the way you run your program is slightly different. Across SHARCNET clusters, you are not expected to run your program interactively. You will have to run your program through a queueing system. That also means where and when your program gets to run is not decided by you, but by the queueing system.&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Those primary programming languages such as C, C++, Fortran, and Python are supported. Other languages, such as Java, Pascal and Ada, are also supported, but with limited technical support from us. &lt;br /&gt;
&lt;br /&gt;
=== How do I organize my files? ===&lt;br /&gt;
[https://docs.computecanada.ca/wiki/Storage_and_file_management#Storage_types Main file systems on our National systems.]&lt;br /&gt;
&lt;br /&gt;
==== How do I transfer files/directories to/from or between cluster? ====&lt;br /&gt;
&lt;br /&gt;
=====Unix/Linux=====&lt;br /&gt;
To transfer files to and from a cluster on a UNIX machine, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt;. For example, if you want to upload file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; to cluster graham from your machine &amp;lt;tt&amp;gt;myhost&amp;lt;/tt&amp;gt;, use the following command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp foo.f graham.computecanada.ca:&lt;br /&gt;
&lt;br /&gt;
assuming that your machine has &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; installed. If you want to transfer a file from Windows or Mac, you need have &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt; for Windows or Mac installed.&lt;br /&gt;
&lt;br /&gt;
If you transfer file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; between Compute Canada clusters, say from your home directory on cedar to your home directory on graham, simply use the following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp foo.f graham:/home/username/&lt;br /&gt;
&lt;br /&gt;
If you are transferring files between a UNIX machine and a cluster, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; command with &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; option. For instance, if you want to download the subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; in the directory &amp;lt;tt&amp;gt;project&amp;lt;/tt&amp;gt; in your home directory on graham to your local UNIX machine, on your local machine, use command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp -rp graham.sharcnet.ca:project/foo .&lt;br /&gt;
&lt;br /&gt;
Similarly, you can transfer the subdirectory between Compute Canada clusters. The following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp -r graham:/home/username/scratch/foo .&lt;br /&gt;
&lt;br /&gt;
will download subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; from your scratch directory on graham to your home directory on cedar (note that the prompt indicates you are currently logged on to cedar).&lt;br /&gt;
&lt;br /&gt;
The use of &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; option above will preserve the time stamp of each file. For Windows and Mac, you need to check the documentation of &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; for features. &amp;#039;&amp;#039;&amp;#039;Do not use -p switch with scp or cp commands on clusters, when the destination is your project space&amp;#039;&amp;#039;&amp;#039;, or you might run into the infamous [https://docs.computecanada.ca/wiki/Frequently_Asked_Questions#Disk_quota_exceeded_error_on_.2Fproject_filesystems Disk quota exceeded issue].&lt;br /&gt;
&lt;br /&gt;
You may also &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; and compress the entire directory and then use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to save bandwidth. In the above example, first you login to graham, then do the following&lt;br /&gt;
&lt;br /&gt;
 [username@gra-login2:~]$ cd project&lt;br /&gt;
 [username@gra-login2:~]$ tar -cvf foo.tar foo&lt;br /&gt;
 [username@gra-login2:~]$ gzip foo.tar&lt;br /&gt;
&lt;br /&gt;
Then on your local machine myhost, use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to copy the tar file&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp graham.computecanada.ca:project/foo.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Note for most Linux distributions, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; has an option &amp;lt;tt&amp;gt;-z&amp;lt;/tt&amp;gt; that will compress the &amp;lt;tt&amp;gt;.tar&amp;lt;/tt&amp;gt; file using &amp;lt;tt&amp;gt;gzip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Windows=====&lt;br /&gt;
You may read the instructions on using an ssh client. [[https://helpwiki.sharcnet.ca/wiki/SSH#Transfering_files_.28Secure_File_Transfer_Client.29]]&lt;br /&gt;
&lt;br /&gt;
====How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect?====&lt;br /&gt;
&lt;br /&gt;
In general, most users should be fine using &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to transfer data to and from SHARCNET systems.  If you need to transfer a lot of files &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; is recommended to ensure that you do not need to restart the transfer from scratch should there be a connection failure.  Although you can use &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to any cluster&amp;#039;s login node(s), it is often best to use gra-dtn1.computecanada.ca - it is dedicated to data transfer. &lt;br /&gt;
&lt;br /&gt;
In general one should expect the following transfer rates with &amp;#039;&amp;#039;scp&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* If you are connecting to SHARCNET through a Research/Education network site (ORION, CANARIE, Internet2) and are on a fast local network (this is the case for most users connecting from academic institutions) then you should be able to attain sustained transfer speeds in excess of 10MB/s.  If your path is all gigabit or better, you should be able to reach rates above 50 MB/s.&lt;br /&gt;
* If you are transferring data over the wider internet, you will not be able to attain these speeds, as all traffic that does not enter/exit SHARCNET via the R&amp;amp;E net is restricted to a limited-bandwidth commercial feed. In this case one will typically see rates on the order of 1MB/s or less.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that filesystems and networks are  shared resources and suffer from contention; if they are busy the above rates may not be attainable&lt;br /&gt;
&lt;br /&gt;
For transferring large amounts of data (many gigabytes) the best approach is to use the online tool [https://docs.computecanada.ca/wiki/Transferring_data#Globus_transfer Globus].&lt;br /&gt;
&lt;br /&gt;
==== How do I access the same file from different subdirectories on the same cluster ? ====&lt;br /&gt;
&lt;br /&gt;
You should not need copy large files on the same cluster (e.g. from one user to another&lt;br /&gt;
or using the same file in different subdirectories).  Instead of using&lt;br /&gt;
scp you might consider issuing a &amp;quot;soft link&amp;quot; command. Assume that you need access&lt;br /&gt;
to the file large_file1 in subdirectory /home/user1/subdir1 and you need it to be in your&lt;br /&gt;
subdirectory /home/my_account/my_dir from where you will invoke it under the name&lt;br /&gt;
my_large_file1.  Then go to that directory and type:&lt;br /&gt;
&lt;br /&gt;
 ln -s /home/user1/subdir1/large_file1    my_large_file1&lt;br /&gt;
&lt;br /&gt;
Another example, assume that in subdirectory /home/my_account/PROJ1 you have several&lt;br /&gt;
subdirectories called CASE1, CASE2, ...  In each subdirectory CASEn you have a slightly&lt;br /&gt;
different code but all of them process the same data file called test_data. Rather than&lt;br /&gt;
copying the test_data file into each CASEn subdirectory, place test_data above i.e.&lt;br /&gt;
in /home/my_account/PROJ1 and then in each CASEn subdirectory issue following &amp;quot;soft link&amp;quot;&lt;br /&gt;
command:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../test_data  test_data&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;soft links&amp;quot; can be removed by using the rm command. For example, to remove the soft link from&lt;br /&gt;
/home/my_account/PROJ1/CASE2 type following command from this subdirectory:&lt;br /&gt;
&lt;br /&gt;
 rm -rf test_data&lt;br /&gt;
&lt;br /&gt;
Typing above command from subdirectory /home/my_account/PROJ1 would remove the actual file and then&lt;br /&gt;
none of the CASEn subdirectories would have access to it.&lt;br /&gt;
&lt;br /&gt;
==== How are files deleted from the /home/userid/scratch filesystems? ====&lt;br /&gt;
&lt;br /&gt;
All files on /home/userid/scratch that are over 2 months old (not old in the common sense, please see below) are automatically deleted. Data needed for long term storage and reference should be kept in either /project, /nearline, or other archival storage areas. The scratch filesystem is checked at the end of the month for files which will be candidates for expiry on the 15th of the following month. On the first day of the month, a login message is posted and a notification e-mail is sent to all users who have at least one file which is a candidate for purging and containing the location of a file which lists all the candidates for purging.  On the 12th of the month, a second scan is run to check for files that will still expire on the 15th, and again, users with candidates for expiry are sent a second warning email.  Lastly, on the 15th, all files which are due for expiry are removed.&lt;br /&gt;
&lt;br /&gt;
An unconventional aspect of this system is that it does not determine the age of a file based on the file&amp;#039;s attributes, e.g., the standard dates reported by the &amp;lt;i&amp;gt;stat&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;find&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;ls&amp;lt;/i&amp;gt;, etc. commands.  (This is known as the &amp;quot;mtime&amp;quot; of the file, for &amp;quot;modification time&amp;quot;, and is frequently inaccurate.) The age of a file is determined based on whether or not its data contents (i.e., the information stored in the file) have changed or been accessed, and this age is stored externally to the file.  Only files where the contents have changed or accessed will have their age counter &amp;quot;reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A list of your candidate files for expiry can be found in /home/scratch_to_delete/$USER  (where $USER is your userid).&lt;br /&gt;
&lt;br /&gt;
===== How do I check the age of a file =====&lt;br /&gt;
We define a file&amp;#039;s age as the most recent of:&lt;br /&gt;
&lt;br /&gt;
 *the access time (atime) and&lt;br /&gt;
 *the change time (ctime)&lt;br /&gt;
&lt;br /&gt;
You can find the ctime of a file using&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lc &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while the atime can be obtained with the command&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lu &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do not use the modify time (mtime) of the file because it can be modified by the user or by other programs to display incorrect information.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, simple use of the atime property would be sufficient, as it is updated by the system in sync with the ctime. However, userspace programs are able to alter atime, potentially to times in the past, which could result in early expiration of a file. The use of ctime as a fallback guards against this undesirable behaviour.&lt;br /&gt;
&lt;br /&gt;
It is also your responsibility to manage your stored data: most of the filesystems are not intended to provide an indefinite archiving service so when a given file or directory is no longer needed, you need to move it to a more appropriate filesystem which may well mean your personal workstation or some other storage system under your control. Moving significant amounts of data between your workstation and a Compute Canada system or between two Compute Canada systems should generally be done using Globus.&lt;br /&gt;
&lt;br /&gt;
==== How to archive my data? ====&lt;br /&gt;
&lt;br /&gt;
===== Use tar to archive files and directories =====&lt;br /&gt;
&lt;br /&gt;
The primary archiving utility on all Linux and Unix-like systems is the [https://www.gnu.org/software/tar/manual/tar.html tar] command. It will bundle a bunch of files or directories together and generate a single file, called an &amp;#039;&amp;#039;archive file&amp;#039;&amp;#039; or &amp;#039;&amp;#039;tar-file&amp;#039;&amp;#039;. By convention an archive file has &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; as the file name extension. When you archive a directory with &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, it will, by default, include all the files and sub-directories contained within it, and sub-sub-directories contained in those, and so on. So the command &amp;lt;code&amp;gt;tar --create --file project1.tar project1&amp;lt;/code&amp;gt; will pack all the content of directory &amp;#039;&amp;#039;project1&amp;#039;&amp;#039; into the file &amp;#039;&amp;#039;project1.tar&amp;#039;&amp;#039;. The original directory will remain unchanged, so this may double the amount of disk space occupied!&lt;br /&gt;
&lt;br /&gt;
You can extract files from an archive using the same command with a different option:&amp;lt;code&amp;gt;tar --extract --file project1.tar&amp;lt;/code&amp;gt;. If there is no directory with the original name, it will be created. If a directory of that name exists and contains files of the same names as in the archive file, they will be overwritten. Another option can be added to specify the destination directory where to extract the archive&amp;#039;s content.   &lt;br /&gt;
&lt;br /&gt;
===== Compress and uncompress tar files =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; archiving utility can compress an archive file at the same time it creates it. There are a number of compression methods to choose from. We recommend either &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;, which can be used as follows:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ tar --create --xz --file project1.tar.xz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --xz --file project1.tar.xz&lt;br /&gt;
 [user_name@localhost]$ tar --create --gzip --file project1.tar.gz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --gzip --file project1.tar.gz&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;code&amp;gt;--xz&amp;lt;/code&amp;gt; will produce a smaller compressed file (a &amp;quot;better compression ratio&amp;quot;) but takes longer and uses more RAM while working. &amp;lt;code&amp;gt;--gzip&amp;lt;/code&amp;gt; does not typically compress as small, but may be used if you encounter difficulties due to insufficient memory or excessive run time during &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt;. A third option, &amp;lt;code&amp;gt;--bzip2&amp;lt;/code&amp;gt;, is also available, that typically does not compress as small as &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; but takes longer than &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt; first without compression and then use the commands &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; in a separate step, although there is rarely a reason to do so. Similarly, you can run &amp;lt;code&amp;gt;xz -d&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip -d&amp;lt;/code&amp;gt; to decompress an archive file before running &amp;lt;code&amp;gt;tar --extract&amp;lt;/code&amp;gt;, but again there is rarely a reason to do so.&lt;br /&gt;
&lt;br /&gt;
The commands &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; can be used to compress any file, not just archive files:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ gzip bigfile&lt;br /&gt;
 [user_name@localhost]$ xz bigfile&lt;br /&gt;
&lt;br /&gt;
These commands will produce the files &amp;lt;code&amp;gt;bigfile.gz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigfile.xz&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
=====Archival Storage=====&lt;br /&gt;
&lt;br /&gt;
On Graham, files copied to ~/nearline will be subsequently moved to offline (tape-based) storage. See [https://docs.computecanada.ca/wiki/Using_nearline_storage this link] for more details.&lt;br /&gt;
&lt;br /&gt;
==== How can I check the hidden files in directory? ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;.&amp;quot; at the beginning of the name means that the file is &amp;quot;hidden&amp;quot;. You have to use the -a option with ls to see it. I.e. &amp;lt;code&amp;gt;ls -a &amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
If you want to display only the hidden files then type:&lt;br /&gt;
 ls -d .*&lt;br /&gt;
&lt;br /&gt;
Note: there is an alias which is loaded from /etc/bashrc (see your .bashrc file). The alias is defined by alias &amp;lt;code&amp;gt; l.=&amp;#039;ls -d .* --color=auto&amp;#039; &amp;lt;/code&amp;gt; and if you type:&lt;br /&gt;
 l.&lt;br /&gt;
you will also display only the hidden files.&lt;br /&gt;
&lt;br /&gt;
==== How can I count the number of files in a directory? ====&lt;br /&gt;
&lt;br /&gt;
One can use the following command to count the number of files in a directory (in this example, your /work directory):&lt;br /&gt;
&lt;br /&gt;
 find /home/$USER -type f   | wc -l&lt;br /&gt;
&lt;br /&gt;
It is always a good idea to [[Knowledge_Base#How_to_archive_my_data.3F|archive]] and/or compress files that are no longer needed on the filesystem (see [https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_to_organize_a_large_number_of_files.3F below]).  This helps minimize one&amp;#039;s footprint on the filesystem and as such the impact they have on other users of the shared resource.&lt;br /&gt;
&lt;br /&gt;
==== How to organize a large number of files? ====&lt;br /&gt;
&lt;br /&gt;
With parallel cluster filesystems, you will get best I/O performance writing data to a small number of large files. Since all metadata operations on each of our parallel filesystems are handled by a single file server, depending on how many files are being accessed the server can become overwhelmed leading to poor overall I/O performance for all users. If your workflow involves storing data in a large number of files, it is best to pack these files into a small number of larger archives, e.g. using tar command&lt;br /&gt;
&lt;br /&gt;
 tar cvf archiveFile.tar directoryToArchive&lt;br /&gt;
&lt;br /&gt;
For better performance with many files inside your archive, we recommend to use DAR (Disk ARchive utility), which is a disk analog of tar (Tape ARchive).  Dar can extract files from anywhere in the archive much faster than tar. The dar command is available by default on sharcnet systems. It can be used to pack files into a dar archive by doing something like: &lt;br /&gt;
&lt;br /&gt;
 dar -s 1G -w -c archiveFile -g directoryToArchive&lt;br /&gt;
&lt;br /&gt;
In this example we split the archive into 1GB chunks, and the archive files will be named archiveFile.1.dar, archiveFile.2.dar, and so on. To list the contents of the archive, you can type:&lt;br /&gt;
&lt;br /&gt;
 dar -l archiveFile&lt;br /&gt;
&lt;br /&gt;
To temporarily extract files for post-processing into current directory, you would type:&lt;br /&gt;
&lt;br /&gt;
 dar -R . -O -x archiveFile -v -g pathToYourFile/fileToExtract&lt;br /&gt;
&lt;br /&gt;
=== I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host ===&lt;br /&gt;
&lt;br /&gt;
The most likely cause of this behaviour is repeated failed login attempts.  Part of our security policies involves blocking the IP address of machines that attempt multiple logins with incorrect passwords over a short period of time---many brute-force attacks on systems do exactly this: looking for poor passwords, badly configured accounts, etc.  Unfortunately, it isn&amp;#039;t uncommon for a user to forget their password and make repeated login attempts with incorrect passwords and end up with that machine blacklisted and unable to connect at all.&lt;br /&gt;
&lt;br /&gt;
A temporary solution is simply to attempt to login from another machine.  If you have access to another machine at your site, you can shell to that machine first, and then shell to the SHARCNET system (as that machine&amp;#039;s IP shouldn&amp;#039;t be blacklisted).  In order to have your machine unblocked, you will have to email to [mailto:support@computecanada.ca support@computecanada.ca] as a system administrator must manually intervene in order to fix it.&lt;br /&gt;
&lt;br /&gt;
NOTE: there are other situations that can produce this message, however they are rarer and more transient.  If you are unable to log in from one machine, but can from another, it is most likely the IP blacklisting that is the problem and the above will provide a temporary work-around while your problem ticket is processed.&lt;br /&gt;
&lt;br /&gt;
=== I am unable to ssh/scp from SHARCNET to my local computer ===&lt;br /&gt;
&lt;br /&gt;
Most campus networks are behind some sort of firewall.  If you can ssh out to SHARCNET, but cannot establish a connection in the other direction, then you are probably behind a firewall and should speak with your local system administrator or campus IT department to determine if there are any exceptions or workarounds in place.&lt;br /&gt;
&lt;br /&gt;
=== SSH tells me SOMEONE IS DOING SOMETHING NASTY!? ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please first read the following:&lt;br /&gt;
&lt;br /&gt;
https://docs.computecanada.ca/wiki/SSH_security_improvements&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suppose you attempt to login to SHARCNET, but instead get an alarming message like this:&lt;br /&gt;
&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that the RSA host key has just been changed.&lt;br /&gt;
 The fingerprint for the RSA key sent by the remote host is&lt;br /&gt;
 fe:65:ab:89:9a:23:34:5a:50:1e:05:d6:bf:ec:da:67.&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending key in /home/user/.ssh/known_hosts:42&lt;br /&gt;
 RSA host key for requin has changed and you have requested strict checking.&lt;br /&gt;
 Host key verification failed. &lt;br /&gt;
&lt;br /&gt;
SSH begins a connection by verifying that the host you&amp;#039;re connecting to is authentic. It does this by caching the hosts&amp;#039;s &amp;quot;hostkey&amp;quot; in your  &amp;lt;tt&amp;gt;~/.ssh/known_hosts&amp;lt;/tt&amp;gt; file. At times, a hostkey may be changed legitimately; when this happens, you may see such a message. It&amp;#039;s a good idea to verify this with us, you may be able to check the fingerprint yourself by logging into another sharcnet system and running:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub &lt;br /&gt;
&lt;br /&gt;
If the fingerprint is OK, the normal way to fix the problem is to simply remove the old hostkey from your &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. On machines with commandline SSH, you can do this with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -R thehostname&lt;br /&gt;
&lt;br /&gt;
You can use your choice of editor if you&amp;#039;re comfortable doing so (it&amp;#039;s a plain text file, but has long lines). On a unix-compatible machine, you can also use the following very small script (Substitute the line(s) printed in the warning message illustrated above for &amp;#039;42&amp;#039; here.):&lt;br /&gt;
&lt;br /&gt;
 perl -pi -e &amp;#039;undef $_ if (++$line == 42)&amp;#039; ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
Another solution is brute-force: remove the whole &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. This throws away any authentication checking, and afterwards, your first connection to any machine will prompt you to accept a newly discovered host key.&lt;br /&gt;
&lt;br /&gt;
=== Ssh works, but scp doesn&amp;#039;t! ===&lt;br /&gt;
&lt;br /&gt;
If you can &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; to a cluster successfully, but cannot &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to to it, the problem is likely that your login scripts print unexpected messages which confuse &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; is based on the same &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, but assumes that the connection is &amp;quot;clean&amp;quot;: that is, that it does not produce any un-asked-for content. If you have something like:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; will be confused by the salutation. To avoid this, simply ensure that the message is only printed on an interactive login:&lt;br /&gt;
&lt;br /&gt;
 if [ -t 0 ]; then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
or in csh/tcsh syntax:&lt;br /&gt;
&lt;br /&gt;
 if ( -t 0 ) then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
=== How do I edit my program on a cluster? ===&lt;br /&gt;
&lt;br /&gt;
We provide a variety of editors, such as the traditional text-mode &amp;lt;tt&amp;gt;emacs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; (vim), as well as a simpler one called &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;. If you have X on your desktop (and tunneled through SSH), you can use the GUI versions (&amp;lt;tt&amp;gt;xemacs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If your desktop supports FUSE, it&amp;#039;s very convenient to simply mount your home tree like this:&lt;br /&gt;
 mkdir sharcnet&lt;br /&gt;
 sshfs graham.computecanada.ca: sharcnet&lt;br /&gt;
you can then use any local editor of your choice.&lt;br /&gt;
&lt;br /&gt;
If you run emacs on your desktop, you can also edit a remote file from within your local emacs client using [http://www.gnu.org/software/tramp Tramp], opening and saving a file as /username@cluster.computecanada.ca:path/file.&lt;br /&gt;
&lt;br /&gt;
== Research at SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== I have a research project I would like to collaborate on with SHARCNET, who should I talk to? ===&lt;br /&gt;
&lt;br /&gt;
You may contact [mailto:barb@sharcnet.ca SHARCNET head office] or contact members of the [https://www.sharcnet.ca/my/contact/directory#techteam SHARCNET technical staff].&lt;br /&gt;
&lt;br /&gt;
=== How can I contribute compute resources to SHARCNET so that other researchers can share it? ===&lt;br /&gt;
&lt;br /&gt;
Most people&amp;#039;s research is &amp;quot;bursty&amp;quot; - there are usually sparse periods of time when some computation is urgently needed, and other periods when there is less demand. One problem with this is that if you purchase the equipment you need to meet your &amp;quot;burst&amp;quot; needs, it&amp;#039;ll probably sit, underutilized, during other times.&lt;br /&gt;
&lt;br /&gt;
An alternative is to donate control of this equipment to SHARCNET, and let us arrange for other users to use it when you are not. We prefer to be involved in the selection and configuration of such equipment. Our promise to contributors is that as much as possible, they should obtain as much benefit from the cluster as if it were not shared. Owners get preferential access. Naturally, owners are also able to burst to higher peak usage, since their equipment has been pooled with other contributions. (Technically, SHARCNET cannot itself own such equipment — it remains owned by the institution in question, and will be returned to the contributor upon request.) If you think this model will also work for you and you would like to contribute your computational resource to help the research community at SHARCNET, you can contact us for such arrangement.&lt;br /&gt;
&lt;br /&gt;
=== I do not know much about computation, nor is it my research interest. But I am interested in getting my research done faster with the help of the high performance computing technology. In other words, I do not care about the process and mechanism, but only the final results. Can SHARCNET provide this type of help? ===&lt;br /&gt;
&lt;br /&gt;
We will be happy to bring the technology of high performance computing to you to accelerate your research, if at all possible. If you would like to discuss your plan with us, please feel free to contact our [https://www.sharcnet.ca/my/contact/directory#techteam high performance computing specialists]. They will be happy to listen to your needs and are ready to provide appropriate suggestions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET participates in the Compute Canada NRAC (National Resource Allocation Competition) and provides a continual competition for groups that require more than the default level of access to our resources.  Please see [[Dedicated Resources]] for further information.&lt;br /&gt;
&lt;br /&gt;
=== I heard SHARCNET offers fellowships, where can I get more information? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET no longer actively runs a fellowship program.  You may find information regarding past fellowships and other dedicated resource opportunities on the [https://www.sharcnet.ca/my/research/fellowships Research Fellowships page] of the web portal.&lt;br /&gt;
&lt;br /&gt;
=== I would like to do some research at SHARCNET as a visiting scholar, how should I apply? ===&lt;br /&gt;
&lt;br /&gt;
In general, you will need to find a hosting department or a person affiliated with one of the SHARCNET institutions. You may also [http://www.sharcnet.ca/my/contact contact us] directly for more specific information.&lt;br /&gt;
&lt;br /&gt;
=== I would like to send my students to SHARCNET to do some work for me. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
See above.&lt;br /&gt;
&lt;br /&gt;
== Contacting SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for research, academic exchanges, and technical issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for business development, education and other issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact a specific staff member at SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
See [https://www.sharcnet.ca/my/contact/directory staff directory] for contact information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Acknowledge SHARCNET in Publications ==&lt;br /&gt;
&lt;br /&gt;
=== How do I acknowledge SHARCNET in my publications? ===&lt;br /&gt;
&lt;br /&gt;
We recommend one cite the following:&lt;br /&gt;
&lt;br /&gt;
 This work was made possible by the facilities of the Shared Hierarchical &lt;br /&gt;
 Academic Research Computing Network (SHARCNET:www.sharcnet.ca) and Digital Research Alliance of Canada (https://alliancecan.ca/en).&lt;br /&gt;
&lt;br /&gt;
=== I&amp;#039;ve seen different spellings of the name, what is the standard spelling of SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
We suggest the spelling SHARCNET, all in upper case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What types of research programs / support are provided to the research community? ==&lt;br /&gt;
&lt;br /&gt;
Our overall intent is to provide support that can both respond to the range of needs that the user community presents and help to increase the sophistication of the community and enable new and larger-in-scope applications making use of SHARCNET&amp;#039;s HPC facilities. The range of support can perhaps best be understood in terms of a pyramid:&lt;br /&gt;
&lt;br /&gt;
=== Level 1 ===&lt;br /&gt;
&lt;br /&gt;
At the apex of the pyramid, SHARCNET supports a small number of projects with dedicated programmer support. The intent is to enable projects that will have a lasting impact and may lead to a &amp;quot;step change&amp;quot; in the way research is done at SHARCNET. Inter-disciplinary and inter-institutional projects are particularly welcomed. For the latest information about the program, including application guidelines, please see the  [https://www.sharcnet.ca/my/research/programming Programming Competition] page in our web portal.&lt;br /&gt;
&lt;br /&gt;
=== Level 2 ===&lt;br /&gt;
&lt;br /&gt;
The middle layers of support are provided through a number of initiatives.&lt;br /&gt;
&lt;br /&gt;
These include:&lt;br /&gt;
* Programming support of more modest duration (several days to one month engagement, usually part time)&lt;br /&gt;
* Training on a variety of topics through [https://www.sharcnet.ca/help/index.php/Training workshops, seminars and online training materials]&lt;br /&gt;
* Consultation. This may include user-initiated interactions on particular programs, algorithms, techniques, debugging, optimization etc., as well as unsolicited help to ensure effective use of SHARCNET systems&lt;br /&gt;
* Site Leaders play an important role in working with the community to help researchers connect with SHARCNET staff and to obtain appropriate help and support.&lt;br /&gt;
&lt;br /&gt;
=== Level 3 ===&lt;br /&gt;
&lt;br /&gt;
The base level of the pyramid handles the very large number of small requests that are essential to keeping the user community working effectively with the infrastructure on a day-to-day basis. Several of these can be answered by this FAQ; many of the issues are presented through the [https://www.sharcnet.ca/help/index.php/Knowledge_Base#Compute_Canada_Problem_Ticket_System ticketing system]. The support is largely problem oriented with each problem being time limited.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=940</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=940"/>
		<updated>2024-09-17T17:29:26Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* How do I login to SHARCNET? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Sharcnet_logo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== About SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== What is SHARCNET? ===&lt;br /&gt;
SHARCNET stands for Shared Hierarchical Academic Research Computing Network. Established in 2000, SHARCNET is the largest high performance computing consortium in Canada, involving 19 universities and colleges across southern, central and northern Ontario.&lt;br /&gt;
&lt;br /&gt;
SHARCNET is a member consortium in the [https://alliancecan.ca/en Digital Research Alliance of Canada (Alliance)]  national HPC platform.&lt;br /&gt;
&lt;br /&gt;
=== Where is SHARCNET? ===&lt;br /&gt;
The [http://www.sharcnet.ca/my/contact main office] of SHARCNET is located in the Western Science Centre at [http://www.uwo.ca/ The University of Western Ontario].&lt;br /&gt;
&lt;br /&gt;
=== What does SHARCNET have? ===&lt;br /&gt;
The primary SHARCNET compute system is [https://docs.computecanada.ca/wiki/Graham Graham heterogeneous cluster] located at the University of Waterloo.  It is named after Wes Graham, the first director of the Computing Centre at Waterloo.  It consists of 41,548 cores and 520 GPU devices, spread across 1,185 nodes of different configurations.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with SHARCNET? ===&lt;br /&gt;
If you have a program that takes months to run on your PC, you could probably run it within a few hours using hundreds of processors on SHARCNET / Alliance, provided your program is inherently parallelisable. If you have hundreds or thousands of test cases to run through on your PC or computers in your lab, then with hundreds of processors running those cases independently will significantly reduce your test cycles.&lt;br /&gt;
&lt;br /&gt;
=== Who is running SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
The daily operation and development of SHARCNET computational facilities is managed by a group of highly qualified system administrators. In addition, we have a team of high performance technical computing consultants, who are responsible for technical support on libraries, programming and application analysis.&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET? ===&lt;br /&gt;
For technical inquiries, you may send E-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] or [mailto:help@sharcnet.ca help@sharcnet.ca], or [https://www.sharcnet.ca/my/contact/directory#techteam contact your local system administrator or HPC specialist]. For general inquiries, you may contact the SHARCNET [http://www.sharcnet.ca/my/contact main office].&lt;br /&gt;
&lt;br /&gt;
== Getting an Account with SHARCNET and Related Issues ==&lt;br /&gt;
&lt;br /&gt;
To use SHARCNET (and any other national facilities in Alliance) one has to [https://www.alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account apply for an Alliance account].&lt;br /&gt;
&lt;br /&gt;
== Getting Help ==&lt;br /&gt;
&lt;br /&gt;
=== I have encountered a problem while using an Alliance /SHARCNET system and need help, who should I talk to? ===&lt;br /&gt;
We encourage you to use the problem ticketing system (described in detail [[FAQ#Alliance_Problem_Ticket_System|below]]) .  This is the most efficient way of reporting a problem.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the [https://www.sharcnet.ca/my/contact/directory directory] page.&lt;br /&gt;
&lt;br /&gt;
=== How long should I expect to wait for support? ===&lt;br /&gt;
Unfortunately Alliance/SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week.  User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .  &lt;br /&gt;
&lt;br /&gt;
Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.  &lt;br /&gt;
&lt;br /&gt;
=== Alliance Problem Ticket System ===&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;problem ticket system&amp;quot;? ====&lt;br /&gt;
&lt;br /&gt;
This is a system that allows anyone with an Alliance account to start a persistent email thread that is referred to as a &amp;quot;problem ticket&amp;quot;.    When a user submits a new ticket it will be brought to the attention of an appropriate and available Alliance/SHARCNET staff member for resolution.  &lt;br /&gt;
&lt;br /&gt;
You interact with the ticket system entirely via email.&lt;br /&gt;
&lt;br /&gt;
==== What do I need to specify in a ticket ? ====&lt;br /&gt;
&lt;br /&gt;
To help us address your question faster, please try to do the following when submitting a ticket:&lt;br /&gt;
&lt;br /&gt;
#specify which of our systems is involved &lt;br /&gt;
#if the problem pertains to a job, then report the &amp;lt;u&amp;gt;jobid&amp;lt;/u&amp;gt; associated with the job; this is an integer that is returned by the scheduler when you submit the job&lt;br /&gt;
#report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem; if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem&lt;br /&gt;
#if you&amp;#039;d like for a particular staff member to be aware of the ticket, mention them&lt;br /&gt;
&lt;br /&gt;
==== How do I submit a ticket? ====&lt;br /&gt;
&lt;br /&gt;
In general, you can submit a new ticket by emailing  [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca]  with the email address associated with your Alliance account.  If you are using another email address, please provide your full name, your Alliance default username (if available) and your university or institution.&lt;br /&gt;
&lt;br /&gt;
If you like, you can also target your inquiry more specifically, by using the following addresses to submit your ticket:&lt;br /&gt;
&lt;br /&gt;
* [mailto:help@sharcnet.ca help@sharcnet.ca] - questions specific to SHARCNET, for example relating to contributed SHARCNET systems&lt;br /&gt;
* [mailto:globus@tech.alliancecan.ca globus@tech.alliancecan.ca] -- Questions about [[Globus]] file transfer services&lt;br /&gt;
* [mailto:cloud@tech.alliancecan.ca cloud@tech.alliancecan.ca] -- Questions about using Alliance cloud resources&lt;br /&gt;
* [mailto:accounts@tech.alliancecan.ca accounts@tech.alliancecan.ca] -- Questions about Alliance accounts&lt;br /&gt;
* [mailto:renewals@tech.alliancecan.ca renewals@tech.alliancecan.ca] -- Questions about Alliance account renewals&lt;br /&gt;
&lt;br /&gt;
=== I am new to parallel programming, can you help me get started with my project? ===&lt;br /&gt;
Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research. If your programming project would involve a significant staff time, you should consider applying for Dedicated Programming support. (We run the competition annually; see https://www.sharcnet.ca/my/research/programming).&lt;br /&gt;
&lt;br /&gt;
=== Can you install a package on a cluster for me? ===&lt;br /&gt;
Certainly.  We suggest you make the request by sending e-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] with the specific request.&lt;br /&gt;
&lt;br /&gt;
=== I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that? ===&lt;br /&gt;
If you tell us what you want, we may be able to help you out.&lt;br /&gt;
&lt;br /&gt;
=== Does SHARCNET provide any training on programming and using the systems? ===&lt;br /&gt;
&lt;br /&gt;
Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every summer (usually late May to early June), SHARCNET holds [https://www.sharcnet.ca/help/index.php/Summer_Schools an annual HPC Summer School] with a variety of in-depth, hands-on workshops. &lt;br /&gt;
&lt;br /&gt;
SHARCNET also offers a series of online seminars (so-called &amp;quot;General interest webinars&amp;quot;), typically delivered every second Wednesday at lunch time.  These are announced via the SHARCNET events mailing list and one can see the schedule at the [https://www.sharcnet.ca/my/news/calendar SHARCNET event calendar].  Past seminars are recorded and posted on [http://youtube.sharcnet.ca our youtube channel]. A full listing of the past webinars is available on the [https://helpwiki.sharcnet.ca/wiki/Online_Seminars Online Seminars] page.&lt;br /&gt;
&lt;br /&gt;
=== Attending SHARCNET Webinars ===&lt;br /&gt;
{{:Attending SHARCNET Webinars}}&lt;br /&gt;
&lt;br /&gt;
== Logging in to Systems, Transferring and Editing Files ==&lt;br /&gt;
&lt;br /&gt;
=== How do I login to SHARCNET? ===&lt;br /&gt;
You access the SHARCNET clusters using ssh.  For Graham and other national systems Alliance credentials are required.  For the remaining (&amp;quot;Legacy&amp;quot;) systems, you will require SHARCNET credentials (submit a ticket to help@sharcnet.ca if you have questions).&lt;br /&gt;
&lt;br /&gt;
====Unix/Linux/OS X====&lt;br /&gt;
To login to a system, you need to use an [http://www.openssh.com/ Secure Shell (SSH)] connection. If you are logging in from a UNIX-based machine, make sure it has an SSH client (ssh) installed (this is almost always the case on UNIX/Linux/OS X). If you have the same login name on both your local system and SHARCNET, and you want to login to, say, &amp;lt;tt&amp;gt;graham&amp;lt;/tt&amp;gt;, you may use the command:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If your Compute Canada username is different from the username on your local systems, then you may use either of the following forms:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.alliancecan.ca -l username&lt;br /&gt;
 ssh username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
If you want to establish an X window connection so that you can use graphics applications such as &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ddt&amp;lt;/tt&amp;gt;, you can add a &amp;lt;tt&amp;gt;-Y&amp;lt;/tt&amp;gt; to the command:&lt;br /&gt;
&lt;br /&gt;
 ssh -Y username@graham.alliancecan.ca&lt;br /&gt;
&lt;br /&gt;
This will automatically set the X DISPLAY variable when you login.&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
If you are logging from a computer running Windows and need some pointers we recommend consulting our [[SSH]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between Login Nodes and Compute Nodes? ===&lt;br /&gt;
====Login Nodes====&lt;br /&gt;
&lt;br /&gt;
Most of our clusters have distinct &amp;#039;&amp;#039;login nodes&amp;#039;&amp;#039; associated with them that you are automatically redirected to when you login to the cluster (some systems are directly logged into, eg. SMPs and smaller specialty systems).  You can use these to do most of your work preparing for jobs (compiling, editing configuration files) and other low-intensity tasks like moving and copying files.  &lt;br /&gt;
&lt;br /&gt;
You can also use them for other quick tasks, like simple post-processing, but any significant work should be submitted as a job to the compute nodes.  On most login nodes, each process is limited to 1 cpu-hour; this will be noticable if you perform anything compute-intensive, and can affect IO-oriented activity as well (such as very large &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; operations.)&lt;br /&gt;
&lt;br /&gt;
=== How can I suspend and resume my session? ===&lt;br /&gt;
&lt;br /&gt;
The program screen can start persistent terminals from which you can detach and reattach.  The simplest use of screen is&lt;br /&gt;
&lt;br /&gt;
 screen -dR&lt;br /&gt;
&lt;br /&gt;
which will either reattach you to any existing session or create a new one if one doesn&amp;#039;t exist.  To terminate the current screen session, type &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;.  To detach manually (you are automatically detached if the connection is lost) press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;d&amp;#039;&amp;#039;, you can the resume later as above (ideal for running background jobs).  Note that &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; is screen&amp;#039;s escape sequence, so you have to do &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;a&amp;#039;&amp;#039; to get the regular effect of pressing &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; inside a screen session (e.g., moving the cursor to the start of the line in a shell).&lt;br /&gt;
&lt;br /&gt;
For a list of other &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; key sequences, press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;?&amp;#039;&amp;#039;.  For further details and  command line options, see the [http://www.gnu.org/software/screen/manual/screen.html screen manual] (or type &amp;lt;tt&amp;gt;man screen&amp;lt;/tt&amp;gt; on any of the clusters).&lt;br /&gt;
&lt;br /&gt;
Other notes:&lt;br /&gt;
* If you want to create additional &amp;quot;text windows&amp;quot;, use Ctrl-A Ctrl-C. Remember to type &amp;quot;exit&amp;quot; to close it. &lt;br /&gt;
* To switch to a &amp;quot;text window&amp;quot; with a certain number, use Ctrl-A # (where # is 0 to 9).&lt;br /&gt;
* To see a list of window numbers use Ctrl-A w&lt;br /&gt;
* To be presented a list of windows and select one to use, use Ctrl-A &amp;quot; (This is handy if you&amp;#039;ve made too many windows.)&lt;br /&gt;
* If the program running in a screen &amp;quot;text window&amp;quot; refuses to die (i.e., it needs to be killed) you can use Ctrl-A K&lt;br /&gt;
* For brief help on keystrokes use Ctrl-A ?&lt;br /&gt;
* For extensive help, run &amp;quot;man screen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What operating systems are supported? ===&lt;br /&gt;
UNIX in general. Currently, Linux is the only operating system used within SHARCNET.&lt;br /&gt;
&lt;br /&gt;
=== What makes a cluster different than my UNIX workstation? ===&lt;br /&gt;
&lt;br /&gt;
If you are familiar with UNIX, then using a cluster is not much different from using a workstation. When you login to a cluster, you in fact only log in to one of the cluster nodes. In most cases, each cluster node is a physical machine, usually a server class machine, with one or several CPUs, that is more or less the same as a workstation you are familiar with. The difference is that these nodes are interconnected with special interconnect devices and the way you run your program is slightly different. Across SHARCNET clusters, you are not expected to run your program interactively. You will have to run your program through a queueing system. That also means where and when your program gets to run is not decided by you, but by the queueing system.&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Those primary programming languages such as C, C++, Fortran, and Python are supported. Other languages, such as Java, Pascal and Ada, are also supported, but with limited technical support from us. &lt;br /&gt;
&lt;br /&gt;
=== How do I organize my files? ===&lt;br /&gt;
[https://docs.computecanada.ca/wiki/Storage_and_file_management#Storage_types Main file systems on our National systems.]&lt;br /&gt;
&lt;br /&gt;
==== How do I transfer files/directories to/from or between cluster? ====&lt;br /&gt;
&lt;br /&gt;
=====Unix/Linux=====&lt;br /&gt;
To transfer files to and from a cluster on a UNIX machine, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt;. For example, if you want to upload file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; to cluster graham from your machine &amp;lt;tt&amp;gt;myhost&amp;lt;/tt&amp;gt;, use the following command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp foo.f graham.computecanada.ca:&lt;br /&gt;
&lt;br /&gt;
assuming that your machine has &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; installed. If you want to transfer a file from Windows or Mac, you need have &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt; for Windows or Mac installed.&lt;br /&gt;
&lt;br /&gt;
If you transfer file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; between Compute Canada clusters, say from your home directory on cedar to your home directory on graham, simply use the following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp foo.f graham:/home/username/&lt;br /&gt;
&lt;br /&gt;
If you are transferring files between a UNIX machine and a cluster, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; command with &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; option. For instance, if you want to download the subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; in the directory &amp;lt;tt&amp;gt;project&amp;lt;/tt&amp;gt; in your home directory on graham to your local UNIX machine, on your local machine, use command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp -rp graham.sharcnet.ca:project/foo .&lt;br /&gt;
&lt;br /&gt;
Similarly, you can transfer the subdirectory between Compute Canada clusters. The following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp -r graham:/home/username/scratch/foo .&lt;br /&gt;
&lt;br /&gt;
will download subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; from your scratch directory on graham to your home directory on cedar (note that the prompt indicates you are currently logged on to cedar).&lt;br /&gt;
&lt;br /&gt;
The use of &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; option above will preserve the time stamp of each file. For Windows and Mac, you need to check the documentation of &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; for features. &amp;#039;&amp;#039;&amp;#039;Do not use -p switch with scp or cp commands on clusters, when the destination is your project space&amp;#039;&amp;#039;&amp;#039;, or you might run into the infamous [https://docs.computecanada.ca/wiki/Frequently_Asked_Questions#Disk_quota_exceeded_error_on_.2Fproject_filesystems Disk quota exceeded issue].&lt;br /&gt;
&lt;br /&gt;
You may also &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; and compress the entire directory and then use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to save bandwidth. In the above example, first you login to graham, then do the following&lt;br /&gt;
&lt;br /&gt;
 [username@gra-login2:~]$ cd project&lt;br /&gt;
 [username@gra-login2:~]$ tar -cvf foo.tar foo&lt;br /&gt;
 [username@gra-login2:~]$ gzip foo.tar&lt;br /&gt;
&lt;br /&gt;
Then on your local machine myhost, use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to copy the tar file&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp graham.computecanada.ca:project/foo.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Note for most Linux distributions, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; has an option &amp;lt;tt&amp;gt;-z&amp;lt;/tt&amp;gt; that will compress the &amp;lt;tt&amp;gt;.tar&amp;lt;/tt&amp;gt; file using &amp;lt;tt&amp;gt;gzip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Windows=====&lt;br /&gt;
You may read the instructions on using an ssh client. [[https://helpwiki.sharcnet.ca/wiki/SSH#Transfering_files_.28Secure_File_Transfer_Client.29]]&lt;br /&gt;
&lt;br /&gt;
====How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect?====&lt;br /&gt;
&lt;br /&gt;
In general, most users should be fine using &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to transfer data to and from SHARCNET systems.  If you need to transfer a lot of files &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; is recommended to ensure that you do not need to restart the transfer from scratch should there be a connection failure.  Although you can use &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to any cluster&amp;#039;s login node(s), it is often best to use gra-dtn1.computecanada.ca - it is dedicated to data transfer. &lt;br /&gt;
&lt;br /&gt;
In general one should expect the following transfer rates with &amp;#039;&amp;#039;scp&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* If you are connecting to SHARCNET through a Research/Education network site (ORION, CANARIE, Internet2) and are on a fast local network (this is the case for most users connecting from academic institutions) then you should be able to attain sustained transfer speeds in excess of 10MB/s.  If your path is all gigabit or better, you should be able to reach rates above 50 MB/s.&lt;br /&gt;
* If you are transferring data over the wider internet, you will not be able to attain these speeds, as all traffic that does not enter/exit SHARCNET via the R&amp;amp;E net is restricted to a limited-bandwidth commercial feed. In this case one will typically see rates on the order of 1MB/s or less.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that filesystems and networks are  shared resources and suffer from contention; if they are busy the above rates may not be attainable&lt;br /&gt;
&lt;br /&gt;
For transferring large amounts of data (many gigabytes) the best approach is to use the online tool [https://docs.computecanada.ca/wiki/Transferring_data#Globus_transfer Globus].&lt;br /&gt;
&lt;br /&gt;
==== How do I access the same file from different subdirectories on the same cluster ? ====&lt;br /&gt;
&lt;br /&gt;
You should not need copy large files on the same cluster (e.g. from one user to another&lt;br /&gt;
or using the same file in different subdirectories).  Instead of using&lt;br /&gt;
scp you might consider issuing a &amp;quot;soft link&amp;quot; command. Assume that you need access&lt;br /&gt;
to the file large_file1 in subdirectory /home/user1/subdir1 and you need it to be in your&lt;br /&gt;
subdirectory /home/my_account/my_dir from where you will invoke it under the name&lt;br /&gt;
my_large_file1.  Then go to that directory and type:&lt;br /&gt;
&lt;br /&gt;
 ln -s /home/user1/subdir1/large_file1    my_large_file1&lt;br /&gt;
&lt;br /&gt;
Another example, assume that in subdirectory /home/my_account/PROJ1 you have several&lt;br /&gt;
subdirectories called CASE1, CASE2, ...  In each subdirectory CASEn you have a slightly&lt;br /&gt;
different code but all of them process the same data file called test_data. Rather than&lt;br /&gt;
copying the test_data file into each CASEn subdirectory, place test_data above i.e.&lt;br /&gt;
in /home/my_account/PROJ1 and then in each CASEn subdirectory issue following &amp;quot;soft link&amp;quot;&lt;br /&gt;
command:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../test_data  test_data&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;soft links&amp;quot; can be removed by using the rm command. For example, to remove the soft link from&lt;br /&gt;
/home/my_account/PROJ1/CASE2 type following command from this subdirectory:&lt;br /&gt;
&lt;br /&gt;
 rm -rf test_data&lt;br /&gt;
&lt;br /&gt;
Typing above command from subdirectory /home/my_account/PROJ1 would remove the actual file and then&lt;br /&gt;
none of the CASEn subdirectories would have access to it.&lt;br /&gt;
&lt;br /&gt;
==== How are files deleted from the /home/userid/scratch filesystems? ====&lt;br /&gt;
&lt;br /&gt;
All files on /home/userid/scratch that are over 2 months old (not old in the common sense, please see below) are automatically deleted. Data needed for long term storage and reference should be kept in either /project, /nearline, or other archival storage areas. The scratch filesystem is checked at the end of the month for files which will be candidates for expiry on the 15th of the following month. On the first day of the month, a login message is posted and a notification e-mail is sent to all users who have at least one file which is a candidate for purging and containing the location of a file which lists all the candidates for purging.  On the 12th of the month, a second scan is run to check for files that will still expire on the 15th, and again, users with candidates for expiry are sent a second warning email.  Lastly, on the 15th, all files which are due for expiry are removed.&lt;br /&gt;
&lt;br /&gt;
An unconventional aspect of this system is that it does not determine the age of a file based on the file&amp;#039;s attributes, e.g., the standard dates reported by the &amp;lt;i&amp;gt;stat&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;find&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;ls&amp;lt;/i&amp;gt;, etc. commands.  (This is known as the &amp;quot;mtime&amp;quot; of the file, for &amp;quot;modification time&amp;quot;, and is frequently inaccurate.) The age of a file is determined based on whether or not its data contents (i.e., the information stored in the file) have changed or been accessed, and this age is stored externally to the file.  Only files where the contents have changed or accessed will have their age counter &amp;quot;reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A list of your candidate files for expiry can be found in /home/scratch_to_delete/$USER  (where $USER is your userid).&lt;br /&gt;
&lt;br /&gt;
===== How do I check the age of a file =====&lt;br /&gt;
We define a file&amp;#039;s age as the most recent of:&lt;br /&gt;
&lt;br /&gt;
 *the access time (atime) and&lt;br /&gt;
 *the change time (ctime)&lt;br /&gt;
&lt;br /&gt;
You can find the ctime of a file using&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lc &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while the atime can be obtained with the command&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lu &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do not use the modify time (mtime) of the file because it can be modified by the user or by other programs to display incorrect information.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, simple use of the atime property would be sufficient, as it is updated by the system in sync with the ctime. However, userspace programs are able to alter atime, potentially to times in the past, which could result in early expiration of a file. The use of ctime as a fallback guards against this undesirable behaviour.&lt;br /&gt;
&lt;br /&gt;
It is also your responsibility to manage your stored data: most of the filesystems are not intended to provide an indefinite archiving service so when a given file or directory is no longer needed, you need to move it to a more appropriate filesystem which may well mean your personal workstation or some other storage system under your control. Moving significant amounts of data between your workstation and a Compute Canada system or between two Compute Canada systems should generally be done using Globus.&lt;br /&gt;
&lt;br /&gt;
==== How to archive my data? ====&lt;br /&gt;
&lt;br /&gt;
===== Use tar to archive files and directories =====&lt;br /&gt;
&lt;br /&gt;
The primary archiving utility on all Linux and Unix-like systems is the [https://www.gnu.org/software/tar/manual/tar.html tar] command. It will bundle a bunch of files or directories together and generate a single file, called an &amp;#039;&amp;#039;archive file&amp;#039;&amp;#039; or &amp;#039;&amp;#039;tar-file&amp;#039;&amp;#039;. By convention an archive file has &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; as the file name extension. When you archive a directory with &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, it will, by default, include all the files and sub-directories contained within it, and sub-sub-directories contained in those, and so on. So the command &amp;lt;code&amp;gt;tar --create --file project1.tar project1&amp;lt;/code&amp;gt; will pack all the content of directory &amp;#039;&amp;#039;project1&amp;#039;&amp;#039; into the file &amp;#039;&amp;#039;project1.tar&amp;#039;&amp;#039;. The original directory will remain unchanged, so this may double the amount of disk space occupied!&lt;br /&gt;
&lt;br /&gt;
You can extract files from an archive using the same command with a different option:&amp;lt;code&amp;gt;tar --extract --file project1.tar&amp;lt;/code&amp;gt;. If there is no directory with the original name, it will be created. If a directory of that name exists and contains files of the same names as in the archive file, they will be overwritten. Another option can be added to specify the destination directory where to extract the archive&amp;#039;s content.   &lt;br /&gt;
&lt;br /&gt;
===== Compress and uncompress tar files =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; archiving utility can compress an archive file at the same time it creates it. There are a number of compression methods to choose from. We recommend either &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;, which can be used as follows:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ tar --create --xz --file project1.tar.xz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --xz --file project1.tar.xz&lt;br /&gt;
 [user_name@localhost]$ tar --create --gzip --file project1.tar.gz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --gzip --file project1.tar.gz&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;code&amp;gt;--xz&amp;lt;/code&amp;gt; will produce a smaller compressed file (a &amp;quot;better compression ratio&amp;quot;) but takes longer and uses more RAM while working. &amp;lt;code&amp;gt;--gzip&amp;lt;/code&amp;gt; does not typically compress as small, but may be used if you encounter difficulties due to insufficient memory or excessive run time during &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt;. A third option, &amp;lt;code&amp;gt;--bzip2&amp;lt;/code&amp;gt;, is also available, that typically does not compress as small as &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; but takes longer than &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt; first without compression and then use the commands &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; in a separate step, although there is rarely a reason to do so. Similarly, you can run &amp;lt;code&amp;gt;xz -d&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip -d&amp;lt;/code&amp;gt; to decompress an archive file before running &amp;lt;code&amp;gt;tar --extract&amp;lt;/code&amp;gt;, but again there is rarely a reason to do so.&lt;br /&gt;
&lt;br /&gt;
The commands &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; can be used to compress any file, not just archive files:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ gzip bigfile&lt;br /&gt;
 [user_name@localhost]$ xz bigfile&lt;br /&gt;
&lt;br /&gt;
These commands will produce the files &amp;lt;code&amp;gt;bigfile.gz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigfile.xz&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
=====Archival Storage=====&lt;br /&gt;
&lt;br /&gt;
On Graham, files copied to ~/nearline will be subsequently moved to offline (tape-based) storage. See [https://docs.computecanada.ca/wiki/Using_nearline_storage this link] for more details.&lt;br /&gt;
&lt;br /&gt;
==== How can I check the hidden files in directory? ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;.&amp;quot; at the beginning of the name means that the file is &amp;quot;hidden&amp;quot;. You have to use the -a option with ls to see it. I.e. &amp;lt;code&amp;gt;ls -a &amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
If you want to display only the hidden files then type:&lt;br /&gt;
 ls -d .*&lt;br /&gt;
&lt;br /&gt;
Note: there is an alias which is loaded from /etc/bashrc (see your .bashrc file). The alias is defined by alias &amp;lt;code&amp;gt; l.=&amp;#039;ls -d .* --color=auto&amp;#039; &amp;lt;/code&amp;gt; and if you type:&lt;br /&gt;
 l.&lt;br /&gt;
you will also display only the hidden files.&lt;br /&gt;
&lt;br /&gt;
==== How can I count the number of files in a directory? ====&lt;br /&gt;
&lt;br /&gt;
One can use the following command to count the number of files in a directory (in this example, your /work directory):&lt;br /&gt;
&lt;br /&gt;
 find /home/$USER -type f   | wc -l&lt;br /&gt;
&lt;br /&gt;
It is always a good idea to [[Knowledge_Base#How_to_archive_my_data.3F|archive]] and/or compress files that are no longer needed on the filesystem (see [https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_to_organize_a_large_number_of_files.3F below]).  This helps minimize one&amp;#039;s footprint on the filesystem and as such the impact they have on other users of the shared resource.&lt;br /&gt;
&lt;br /&gt;
==== How to organize a large number of files? ====&lt;br /&gt;
&lt;br /&gt;
With parallel cluster filesystems, you will get best I/O performance writing data to a small number of large files. Since all metadata operations on each of our parallel filesystems are handled by a single file server, depending on how many files are being accessed the server can become overwhelmed leading to poor overall I/O performance for all users. If your workflow involves storing data in a large number of files, it is best to pack these files into a small number of larger archives, e.g. using tar command&lt;br /&gt;
&lt;br /&gt;
 tar cvf archiveFile.tar directoryToArchive&lt;br /&gt;
&lt;br /&gt;
For better performance with many files inside your archive, we recommend to use DAR (Disk ARchive utility), which is a disk analog of tar (Tape ARchive).  Dar can extract files from anywhere in the archive much faster than tar. The dar command is available by default on sharcnet systems. It can be used to pack files into a dar archive by doing something like: &lt;br /&gt;
&lt;br /&gt;
 dar -s 1G -w -c archiveFile -g directoryToArchive&lt;br /&gt;
&lt;br /&gt;
In this example we split the archive into 1GB chunks, and the archive files will be named archiveFile.1.dar, archiveFile.2.dar, and so on. To list the contents of the archive, you can type:&lt;br /&gt;
&lt;br /&gt;
 dar -l archiveFile&lt;br /&gt;
&lt;br /&gt;
To temporarily extract files for post-processing into current directory, you would type:&lt;br /&gt;
&lt;br /&gt;
 dar -R . -O -x archiveFile -v -g pathToYourFile/fileToExtract&lt;br /&gt;
&lt;br /&gt;
=== I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host ===&lt;br /&gt;
&lt;br /&gt;
The most likely cause of this behaviour is repeated failed login attempts.  Part of our security policies involves blocking the IP address of machines that attempt multiple logins with incorrect passwords over a short period of time---many brute-force attacks on systems do exactly this: looking for poor passwords, badly configured accounts, etc.  Unfortunately, it isn&amp;#039;t uncommon for a user to forget their password and make repeated login attempts with incorrect passwords and end up with that machine blacklisted and unable to connect at all.&lt;br /&gt;
&lt;br /&gt;
A temporary solution is simply to attempt to login from another machine.  If you have access to another machine at your site, you can shell to that machine first, and then shell to the SHARCNET system (as that machine&amp;#039;s IP shouldn&amp;#039;t be blacklisted).  In order to have your machine unblocked, you will have to email to [mailto:support@computecanada.ca support@computecanada.ca] as a system administrator must manually intervene in order to fix it.&lt;br /&gt;
&lt;br /&gt;
NOTE: there are other situations that can produce this message, however they are rarer and more transient.  If you are unable to log in from one machine, but can from another, it is most likely the IP blacklisting that is the problem and the above will provide a temporary work-around while your problem ticket is processed.&lt;br /&gt;
&lt;br /&gt;
=== I am unable to ssh/scp from SHARCNET to my local computer ===&lt;br /&gt;
&lt;br /&gt;
Most campus networks are behind some sort of firewall.  If you can ssh out to SHARCNET, but cannot establish a connection in the other direction, then you are probably behind a firewall and should speak with your local system administrator or campus IT department to determine if there are any exceptions or workarounds in place.&lt;br /&gt;
&lt;br /&gt;
=== SSH tells me SOMEONE IS DOING SOMETHING NASTY!? ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please first read the following:&lt;br /&gt;
&lt;br /&gt;
https://docs.computecanada.ca/wiki/SSH_security_improvements&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suppose you attempt to login to SHARCNET, but instead get an alarming message like this:&lt;br /&gt;
&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that the RSA host key has just been changed.&lt;br /&gt;
 The fingerprint for the RSA key sent by the remote host is&lt;br /&gt;
 fe:65:ab:89:9a:23:34:5a:50:1e:05:d6:bf:ec:da:67.&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending key in /home/user/.ssh/known_hosts:42&lt;br /&gt;
 RSA host key for requin has changed and you have requested strict checking.&lt;br /&gt;
 Host key verification failed. &lt;br /&gt;
&lt;br /&gt;
SSH begins a connection by verifying that the host you&amp;#039;re connecting to is authentic. It does this by caching the hosts&amp;#039;s &amp;quot;hostkey&amp;quot; in your  &amp;lt;tt&amp;gt;~/.ssh/known_hosts&amp;lt;/tt&amp;gt; file. At times, a hostkey may be changed legitimately; when this happens, you may see such a message. It&amp;#039;s a good idea to verify this with us, you may be able to check the fingerprint yourself by logging into another sharcnet system and running:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub &lt;br /&gt;
&lt;br /&gt;
If the fingerprint is OK, the normal way to fix the problem is to simply remove the old hostkey from your &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. On machines with commandline SSH, you can do this with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -R thehostname&lt;br /&gt;
&lt;br /&gt;
You can use your choice of editor if you&amp;#039;re comfortable doing so (it&amp;#039;s a plain text file, but has long lines). On a unix-compatible machine, you can also use the following very small script (Substitute the line(s) printed in the warning message illustrated above for &amp;#039;42&amp;#039; here.):&lt;br /&gt;
&lt;br /&gt;
 perl -pi -e &amp;#039;undef $_ if (++$line == 42)&amp;#039; ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
Another solution is brute-force: remove the whole &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. This throws away any authentication checking, and afterwards, your first connection to any machine will prompt you to accept a newly discovered host key.&lt;br /&gt;
&lt;br /&gt;
=== Ssh works, but scp doesn&amp;#039;t! ===&lt;br /&gt;
&lt;br /&gt;
If you can &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; to a cluster successfully, but cannot &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to to it, the problem is likely that your login scripts print unexpected messages which confuse &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; is based on the same &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, but assumes that the connection is &amp;quot;clean&amp;quot;: that is, that it does not produce any un-asked-for content. If you have something like:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; will be confused by the salutation. To avoid this, simply ensure that the message is only printed on an interactive login:&lt;br /&gt;
&lt;br /&gt;
 if [ -t 0 ]; then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
or in csh/tcsh syntax:&lt;br /&gt;
&lt;br /&gt;
 if ( -t 0 ) then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
=== How do I edit my program on a cluster? ===&lt;br /&gt;
&lt;br /&gt;
We provide a variety of editors, such as the traditional text-mode &amp;lt;tt&amp;gt;emacs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; (vim), as well as a simpler one called &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;. If you have X on your desktop (and tunneled through SSH), you can use the GUI versions (&amp;lt;tt&amp;gt;xemacs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If your desktop supports FUSE, it&amp;#039;s very convenient to simply mount your home tree like this:&lt;br /&gt;
 mkdir sharcnet&lt;br /&gt;
 sshfs graham.computecanada.ca: sharcnet&lt;br /&gt;
you can then use any local editor of your choice.&lt;br /&gt;
&lt;br /&gt;
If you run emacs on your desktop, you can also edit a remote file from within your local emacs client using [http://www.gnu.org/software/tramp Tramp], opening and saving a file as /username@cluster.computecanada.ca:path/file.&lt;br /&gt;
&lt;br /&gt;
== Research at SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== I have a research project I would like to collaborate on with SHARCNET, who should I talk to? ===&lt;br /&gt;
&lt;br /&gt;
You may contact [mailto:barb@sharcnet.ca SHARCNET head office] or contact members of the [https://www.sharcnet.ca/my/contact/directory#techteam SHARCNET technical staff].&lt;br /&gt;
&lt;br /&gt;
=== How can I contribute compute resources to SHARCNET so that other researchers can share it? ===&lt;br /&gt;
&lt;br /&gt;
Most people&amp;#039;s research is &amp;quot;bursty&amp;quot; - there are usually sparse periods of time when some computation is urgently needed, and other periods when there is less demand. One problem with this is that if you purchase the equipment you need to meet your &amp;quot;burst&amp;quot; needs, it&amp;#039;ll probably sit, underutilized, during other times.&lt;br /&gt;
&lt;br /&gt;
An alternative is to donate control of this equipment to SHARCNET, and let us arrange for other users to use it when you are not. We prefer to be involved in the selection and configuration of such equipment. Our promise to contributors is that as much as possible, they should obtain as much benefit from the cluster as if it were not shared. Owners get preferential access. Naturally, owners are also able to burst to higher peak usage, since their equipment has been pooled with other contributions. (Technically, SHARCNET cannot itself own such equipment — it remains owned by the institution in question, and will be returned to the contributor upon request.) If you think this model will also work for you and you would like to contribute your computational resource to help the research community at SHARCNET, you can contact us for such arrangement.&lt;br /&gt;
&lt;br /&gt;
=== I do not know much about computation, nor is it my research interest. But I am interested in getting my research done faster with the help of the high performance computing technology. In other words, I do not care about the process and mechanism, but only the final results. Can SHARCNET provide this type of help? ===&lt;br /&gt;
&lt;br /&gt;
We will be happy to bring the technology of high performance computing to you to accelerate your research, if at all possible. If you would like to discuss your plan with us, please feel free to contact our [https://www.sharcnet.ca/my/contact/directory#techteam high performance computing specialists]. They will be happy to listen to your needs and are ready to provide appropriate suggestions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET participates in the Compute Canada NRAC (National Resource Allocation Competition) and provides a continual competition for groups that require more than the default level of access to our resources.  Please see [[Dedicated Resources]] for further information.&lt;br /&gt;
&lt;br /&gt;
=== I heard SHARCNET offers fellowships, where can I get more information? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET no longer actively runs a fellowship program.  You may find information regarding past fellowships and other dedicated resource opportunities on the [https://www.sharcnet.ca/my/research/fellowships Research Fellowships page] of the web portal.&lt;br /&gt;
&lt;br /&gt;
=== I would like to do some research at SHARCNET as a visiting scholar, how should I apply? ===&lt;br /&gt;
&lt;br /&gt;
In general, you will need to find a hosting department or a person affiliated with one of the SHARCNET institutions. You may also [http://www.sharcnet.ca/my/contact contact us] directly for more specific information.&lt;br /&gt;
&lt;br /&gt;
=== I would like to send my students to SHARCNET to do some work for me. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
See above.&lt;br /&gt;
&lt;br /&gt;
== Contacting SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for research, academic exchanges, and technical issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for business development, education and other issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact a specific staff member at SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
See [https://www.sharcnet.ca/my/contact/directory staff directory] for contact information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Acknowledge SHARCNET in Publications ==&lt;br /&gt;
&lt;br /&gt;
=== How do I acknowledge SHARCNET in my publications? ===&lt;br /&gt;
&lt;br /&gt;
We recommend one cite the following:&lt;br /&gt;
&lt;br /&gt;
 This work was made possible by the facilities of the Shared Hierarchical &lt;br /&gt;
 Academic Research Computing Network (SHARCNET:www.sharcnet.ca) and Digital Research Alliance of Canada (https://alliancecan.ca/en).&lt;br /&gt;
&lt;br /&gt;
=== I&amp;#039;ve seen different spellings of the name, what is the standard spelling of SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
We suggest the spelling SHARCNET, all in upper case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What types of research programs / support are provided to the research community? ==&lt;br /&gt;
&lt;br /&gt;
Our overall intent is to provide support that can both respond to the range of needs that the user community presents and help to increase the sophistication of the community and enable new and larger-in-scope applications making use of SHARCNET&amp;#039;s HPC facilities. The range of support can perhaps best be understood in terms of a pyramid:&lt;br /&gt;
&lt;br /&gt;
=== Level 1 ===&lt;br /&gt;
&lt;br /&gt;
At the apex of the pyramid, SHARCNET supports a small number of projects with dedicated programmer support. The intent is to enable projects that will have a lasting impact and may lead to a &amp;quot;step change&amp;quot; in the way research is done at SHARCNET. Inter-disciplinary and inter-institutional projects are particularly welcomed. For the latest information about the program, including application guidelines, please see the  [https://www.sharcnet.ca/my/research/programming Programming Competition] page in our web portal.&lt;br /&gt;
&lt;br /&gt;
=== Level 2 ===&lt;br /&gt;
&lt;br /&gt;
The middle layers of support are provided through a number of initiatives.&lt;br /&gt;
&lt;br /&gt;
These include:&lt;br /&gt;
* Programming support of more modest duration (several days to one month engagement, usually part time)&lt;br /&gt;
* Training on a variety of topics through [https://www.sharcnet.ca/help/index.php/Training workshops, seminars and online training materials]&lt;br /&gt;
* Consultation. This may include user-initiated interactions on particular programs, algorithms, techniques, debugging, optimization etc., as well as unsolicited help to ensure effective use of SHARCNET systems&lt;br /&gt;
* Site Leaders play an important role in working with the community to help researchers connect with SHARCNET staff and to obtain appropriate help and support.&lt;br /&gt;
&lt;br /&gt;
=== Level 3 ===&lt;br /&gt;
&lt;br /&gt;
The base level of the pyramid handles the very large number of small requests that are essential to keeping the user community working effectively with the infrastructure on a day-to-day basis. Several of these can be answered by this FAQ; many of the issues are presented through the [https://www.sharcnet.ca/help/index.php/Knowledge_Base#Compute_Canada_Problem_Ticket_System ticketing system]. The support is largely problem oriented with each problem being time limited.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=939</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=939"/>
		<updated>2024-09-17T17:25:02Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* Can you install a package on a cluster for me? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Sharcnet_logo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== About SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== What is SHARCNET? ===&lt;br /&gt;
SHARCNET stands for Shared Hierarchical Academic Research Computing Network. Established in 2000, SHARCNET is the largest high performance computing consortium in Canada, involving 19 universities and colleges across southern, central and northern Ontario.&lt;br /&gt;
&lt;br /&gt;
SHARCNET is a member consortium in the [https://alliancecan.ca/en Digital Research Alliance of Canada (Alliance)]  national HPC platform.&lt;br /&gt;
&lt;br /&gt;
=== Where is SHARCNET? ===&lt;br /&gt;
The [http://www.sharcnet.ca/my/contact main office] of SHARCNET is located in the Western Science Centre at [http://www.uwo.ca/ The University of Western Ontario].&lt;br /&gt;
&lt;br /&gt;
=== What does SHARCNET have? ===&lt;br /&gt;
The primary SHARCNET compute system is [https://docs.computecanada.ca/wiki/Graham Graham heterogeneous cluster] located at the University of Waterloo.  It is named after Wes Graham, the first director of the Computing Centre at Waterloo.  It consists of 41,548 cores and 520 GPU devices, spread across 1,185 nodes of different configurations.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with SHARCNET? ===&lt;br /&gt;
If you have a program that takes months to run on your PC, you could probably run it within a few hours using hundreds of processors on SHARCNET / Alliance, provided your program is inherently parallelisable. If you have hundreds or thousands of test cases to run through on your PC or computers in your lab, then with hundreds of processors running those cases independently will significantly reduce your test cycles.&lt;br /&gt;
&lt;br /&gt;
=== Who is running SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
The daily operation and development of SHARCNET computational facilities is managed by a group of highly qualified system administrators. In addition, we have a team of high performance technical computing consultants, who are responsible for technical support on libraries, programming and application analysis.&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET? ===&lt;br /&gt;
For technical inquiries, you may send E-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] or [mailto:help@sharcnet.ca help@sharcnet.ca], or [https://www.sharcnet.ca/my/contact/directory#techteam contact your local system administrator or HPC specialist]. For general inquiries, you may contact the SHARCNET [http://www.sharcnet.ca/my/contact main office].&lt;br /&gt;
&lt;br /&gt;
== Getting an Account with SHARCNET and Related Issues ==&lt;br /&gt;
&lt;br /&gt;
To use SHARCNET (and any other national facilities in Alliance) one has to [https://www.alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account apply for an Alliance account].&lt;br /&gt;
&lt;br /&gt;
== Getting Help ==&lt;br /&gt;
&lt;br /&gt;
=== I have encountered a problem while using an Alliance /SHARCNET system and need help, who should I talk to? ===&lt;br /&gt;
We encourage you to use the problem ticketing system (described in detail [[FAQ#Alliance_Problem_Ticket_System|below]]) .  This is the most efficient way of reporting a problem.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the [https://www.sharcnet.ca/my/contact/directory directory] page.&lt;br /&gt;
&lt;br /&gt;
=== How long should I expect to wait for support? ===&lt;br /&gt;
Unfortunately Alliance/SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week.  User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .  &lt;br /&gt;
&lt;br /&gt;
Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.  &lt;br /&gt;
&lt;br /&gt;
=== Alliance Problem Ticket System ===&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;problem ticket system&amp;quot;? ====&lt;br /&gt;
&lt;br /&gt;
This is a system that allows anyone with an Alliance account to start a persistent email thread that is referred to as a &amp;quot;problem ticket&amp;quot;.    When a user submits a new ticket it will be brought to the attention of an appropriate and available Alliance/SHARCNET staff member for resolution.  &lt;br /&gt;
&lt;br /&gt;
You interact with the ticket system entirely via email.&lt;br /&gt;
&lt;br /&gt;
==== What do I need to specify in a ticket ? ====&lt;br /&gt;
&lt;br /&gt;
To help us address your question faster, please try to do the following when submitting a ticket:&lt;br /&gt;
&lt;br /&gt;
#specify which of our systems is involved &lt;br /&gt;
#if the problem pertains to a job, then report the &amp;lt;u&amp;gt;jobid&amp;lt;/u&amp;gt; associated with the job; this is an integer that is returned by the scheduler when you submit the job&lt;br /&gt;
#report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem; if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem&lt;br /&gt;
#if you&amp;#039;d like for a particular staff member to be aware of the ticket, mention them&lt;br /&gt;
&lt;br /&gt;
==== How do I submit a ticket? ====&lt;br /&gt;
&lt;br /&gt;
In general, you can submit a new ticket by emailing  [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca]  with the email address associated with your Alliance account.  If you are using another email address, please provide your full name, your Alliance default username (if available) and your university or institution.&lt;br /&gt;
&lt;br /&gt;
If you like, you can also target your inquiry more specifically, by using the following addresses to submit your ticket:&lt;br /&gt;
&lt;br /&gt;
* [mailto:help@sharcnet.ca help@sharcnet.ca] - questions specific to SHARCNET, for example relating to contributed SHARCNET systems&lt;br /&gt;
* [mailto:globus@tech.alliancecan.ca globus@tech.alliancecan.ca] -- Questions about [[Globus]] file transfer services&lt;br /&gt;
* [mailto:cloud@tech.alliancecan.ca cloud@tech.alliancecan.ca] -- Questions about using Alliance cloud resources&lt;br /&gt;
* [mailto:accounts@tech.alliancecan.ca accounts@tech.alliancecan.ca] -- Questions about Alliance accounts&lt;br /&gt;
* [mailto:renewals@tech.alliancecan.ca renewals@tech.alliancecan.ca] -- Questions about Alliance account renewals&lt;br /&gt;
&lt;br /&gt;
=== I am new to parallel programming, can you help me get started with my project? ===&lt;br /&gt;
Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research. If your programming project would involve a significant staff time, you should consider applying for Dedicated Programming support. (We run the competition annually; see https://www.sharcnet.ca/my/research/programming).&lt;br /&gt;
&lt;br /&gt;
=== Can you install a package on a cluster for me? ===&lt;br /&gt;
Certainly.  We suggest you make the request by sending e-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] with the specific request.&lt;br /&gt;
&lt;br /&gt;
=== I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that? ===&lt;br /&gt;
If you tell us what you want, we may be able to help you out.&lt;br /&gt;
&lt;br /&gt;
=== Does SHARCNET provide any training on programming and using the systems? ===&lt;br /&gt;
&lt;br /&gt;
Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every summer (usually late May to early June), SHARCNET holds [https://www.sharcnet.ca/help/index.php/Summer_Schools an annual HPC Summer School] with a variety of in-depth, hands-on workshops. &lt;br /&gt;
&lt;br /&gt;
SHARCNET also offers a series of online seminars (so-called &amp;quot;General interest webinars&amp;quot;), typically delivered every second Wednesday at lunch time.  These are announced via the SHARCNET events mailing list and one can see the schedule at the [https://www.sharcnet.ca/my/news/calendar SHARCNET event calendar].  Past seminars are recorded and posted on [http://youtube.sharcnet.ca our youtube channel]. A full listing of the past webinars is available on the [https://helpwiki.sharcnet.ca/wiki/Online_Seminars Online Seminars] page.&lt;br /&gt;
&lt;br /&gt;
=== Attending SHARCNET Webinars ===&lt;br /&gt;
{{:Attending SHARCNET Webinars}}&lt;br /&gt;
&lt;br /&gt;
== Logging in to Systems, Transferring and Editing Files ==&lt;br /&gt;
&lt;br /&gt;
=== How do I login to SHARCNET? ===&lt;br /&gt;
You access the SHARCNET clusters using ssh.  For Graham and other national systems Compute Canada credentials are required.  For the remaining (&amp;quot;Legacy&amp;quot;) systems, you will require SHARCNET credentials (submit a ticket to help@sharcnet.ca if you have questions).&lt;br /&gt;
&lt;br /&gt;
====Unix/Linux/OS X====&lt;br /&gt;
To login to a system, you need to use an [http://www.openssh.com/ Secure Shell (SSH)] connection. If you are logging in from a UNIX-based machine, make sure it has an SSH client (ssh) installed (this is almost always the case on UNIX/Linux/OS X). If you have the same login name on both your local system and SHARCNET, and you want to login to, say, &amp;lt;tt&amp;gt;graham&amp;lt;/tt&amp;gt;, you may use the command:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
If your Compute Canada username is different from the username on your local systems, then you may use either of the following forms:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.computecanada.ca -l username&lt;br /&gt;
 ssh username@graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
If you want to establish an X window connection so that you can use graphics applications such as &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ddt&amp;lt;/tt&amp;gt;, you can add a &amp;lt;tt&amp;gt;-Y&amp;lt;/tt&amp;gt; to the command:&lt;br /&gt;
&lt;br /&gt;
 ssh -Y username@graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
This will automatically set the X DISPLAY variable when you login.&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
If you are logging from a computer running Windows and need some pointers we recommend consulting our [[SSH]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between Login Nodes and Compute Nodes? ===&lt;br /&gt;
====Login Nodes====&lt;br /&gt;
&lt;br /&gt;
Most of our clusters have distinct &amp;#039;&amp;#039;login nodes&amp;#039;&amp;#039; associated with them that you are automatically redirected to when you login to the cluster (some systems are directly logged into, eg. SMPs and smaller specialty systems).  You can use these to do most of your work preparing for jobs (compiling, editing configuration files) and other low-intensity tasks like moving and copying files.  &lt;br /&gt;
&lt;br /&gt;
You can also use them for other quick tasks, like simple post-processing, but any significant work should be submitted as a job to the compute nodes.  On most login nodes, each process is limited to 1 cpu-hour; this will be noticable if you perform anything compute-intensive, and can affect IO-oriented activity as well (such as very large &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; operations.)&lt;br /&gt;
&lt;br /&gt;
=== How can I suspend and resume my session? ===&lt;br /&gt;
&lt;br /&gt;
The program screen can start persistent terminals from which you can detach and reattach.  The simplest use of screen is&lt;br /&gt;
&lt;br /&gt;
 screen -dR&lt;br /&gt;
&lt;br /&gt;
which will either reattach you to any existing session or create a new one if one doesn&amp;#039;t exist.  To terminate the current screen session, type &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;.  To detach manually (you are automatically detached if the connection is lost) press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;d&amp;#039;&amp;#039;, you can the resume later as above (ideal for running background jobs).  Note that &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; is screen&amp;#039;s escape sequence, so you have to do &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;a&amp;#039;&amp;#039; to get the regular effect of pressing &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; inside a screen session (e.g., moving the cursor to the start of the line in a shell).&lt;br /&gt;
&lt;br /&gt;
For a list of other &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; key sequences, press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;?&amp;#039;&amp;#039;.  For further details and  command line options, see the [http://www.gnu.org/software/screen/manual/screen.html screen manual] (or type &amp;lt;tt&amp;gt;man screen&amp;lt;/tt&amp;gt; on any of the clusters).&lt;br /&gt;
&lt;br /&gt;
Other notes:&lt;br /&gt;
* If you want to create additional &amp;quot;text windows&amp;quot;, use Ctrl-A Ctrl-C. Remember to type &amp;quot;exit&amp;quot; to close it. &lt;br /&gt;
* To switch to a &amp;quot;text window&amp;quot; with a certain number, use Ctrl-A # (where # is 0 to 9).&lt;br /&gt;
* To see a list of window numbers use Ctrl-A w&lt;br /&gt;
* To be presented a list of windows and select one to use, use Ctrl-A &amp;quot; (This is handy if you&amp;#039;ve made too many windows.)&lt;br /&gt;
* If the program running in a screen &amp;quot;text window&amp;quot; refuses to die (i.e., it needs to be killed) you can use Ctrl-A K&lt;br /&gt;
* For brief help on keystrokes use Ctrl-A ?&lt;br /&gt;
* For extensive help, run &amp;quot;man screen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What operating systems are supported? ===&lt;br /&gt;
UNIX in general. Currently, Linux is the only operating system used within SHARCNET.&lt;br /&gt;
&lt;br /&gt;
=== What makes a cluster different than my UNIX workstation? ===&lt;br /&gt;
&lt;br /&gt;
If you are familiar with UNIX, then using a cluster is not much different from using a workstation. When you login to a cluster, you in fact only log in to one of the cluster nodes. In most cases, each cluster node is a physical machine, usually a server class machine, with one or several CPUs, that is more or less the same as a workstation you are familiar with. The difference is that these nodes are interconnected with special interconnect devices and the way you run your program is slightly different. Across SHARCNET clusters, you are not expected to run your program interactively. You will have to run your program through a queueing system. That also means where and when your program gets to run is not decided by you, but by the queueing system.&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Those primary programming languages such as C, C++, Fortran, and Python are supported. Other languages, such as Java, Pascal and Ada, are also supported, but with limited technical support from us. &lt;br /&gt;
&lt;br /&gt;
=== How do I organize my files? ===&lt;br /&gt;
[https://docs.computecanada.ca/wiki/Storage_and_file_management#Storage_types Main file systems on our National systems.]&lt;br /&gt;
&lt;br /&gt;
==== How do I transfer files/directories to/from or between cluster? ====&lt;br /&gt;
&lt;br /&gt;
=====Unix/Linux=====&lt;br /&gt;
To transfer files to and from a cluster on a UNIX machine, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt;. For example, if you want to upload file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; to cluster graham from your machine &amp;lt;tt&amp;gt;myhost&amp;lt;/tt&amp;gt;, use the following command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp foo.f graham.computecanada.ca:&lt;br /&gt;
&lt;br /&gt;
assuming that your machine has &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; installed. If you want to transfer a file from Windows or Mac, you need have &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt; for Windows or Mac installed.&lt;br /&gt;
&lt;br /&gt;
If you transfer file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; between Compute Canada clusters, say from your home directory on cedar to your home directory on graham, simply use the following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp foo.f graham:/home/username/&lt;br /&gt;
&lt;br /&gt;
If you are transferring files between a UNIX machine and a cluster, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; command with &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; option. For instance, if you want to download the subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; in the directory &amp;lt;tt&amp;gt;project&amp;lt;/tt&amp;gt; in your home directory on graham to your local UNIX machine, on your local machine, use command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp -rp graham.sharcnet.ca:project/foo .&lt;br /&gt;
&lt;br /&gt;
Similarly, you can transfer the subdirectory between Compute Canada clusters. The following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp -r graham:/home/username/scratch/foo .&lt;br /&gt;
&lt;br /&gt;
will download subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; from your scratch directory on graham to your home directory on cedar (note that the prompt indicates you are currently logged on to cedar).&lt;br /&gt;
&lt;br /&gt;
The use of &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; option above will preserve the time stamp of each file. For Windows and Mac, you need to check the documentation of &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; for features. &amp;#039;&amp;#039;&amp;#039;Do not use -p switch with scp or cp commands on clusters, when the destination is your project space&amp;#039;&amp;#039;&amp;#039;, or you might run into the infamous [https://docs.computecanada.ca/wiki/Frequently_Asked_Questions#Disk_quota_exceeded_error_on_.2Fproject_filesystems Disk quota exceeded issue].&lt;br /&gt;
&lt;br /&gt;
You may also &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; and compress the entire directory and then use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to save bandwidth. In the above example, first you login to graham, then do the following&lt;br /&gt;
&lt;br /&gt;
 [username@gra-login2:~]$ cd project&lt;br /&gt;
 [username@gra-login2:~]$ tar -cvf foo.tar foo&lt;br /&gt;
 [username@gra-login2:~]$ gzip foo.tar&lt;br /&gt;
&lt;br /&gt;
Then on your local machine myhost, use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to copy the tar file&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp graham.computecanada.ca:project/foo.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Note for most Linux distributions, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; has an option &amp;lt;tt&amp;gt;-z&amp;lt;/tt&amp;gt; that will compress the &amp;lt;tt&amp;gt;.tar&amp;lt;/tt&amp;gt; file using &amp;lt;tt&amp;gt;gzip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Windows=====&lt;br /&gt;
You may read the instructions on using an ssh client. [[https://helpwiki.sharcnet.ca/wiki/SSH#Transfering_files_.28Secure_File_Transfer_Client.29]]&lt;br /&gt;
&lt;br /&gt;
====How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect?====&lt;br /&gt;
&lt;br /&gt;
In general, most users should be fine using &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to transfer data to and from SHARCNET systems.  If you need to transfer a lot of files &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; is recommended to ensure that you do not need to restart the transfer from scratch should there be a connection failure.  Although you can use &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to any cluster&amp;#039;s login node(s), it is often best to use gra-dtn1.computecanada.ca - it is dedicated to data transfer. &lt;br /&gt;
&lt;br /&gt;
In general one should expect the following transfer rates with &amp;#039;&amp;#039;scp&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* If you are connecting to SHARCNET through a Research/Education network site (ORION, CANARIE, Internet2) and are on a fast local network (this is the case for most users connecting from academic institutions) then you should be able to attain sustained transfer speeds in excess of 10MB/s.  If your path is all gigabit or better, you should be able to reach rates above 50 MB/s.&lt;br /&gt;
* If you are transferring data over the wider internet, you will not be able to attain these speeds, as all traffic that does not enter/exit SHARCNET via the R&amp;amp;E net is restricted to a limited-bandwidth commercial feed. In this case one will typically see rates on the order of 1MB/s or less.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that filesystems and networks are  shared resources and suffer from contention; if they are busy the above rates may not be attainable&lt;br /&gt;
&lt;br /&gt;
For transferring large amounts of data (many gigabytes) the best approach is to use the online tool [https://docs.computecanada.ca/wiki/Transferring_data#Globus_transfer Globus].&lt;br /&gt;
&lt;br /&gt;
==== How do I access the same file from different subdirectories on the same cluster ? ====&lt;br /&gt;
&lt;br /&gt;
You should not need copy large files on the same cluster (e.g. from one user to another&lt;br /&gt;
or using the same file in different subdirectories).  Instead of using&lt;br /&gt;
scp you might consider issuing a &amp;quot;soft link&amp;quot; command. Assume that you need access&lt;br /&gt;
to the file large_file1 in subdirectory /home/user1/subdir1 and you need it to be in your&lt;br /&gt;
subdirectory /home/my_account/my_dir from where you will invoke it under the name&lt;br /&gt;
my_large_file1.  Then go to that directory and type:&lt;br /&gt;
&lt;br /&gt;
 ln -s /home/user1/subdir1/large_file1    my_large_file1&lt;br /&gt;
&lt;br /&gt;
Another example, assume that in subdirectory /home/my_account/PROJ1 you have several&lt;br /&gt;
subdirectories called CASE1, CASE2, ...  In each subdirectory CASEn you have a slightly&lt;br /&gt;
different code but all of them process the same data file called test_data. Rather than&lt;br /&gt;
copying the test_data file into each CASEn subdirectory, place test_data above i.e.&lt;br /&gt;
in /home/my_account/PROJ1 and then in each CASEn subdirectory issue following &amp;quot;soft link&amp;quot;&lt;br /&gt;
command:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../test_data  test_data&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;soft links&amp;quot; can be removed by using the rm command. For example, to remove the soft link from&lt;br /&gt;
/home/my_account/PROJ1/CASE2 type following command from this subdirectory:&lt;br /&gt;
&lt;br /&gt;
 rm -rf test_data&lt;br /&gt;
&lt;br /&gt;
Typing above command from subdirectory /home/my_account/PROJ1 would remove the actual file and then&lt;br /&gt;
none of the CASEn subdirectories would have access to it.&lt;br /&gt;
&lt;br /&gt;
==== How are files deleted from the /home/userid/scratch filesystems? ====&lt;br /&gt;
&lt;br /&gt;
All files on /home/userid/scratch that are over 2 months old (not old in the common sense, please see below) are automatically deleted. Data needed for long term storage and reference should be kept in either /project, /nearline, or other archival storage areas. The scratch filesystem is checked at the end of the month for files which will be candidates for expiry on the 15th of the following month. On the first day of the month, a login message is posted and a notification e-mail is sent to all users who have at least one file which is a candidate for purging and containing the location of a file which lists all the candidates for purging.  On the 12th of the month, a second scan is run to check for files that will still expire on the 15th, and again, users with candidates for expiry are sent a second warning email.  Lastly, on the 15th, all files which are due for expiry are removed.&lt;br /&gt;
&lt;br /&gt;
An unconventional aspect of this system is that it does not determine the age of a file based on the file&amp;#039;s attributes, e.g., the standard dates reported by the &amp;lt;i&amp;gt;stat&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;find&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;ls&amp;lt;/i&amp;gt;, etc. commands.  (This is known as the &amp;quot;mtime&amp;quot; of the file, for &amp;quot;modification time&amp;quot;, and is frequently inaccurate.) The age of a file is determined based on whether or not its data contents (i.e., the information stored in the file) have changed or been accessed, and this age is stored externally to the file.  Only files where the contents have changed or accessed will have their age counter &amp;quot;reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A list of your candidate files for expiry can be found in /home/scratch_to_delete/$USER  (where $USER is your userid).&lt;br /&gt;
&lt;br /&gt;
===== How do I check the age of a file =====&lt;br /&gt;
We define a file&amp;#039;s age as the most recent of:&lt;br /&gt;
&lt;br /&gt;
 *the access time (atime) and&lt;br /&gt;
 *the change time (ctime)&lt;br /&gt;
&lt;br /&gt;
You can find the ctime of a file using&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lc &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while the atime can be obtained with the command&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lu &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do not use the modify time (mtime) of the file because it can be modified by the user or by other programs to display incorrect information.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, simple use of the atime property would be sufficient, as it is updated by the system in sync with the ctime. However, userspace programs are able to alter atime, potentially to times in the past, which could result in early expiration of a file. The use of ctime as a fallback guards against this undesirable behaviour.&lt;br /&gt;
&lt;br /&gt;
It is also your responsibility to manage your stored data: most of the filesystems are not intended to provide an indefinite archiving service so when a given file or directory is no longer needed, you need to move it to a more appropriate filesystem which may well mean your personal workstation or some other storage system under your control. Moving significant amounts of data between your workstation and a Compute Canada system or between two Compute Canada systems should generally be done using Globus.&lt;br /&gt;
&lt;br /&gt;
==== How to archive my data? ====&lt;br /&gt;
&lt;br /&gt;
===== Use tar to archive files and directories =====&lt;br /&gt;
&lt;br /&gt;
The primary archiving utility on all Linux and Unix-like systems is the [https://www.gnu.org/software/tar/manual/tar.html tar] command. It will bundle a bunch of files or directories together and generate a single file, called an &amp;#039;&amp;#039;archive file&amp;#039;&amp;#039; or &amp;#039;&amp;#039;tar-file&amp;#039;&amp;#039;. By convention an archive file has &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; as the file name extension. When you archive a directory with &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, it will, by default, include all the files and sub-directories contained within it, and sub-sub-directories contained in those, and so on. So the command &amp;lt;code&amp;gt;tar --create --file project1.tar project1&amp;lt;/code&amp;gt; will pack all the content of directory &amp;#039;&amp;#039;project1&amp;#039;&amp;#039; into the file &amp;#039;&amp;#039;project1.tar&amp;#039;&amp;#039;. The original directory will remain unchanged, so this may double the amount of disk space occupied!&lt;br /&gt;
&lt;br /&gt;
You can extract files from an archive using the same command with a different option:&amp;lt;code&amp;gt;tar --extract --file project1.tar&amp;lt;/code&amp;gt;. If there is no directory with the original name, it will be created. If a directory of that name exists and contains files of the same names as in the archive file, they will be overwritten. Another option can be added to specify the destination directory where to extract the archive&amp;#039;s content.   &lt;br /&gt;
&lt;br /&gt;
===== Compress and uncompress tar files =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; archiving utility can compress an archive file at the same time it creates it. There are a number of compression methods to choose from. We recommend either &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;, which can be used as follows:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ tar --create --xz --file project1.tar.xz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --xz --file project1.tar.xz&lt;br /&gt;
 [user_name@localhost]$ tar --create --gzip --file project1.tar.gz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --gzip --file project1.tar.gz&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;code&amp;gt;--xz&amp;lt;/code&amp;gt; will produce a smaller compressed file (a &amp;quot;better compression ratio&amp;quot;) but takes longer and uses more RAM while working. &amp;lt;code&amp;gt;--gzip&amp;lt;/code&amp;gt; does not typically compress as small, but may be used if you encounter difficulties due to insufficient memory or excessive run time during &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt;. A third option, &amp;lt;code&amp;gt;--bzip2&amp;lt;/code&amp;gt;, is also available, that typically does not compress as small as &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; but takes longer than &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt; first without compression and then use the commands &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; in a separate step, although there is rarely a reason to do so. Similarly, you can run &amp;lt;code&amp;gt;xz -d&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip -d&amp;lt;/code&amp;gt; to decompress an archive file before running &amp;lt;code&amp;gt;tar --extract&amp;lt;/code&amp;gt;, but again there is rarely a reason to do so.&lt;br /&gt;
&lt;br /&gt;
The commands &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; can be used to compress any file, not just archive files:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ gzip bigfile&lt;br /&gt;
 [user_name@localhost]$ xz bigfile&lt;br /&gt;
&lt;br /&gt;
These commands will produce the files &amp;lt;code&amp;gt;bigfile.gz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigfile.xz&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
=====Archival Storage=====&lt;br /&gt;
&lt;br /&gt;
On Graham, files copied to ~/nearline will be subsequently moved to offline (tape-based) storage. See [https://docs.computecanada.ca/wiki/Using_nearline_storage this link] for more details.&lt;br /&gt;
&lt;br /&gt;
==== How can I check the hidden files in directory? ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;.&amp;quot; at the beginning of the name means that the file is &amp;quot;hidden&amp;quot;. You have to use the -a option with ls to see it. I.e. &amp;lt;code&amp;gt;ls -a &amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
If you want to display only the hidden files then type:&lt;br /&gt;
 ls -d .*&lt;br /&gt;
&lt;br /&gt;
Note: there is an alias which is loaded from /etc/bashrc (see your .bashrc file). The alias is defined by alias &amp;lt;code&amp;gt; l.=&amp;#039;ls -d .* --color=auto&amp;#039; &amp;lt;/code&amp;gt; and if you type:&lt;br /&gt;
 l.&lt;br /&gt;
you will also display only the hidden files.&lt;br /&gt;
&lt;br /&gt;
==== How can I count the number of files in a directory? ====&lt;br /&gt;
&lt;br /&gt;
One can use the following command to count the number of files in a directory (in this example, your /work directory):&lt;br /&gt;
&lt;br /&gt;
 find /home/$USER -type f   | wc -l&lt;br /&gt;
&lt;br /&gt;
It is always a good idea to [[Knowledge_Base#How_to_archive_my_data.3F|archive]] and/or compress files that are no longer needed on the filesystem (see [https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_to_organize_a_large_number_of_files.3F below]).  This helps minimize one&amp;#039;s footprint on the filesystem and as such the impact they have on other users of the shared resource.&lt;br /&gt;
&lt;br /&gt;
==== How to organize a large number of files? ====&lt;br /&gt;
&lt;br /&gt;
With parallel cluster filesystems, you will get best I/O performance writing data to a small number of large files. Since all metadata operations on each of our parallel filesystems are handled by a single file server, depending on how many files are being accessed the server can become overwhelmed leading to poor overall I/O performance for all users. If your workflow involves storing data in a large number of files, it is best to pack these files into a small number of larger archives, e.g. using tar command&lt;br /&gt;
&lt;br /&gt;
 tar cvf archiveFile.tar directoryToArchive&lt;br /&gt;
&lt;br /&gt;
For better performance with many files inside your archive, we recommend to use DAR (Disk ARchive utility), which is a disk analog of tar (Tape ARchive).  Dar can extract files from anywhere in the archive much faster than tar. The dar command is available by default on sharcnet systems. It can be used to pack files into a dar archive by doing something like: &lt;br /&gt;
&lt;br /&gt;
 dar -s 1G -w -c archiveFile -g directoryToArchive&lt;br /&gt;
&lt;br /&gt;
In this example we split the archive into 1GB chunks, and the archive files will be named archiveFile.1.dar, archiveFile.2.dar, and so on. To list the contents of the archive, you can type:&lt;br /&gt;
&lt;br /&gt;
 dar -l archiveFile&lt;br /&gt;
&lt;br /&gt;
To temporarily extract files for post-processing into current directory, you would type:&lt;br /&gt;
&lt;br /&gt;
 dar -R . -O -x archiveFile -v -g pathToYourFile/fileToExtract&lt;br /&gt;
&lt;br /&gt;
=== I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host ===&lt;br /&gt;
&lt;br /&gt;
The most likely cause of this behaviour is repeated failed login attempts.  Part of our security policies involves blocking the IP address of machines that attempt multiple logins with incorrect passwords over a short period of time---many brute-force attacks on systems do exactly this: looking for poor passwords, badly configured accounts, etc.  Unfortunately, it isn&amp;#039;t uncommon for a user to forget their password and make repeated login attempts with incorrect passwords and end up with that machine blacklisted and unable to connect at all.&lt;br /&gt;
&lt;br /&gt;
A temporary solution is simply to attempt to login from another machine.  If you have access to another machine at your site, you can shell to that machine first, and then shell to the SHARCNET system (as that machine&amp;#039;s IP shouldn&amp;#039;t be blacklisted).  In order to have your machine unblocked, you will have to email to [mailto:support@computecanada.ca support@computecanada.ca] as a system administrator must manually intervene in order to fix it.&lt;br /&gt;
&lt;br /&gt;
NOTE: there are other situations that can produce this message, however they are rarer and more transient.  If you are unable to log in from one machine, but can from another, it is most likely the IP blacklisting that is the problem and the above will provide a temporary work-around while your problem ticket is processed.&lt;br /&gt;
&lt;br /&gt;
=== I am unable to ssh/scp from SHARCNET to my local computer ===&lt;br /&gt;
&lt;br /&gt;
Most campus networks are behind some sort of firewall.  If you can ssh out to SHARCNET, but cannot establish a connection in the other direction, then you are probably behind a firewall and should speak with your local system administrator or campus IT department to determine if there are any exceptions or workarounds in place.&lt;br /&gt;
&lt;br /&gt;
=== SSH tells me SOMEONE IS DOING SOMETHING NASTY!? ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please first read the following:&lt;br /&gt;
&lt;br /&gt;
https://docs.computecanada.ca/wiki/SSH_security_improvements&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suppose you attempt to login to SHARCNET, but instead get an alarming message like this:&lt;br /&gt;
&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that the RSA host key has just been changed.&lt;br /&gt;
 The fingerprint for the RSA key sent by the remote host is&lt;br /&gt;
 fe:65:ab:89:9a:23:34:5a:50:1e:05:d6:bf:ec:da:67.&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending key in /home/user/.ssh/known_hosts:42&lt;br /&gt;
 RSA host key for requin has changed and you have requested strict checking.&lt;br /&gt;
 Host key verification failed. &lt;br /&gt;
&lt;br /&gt;
SSH begins a connection by verifying that the host you&amp;#039;re connecting to is authentic. It does this by caching the hosts&amp;#039;s &amp;quot;hostkey&amp;quot; in your  &amp;lt;tt&amp;gt;~/.ssh/known_hosts&amp;lt;/tt&amp;gt; file. At times, a hostkey may be changed legitimately; when this happens, you may see such a message. It&amp;#039;s a good idea to verify this with us, you may be able to check the fingerprint yourself by logging into another sharcnet system and running:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub &lt;br /&gt;
&lt;br /&gt;
If the fingerprint is OK, the normal way to fix the problem is to simply remove the old hostkey from your &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. On machines with commandline SSH, you can do this with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -R thehostname&lt;br /&gt;
&lt;br /&gt;
You can use your choice of editor if you&amp;#039;re comfortable doing so (it&amp;#039;s a plain text file, but has long lines). On a unix-compatible machine, you can also use the following very small script (Substitute the line(s) printed in the warning message illustrated above for &amp;#039;42&amp;#039; here.):&lt;br /&gt;
&lt;br /&gt;
 perl -pi -e &amp;#039;undef $_ if (++$line == 42)&amp;#039; ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
Another solution is brute-force: remove the whole &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. This throws away any authentication checking, and afterwards, your first connection to any machine will prompt you to accept a newly discovered host key.&lt;br /&gt;
&lt;br /&gt;
=== Ssh works, but scp doesn&amp;#039;t! ===&lt;br /&gt;
&lt;br /&gt;
If you can &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; to a cluster successfully, but cannot &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to to it, the problem is likely that your login scripts print unexpected messages which confuse &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; is based on the same &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, but assumes that the connection is &amp;quot;clean&amp;quot;: that is, that it does not produce any un-asked-for content. If you have something like:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; will be confused by the salutation. To avoid this, simply ensure that the message is only printed on an interactive login:&lt;br /&gt;
&lt;br /&gt;
 if [ -t 0 ]; then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
or in csh/tcsh syntax:&lt;br /&gt;
&lt;br /&gt;
 if ( -t 0 ) then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
=== How do I edit my program on a cluster? ===&lt;br /&gt;
&lt;br /&gt;
We provide a variety of editors, such as the traditional text-mode &amp;lt;tt&amp;gt;emacs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; (vim), as well as a simpler one called &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;. If you have X on your desktop (and tunneled through SSH), you can use the GUI versions (&amp;lt;tt&amp;gt;xemacs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If your desktop supports FUSE, it&amp;#039;s very convenient to simply mount your home tree like this:&lt;br /&gt;
 mkdir sharcnet&lt;br /&gt;
 sshfs graham.computecanada.ca: sharcnet&lt;br /&gt;
you can then use any local editor of your choice.&lt;br /&gt;
&lt;br /&gt;
If you run emacs on your desktop, you can also edit a remote file from within your local emacs client using [http://www.gnu.org/software/tramp Tramp], opening and saving a file as /username@cluster.computecanada.ca:path/file.&lt;br /&gt;
&lt;br /&gt;
== Research at SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== I have a research project I would like to collaborate on with SHARCNET, who should I talk to? ===&lt;br /&gt;
&lt;br /&gt;
You may contact [mailto:barb@sharcnet.ca SHARCNET head office] or contact members of the [https://www.sharcnet.ca/my/contact/directory#techteam SHARCNET technical staff].&lt;br /&gt;
&lt;br /&gt;
=== How can I contribute compute resources to SHARCNET so that other researchers can share it? ===&lt;br /&gt;
&lt;br /&gt;
Most people&amp;#039;s research is &amp;quot;bursty&amp;quot; - there are usually sparse periods of time when some computation is urgently needed, and other periods when there is less demand. One problem with this is that if you purchase the equipment you need to meet your &amp;quot;burst&amp;quot; needs, it&amp;#039;ll probably sit, underutilized, during other times.&lt;br /&gt;
&lt;br /&gt;
An alternative is to donate control of this equipment to SHARCNET, and let us arrange for other users to use it when you are not. We prefer to be involved in the selection and configuration of such equipment. Our promise to contributors is that as much as possible, they should obtain as much benefit from the cluster as if it were not shared. Owners get preferential access. Naturally, owners are also able to burst to higher peak usage, since their equipment has been pooled with other contributions. (Technically, SHARCNET cannot itself own such equipment — it remains owned by the institution in question, and will be returned to the contributor upon request.) If you think this model will also work for you and you would like to contribute your computational resource to help the research community at SHARCNET, you can contact us for such arrangement.&lt;br /&gt;
&lt;br /&gt;
=== I do not know much about computation, nor is it my research interest. But I am interested in getting my research done faster with the help of the high performance computing technology. In other words, I do not care about the process and mechanism, but only the final results. Can SHARCNET provide this type of help? ===&lt;br /&gt;
&lt;br /&gt;
We will be happy to bring the technology of high performance computing to you to accelerate your research, if at all possible. If you would like to discuss your plan with us, please feel free to contact our [https://www.sharcnet.ca/my/contact/directory#techteam high performance computing specialists]. They will be happy to listen to your needs and are ready to provide appropriate suggestions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET participates in the Compute Canada NRAC (National Resource Allocation Competition) and provides a continual competition for groups that require more than the default level of access to our resources.  Please see [[Dedicated Resources]] for further information.&lt;br /&gt;
&lt;br /&gt;
=== I heard SHARCNET offers fellowships, where can I get more information? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET no longer actively runs a fellowship program.  You may find information regarding past fellowships and other dedicated resource opportunities on the [https://www.sharcnet.ca/my/research/fellowships Research Fellowships page] of the web portal.&lt;br /&gt;
&lt;br /&gt;
=== I would like to do some research at SHARCNET as a visiting scholar, how should I apply? ===&lt;br /&gt;
&lt;br /&gt;
In general, you will need to find a hosting department or a person affiliated with one of the SHARCNET institutions. You may also [http://www.sharcnet.ca/my/contact contact us] directly for more specific information.&lt;br /&gt;
&lt;br /&gt;
=== I would like to send my students to SHARCNET to do some work for me. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
See above.&lt;br /&gt;
&lt;br /&gt;
== Contacting SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for research, academic exchanges, and technical issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for business development, education and other issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact a specific staff member at SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
See [https://www.sharcnet.ca/my/contact/directory staff directory] for contact information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Acknowledge SHARCNET in Publications ==&lt;br /&gt;
&lt;br /&gt;
=== How do I acknowledge SHARCNET in my publications? ===&lt;br /&gt;
&lt;br /&gt;
We recommend one cite the following:&lt;br /&gt;
&lt;br /&gt;
 This work was made possible by the facilities of the Shared Hierarchical &lt;br /&gt;
 Academic Research Computing Network (SHARCNET:www.sharcnet.ca) and Digital Research Alliance of Canada (https://alliancecan.ca/en).&lt;br /&gt;
&lt;br /&gt;
=== I&amp;#039;ve seen different spellings of the name, what is the standard spelling of SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
We suggest the spelling SHARCNET, all in upper case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What types of research programs / support are provided to the research community? ==&lt;br /&gt;
&lt;br /&gt;
Our overall intent is to provide support that can both respond to the range of needs that the user community presents and help to increase the sophistication of the community and enable new and larger-in-scope applications making use of SHARCNET&amp;#039;s HPC facilities. The range of support can perhaps best be understood in terms of a pyramid:&lt;br /&gt;
&lt;br /&gt;
=== Level 1 ===&lt;br /&gt;
&lt;br /&gt;
At the apex of the pyramid, SHARCNET supports a small number of projects with dedicated programmer support. The intent is to enable projects that will have a lasting impact and may lead to a &amp;quot;step change&amp;quot; in the way research is done at SHARCNET. Inter-disciplinary and inter-institutional projects are particularly welcomed. For the latest information about the program, including application guidelines, please see the  [https://www.sharcnet.ca/my/research/programming Programming Competition] page in our web portal.&lt;br /&gt;
&lt;br /&gt;
=== Level 2 ===&lt;br /&gt;
&lt;br /&gt;
The middle layers of support are provided through a number of initiatives.&lt;br /&gt;
&lt;br /&gt;
These include:&lt;br /&gt;
* Programming support of more modest duration (several days to one month engagement, usually part time)&lt;br /&gt;
* Training on a variety of topics through [https://www.sharcnet.ca/help/index.php/Training workshops, seminars and online training materials]&lt;br /&gt;
* Consultation. This may include user-initiated interactions on particular programs, algorithms, techniques, debugging, optimization etc., as well as unsolicited help to ensure effective use of SHARCNET systems&lt;br /&gt;
* Site Leaders play an important role in working with the community to help researchers connect with SHARCNET staff and to obtain appropriate help and support.&lt;br /&gt;
&lt;br /&gt;
=== Level 3 ===&lt;br /&gt;
&lt;br /&gt;
The base level of the pyramid handles the very large number of small requests that are essential to keeping the user community working effectively with the infrastructure on a day-to-day basis. Several of these can be answered by this FAQ; many of the issues are presented through the [https://www.sharcnet.ca/help/index.php/Knowledge_Base#Compute_Canada_Problem_Ticket_System ticketing system]. The support is largely problem oriented with each problem being time limited.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=938</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=938"/>
		<updated>2024-09-17T17:24:12Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* How do I submit a ticket? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Sharcnet_logo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== About SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== What is SHARCNET? ===&lt;br /&gt;
SHARCNET stands for Shared Hierarchical Academic Research Computing Network. Established in 2000, SHARCNET is the largest high performance computing consortium in Canada, involving 19 universities and colleges across southern, central and northern Ontario.&lt;br /&gt;
&lt;br /&gt;
SHARCNET is a member consortium in the [https://alliancecan.ca/en Digital Research Alliance of Canada (Alliance)]  national HPC platform.&lt;br /&gt;
&lt;br /&gt;
=== Where is SHARCNET? ===&lt;br /&gt;
The [http://www.sharcnet.ca/my/contact main office] of SHARCNET is located in the Western Science Centre at [http://www.uwo.ca/ The University of Western Ontario].&lt;br /&gt;
&lt;br /&gt;
=== What does SHARCNET have? ===&lt;br /&gt;
The primary SHARCNET compute system is [https://docs.computecanada.ca/wiki/Graham Graham heterogeneous cluster] located at the University of Waterloo.  It is named after Wes Graham, the first director of the Computing Centre at Waterloo.  It consists of 41,548 cores and 520 GPU devices, spread across 1,185 nodes of different configurations.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with SHARCNET? ===&lt;br /&gt;
If you have a program that takes months to run on your PC, you could probably run it within a few hours using hundreds of processors on SHARCNET / Alliance, provided your program is inherently parallelisable. If you have hundreds or thousands of test cases to run through on your PC or computers in your lab, then with hundreds of processors running those cases independently will significantly reduce your test cycles.&lt;br /&gt;
&lt;br /&gt;
=== Who is running SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
The daily operation and development of SHARCNET computational facilities is managed by a group of highly qualified system administrators. In addition, we have a team of high performance technical computing consultants, who are responsible for technical support on libraries, programming and application analysis.&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET? ===&lt;br /&gt;
For technical inquiries, you may send E-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] or [mailto:help@sharcnet.ca help@sharcnet.ca], or [https://www.sharcnet.ca/my/contact/directory#techteam contact your local system administrator or HPC specialist]. For general inquiries, you may contact the SHARCNET [http://www.sharcnet.ca/my/contact main office].&lt;br /&gt;
&lt;br /&gt;
== Getting an Account with SHARCNET and Related Issues ==&lt;br /&gt;
&lt;br /&gt;
To use SHARCNET (and any other national facilities in Alliance) one has to [https://www.alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account apply for an Alliance account].&lt;br /&gt;
&lt;br /&gt;
== Getting Help ==&lt;br /&gt;
&lt;br /&gt;
=== I have encountered a problem while using an Alliance /SHARCNET system and need help, who should I talk to? ===&lt;br /&gt;
We encourage you to use the problem ticketing system (described in detail [[FAQ#Alliance_Problem_Ticket_System|below]]) .  This is the most efficient way of reporting a problem.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the [https://www.sharcnet.ca/my/contact/directory directory] page.&lt;br /&gt;
&lt;br /&gt;
=== How long should I expect to wait for support? ===&lt;br /&gt;
Unfortunately Alliance/SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week.  User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .  &lt;br /&gt;
&lt;br /&gt;
Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.  &lt;br /&gt;
&lt;br /&gt;
=== Alliance Problem Ticket System ===&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;problem ticket system&amp;quot;? ====&lt;br /&gt;
&lt;br /&gt;
This is a system that allows anyone with an Alliance account to start a persistent email thread that is referred to as a &amp;quot;problem ticket&amp;quot;.    When a user submits a new ticket it will be brought to the attention of an appropriate and available Alliance/SHARCNET staff member for resolution.  &lt;br /&gt;
&lt;br /&gt;
You interact with the ticket system entirely via email.&lt;br /&gt;
&lt;br /&gt;
==== What do I need to specify in a ticket ? ====&lt;br /&gt;
&lt;br /&gt;
To help us address your question faster, please try to do the following when submitting a ticket:&lt;br /&gt;
&lt;br /&gt;
#specify which of our systems is involved &lt;br /&gt;
#if the problem pertains to a job, then report the &amp;lt;u&amp;gt;jobid&amp;lt;/u&amp;gt; associated with the job; this is an integer that is returned by the scheduler when you submit the job&lt;br /&gt;
#report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem; if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem&lt;br /&gt;
#if you&amp;#039;d like for a particular staff member to be aware of the ticket, mention them&lt;br /&gt;
&lt;br /&gt;
==== How do I submit a ticket? ====&lt;br /&gt;
&lt;br /&gt;
In general, you can submit a new ticket by emailing  [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca]  with the email address associated with your Alliance account.  If you are using another email address, please provide your full name, your Alliance default username (if available) and your university or institution.&lt;br /&gt;
&lt;br /&gt;
If you like, you can also target your inquiry more specifically, by using the following addresses to submit your ticket:&lt;br /&gt;
&lt;br /&gt;
* [mailto:help@sharcnet.ca help@sharcnet.ca] - questions specific to SHARCNET, for example relating to contributed SHARCNET systems&lt;br /&gt;
* [mailto:globus@tech.alliancecan.ca globus@tech.alliancecan.ca] -- Questions about [[Globus]] file transfer services&lt;br /&gt;
* [mailto:cloud@tech.alliancecan.ca cloud@tech.alliancecan.ca] -- Questions about using Alliance cloud resources&lt;br /&gt;
* [mailto:accounts@tech.alliancecan.ca accounts@tech.alliancecan.ca] -- Questions about Alliance accounts&lt;br /&gt;
* [mailto:renewals@tech.alliancecan.ca renewals@tech.alliancecan.ca] -- Questions about Alliance account renewals&lt;br /&gt;
&lt;br /&gt;
=== I am new to parallel programming, can you help me get started with my project? ===&lt;br /&gt;
Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research. If your programming project would involve a significant staff time, you should consider applying for Dedicated Programming support. (We run the competition annually; see https://www.sharcnet.ca/my/research/programming).&lt;br /&gt;
&lt;br /&gt;
=== Can you install a package on a cluster for me? ===&lt;br /&gt;
Certainly.  We suggest you make the request by sending e-mail to [mailto:support@computecanada.ca support@computecanada.ca] with the specific request.&lt;br /&gt;
&lt;br /&gt;
=== I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that? ===&lt;br /&gt;
If you tell us what you want, we may be able to help you out.&lt;br /&gt;
&lt;br /&gt;
=== Does SHARCNET provide any training on programming and using the systems? ===&lt;br /&gt;
&lt;br /&gt;
Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every summer (usually late May to early June), SHARCNET holds [https://www.sharcnet.ca/help/index.php/Summer_Schools an annual HPC Summer School] with a variety of in-depth, hands-on workshops. &lt;br /&gt;
&lt;br /&gt;
SHARCNET also offers a series of online seminars (so-called &amp;quot;General interest webinars&amp;quot;), typically delivered every second Wednesday at lunch time.  These are announced via the SHARCNET events mailing list and one can see the schedule at the [https://www.sharcnet.ca/my/news/calendar SHARCNET event calendar].  Past seminars are recorded and posted on [http://youtube.sharcnet.ca our youtube channel]. A full listing of the past webinars is available on the [https://helpwiki.sharcnet.ca/wiki/Online_Seminars Online Seminars] page.&lt;br /&gt;
&lt;br /&gt;
=== Attending SHARCNET Webinars ===&lt;br /&gt;
{{:Attending SHARCNET Webinars}}&lt;br /&gt;
&lt;br /&gt;
== Logging in to Systems, Transferring and Editing Files ==&lt;br /&gt;
&lt;br /&gt;
=== How do I login to SHARCNET? ===&lt;br /&gt;
You access the SHARCNET clusters using ssh.  For Graham and other national systems Compute Canada credentials are required.  For the remaining (&amp;quot;Legacy&amp;quot;) systems, you will require SHARCNET credentials (submit a ticket to help@sharcnet.ca if you have questions).&lt;br /&gt;
&lt;br /&gt;
====Unix/Linux/OS X====&lt;br /&gt;
To login to a system, you need to use an [http://www.openssh.com/ Secure Shell (SSH)] connection. If you are logging in from a UNIX-based machine, make sure it has an SSH client (ssh) installed (this is almost always the case on UNIX/Linux/OS X). If you have the same login name on both your local system and SHARCNET, and you want to login to, say, &amp;lt;tt&amp;gt;graham&amp;lt;/tt&amp;gt;, you may use the command:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
If your Compute Canada username is different from the username on your local systems, then you may use either of the following forms:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.computecanada.ca -l username&lt;br /&gt;
 ssh username@graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
If you want to establish an X window connection so that you can use graphics applications such as &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ddt&amp;lt;/tt&amp;gt;, you can add a &amp;lt;tt&amp;gt;-Y&amp;lt;/tt&amp;gt; to the command:&lt;br /&gt;
&lt;br /&gt;
 ssh -Y username@graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
This will automatically set the X DISPLAY variable when you login.&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
If you are logging from a computer running Windows and need some pointers we recommend consulting our [[SSH]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between Login Nodes and Compute Nodes? ===&lt;br /&gt;
====Login Nodes====&lt;br /&gt;
&lt;br /&gt;
Most of our clusters have distinct &amp;#039;&amp;#039;login nodes&amp;#039;&amp;#039; associated with them that you are automatically redirected to when you login to the cluster (some systems are directly logged into, eg. SMPs and smaller specialty systems).  You can use these to do most of your work preparing for jobs (compiling, editing configuration files) and other low-intensity tasks like moving and copying files.  &lt;br /&gt;
&lt;br /&gt;
You can also use them for other quick tasks, like simple post-processing, but any significant work should be submitted as a job to the compute nodes.  On most login nodes, each process is limited to 1 cpu-hour; this will be noticable if you perform anything compute-intensive, and can affect IO-oriented activity as well (such as very large &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; operations.)&lt;br /&gt;
&lt;br /&gt;
=== How can I suspend and resume my session? ===&lt;br /&gt;
&lt;br /&gt;
The program screen can start persistent terminals from which you can detach and reattach.  The simplest use of screen is&lt;br /&gt;
&lt;br /&gt;
 screen -dR&lt;br /&gt;
&lt;br /&gt;
which will either reattach you to any existing session or create a new one if one doesn&amp;#039;t exist.  To terminate the current screen session, type &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;.  To detach manually (you are automatically detached if the connection is lost) press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;d&amp;#039;&amp;#039;, you can the resume later as above (ideal for running background jobs).  Note that &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; is screen&amp;#039;s escape sequence, so you have to do &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;a&amp;#039;&amp;#039; to get the regular effect of pressing &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; inside a screen session (e.g., moving the cursor to the start of the line in a shell).&lt;br /&gt;
&lt;br /&gt;
For a list of other &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; key sequences, press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;?&amp;#039;&amp;#039;.  For further details and  command line options, see the [http://www.gnu.org/software/screen/manual/screen.html screen manual] (or type &amp;lt;tt&amp;gt;man screen&amp;lt;/tt&amp;gt; on any of the clusters).&lt;br /&gt;
&lt;br /&gt;
Other notes:&lt;br /&gt;
* If you want to create additional &amp;quot;text windows&amp;quot;, use Ctrl-A Ctrl-C. Remember to type &amp;quot;exit&amp;quot; to close it. &lt;br /&gt;
* To switch to a &amp;quot;text window&amp;quot; with a certain number, use Ctrl-A # (where # is 0 to 9).&lt;br /&gt;
* To see a list of window numbers use Ctrl-A w&lt;br /&gt;
* To be presented a list of windows and select one to use, use Ctrl-A &amp;quot; (This is handy if you&amp;#039;ve made too many windows.)&lt;br /&gt;
* If the program running in a screen &amp;quot;text window&amp;quot; refuses to die (i.e., it needs to be killed) you can use Ctrl-A K&lt;br /&gt;
* For brief help on keystrokes use Ctrl-A ?&lt;br /&gt;
* For extensive help, run &amp;quot;man screen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What operating systems are supported? ===&lt;br /&gt;
UNIX in general. Currently, Linux is the only operating system used within SHARCNET.&lt;br /&gt;
&lt;br /&gt;
=== What makes a cluster different than my UNIX workstation? ===&lt;br /&gt;
&lt;br /&gt;
If you are familiar with UNIX, then using a cluster is not much different from using a workstation. When you login to a cluster, you in fact only log in to one of the cluster nodes. In most cases, each cluster node is a physical machine, usually a server class machine, with one or several CPUs, that is more or less the same as a workstation you are familiar with. The difference is that these nodes are interconnected with special interconnect devices and the way you run your program is slightly different. Across SHARCNET clusters, you are not expected to run your program interactively. You will have to run your program through a queueing system. That also means where and when your program gets to run is not decided by you, but by the queueing system.&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Those primary programming languages such as C, C++, Fortran, and Python are supported. Other languages, such as Java, Pascal and Ada, are also supported, but with limited technical support from us. &lt;br /&gt;
&lt;br /&gt;
=== How do I organize my files? ===&lt;br /&gt;
[https://docs.computecanada.ca/wiki/Storage_and_file_management#Storage_types Main file systems on our National systems.]&lt;br /&gt;
&lt;br /&gt;
==== How do I transfer files/directories to/from or between cluster? ====&lt;br /&gt;
&lt;br /&gt;
=====Unix/Linux=====&lt;br /&gt;
To transfer files to and from a cluster on a UNIX machine, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt;. For example, if you want to upload file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; to cluster graham from your machine &amp;lt;tt&amp;gt;myhost&amp;lt;/tt&amp;gt;, use the following command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp foo.f graham.computecanada.ca:&lt;br /&gt;
&lt;br /&gt;
assuming that your machine has &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; installed. If you want to transfer a file from Windows or Mac, you need have &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt; for Windows or Mac installed.&lt;br /&gt;
&lt;br /&gt;
If you transfer file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; between Compute Canada clusters, say from your home directory on cedar to your home directory on graham, simply use the following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp foo.f graham:/home/username/&lt;br /&gt;
&lt;br /&gt;
If you are transferring files between a UNIX machine and a cluster, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; command with &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; option. For instance, if you want to download the subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; in the directory &amp;lt;tt&amp;gt;project&amp;lt;/tt&amp;gt; in your home directory on graham to your local UNIX machine, on your local machine, use command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp -rp graham.sharcnet.ca:project/foo .&lt;br /&gt;
&lt;br /&gt;
Similarly, you can transfer the subdirectory between Compute Canada clusters. The following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp -r graham:/home/username/scratch/foo .&lt;br /&gt;
&lt;br /&gt;
will download subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; from your scratch directory on graham to your home directory on cedar (note that the prompt indicates you are currently logged on to cedar).&lt;br /&gt;
&lt;br /&gt;
The use of &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; option above will preserve the time stamp of each file. For Windows and Mac, you need to check the documentation of &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; for features. &amp;#039;&amp;#039;&amp;#039;Do not use -p switch with scp or cp commands on clusters, when the destination is your project space&amp;#039;&amp;#039;&amp;#039;, or you might run into the infamous [https://docs.computecanada.ca/wiki/Frequently_Asked_Questions#Disk_quota_exceeded_error_on_.2Fproject_filesystems Disk quota exceeded issue].&lt;br /&gt;
&lt;br /&gt;
You may also &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; and compress the entire directory and then use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to save bandwidth. In the above example, first you login to graham, then do the following&lt;br /&gt;
&lt;br /&gt;
 [username@gra-login2:~]$ cd project&lt;br /&gt;
 [username@gra-login2:~]$ tar -cvf foo.tar foo&lt;br /&gt;
 [username@gra-login2:~]$ gzip foo.tar&lt;br /&gt;
&lt;br /&gt;
Then on your local machine myhost, use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to copy the tar file&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp graham.computecanada.ca:project/foo.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Note for most Linux distributions, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; has an option &amp;lt;tt&amp;gt;-z&amp;lt;/tt&amp;gt; that will compress the &amp;lt;tt&amp;gt;.tar&amp;lt;/tt&amp;gt; file using &amp;lt;tt&amp;gt;gzip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Windows=====&lt;br /&gt;
You may read the instructions on using an ssh client. [[https://helpwiki.sharcnet.ca/wiki/SSH#Transfering_files_.28Secure_File_Transfer_Client.29]]&lt;br /&gt;
&lt;br /&gt;
====How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect?====&lt;br /&gt;
&lt;br /&gt;
In general, most users should be fine using &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to transfer data to and from SHARCNET systems.  If you need to transfer a lot of files &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; is recommended to ensure that you do not need to restart the transfer from scratch should there be a connection failure.  Although you can use &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to any cluster&amp;#039;s login node(s), it is often best to use gra-dtn1.computecanada.ca - it is dedicated to data transfer. &lt;br /&gt;
&lt;br /&gt;
In general one should expect the following transfer rates with &amp;#039;&amp;#039;scp&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* If you are connecting to SHARCNET through a Research/Education network site (ORION, CANARIE, Internet2) and are on a fast local network (this is the case for most users connecting from academic institutions) then you should be able to attain sustained transfer speeds in excess of 10MB/s.  If your path is all gigabit or better, you should be able to reach rates above 50 MB/s.&lt;br /&gt;
* If you are transferring data over the wider internet, you will not be able to attain these speeds, as all traffic that does not enter/exit SHARCNET via the R&amp;amp;E net is restricted to a limited-bandwidth commercial feed. In this case one will typically see rates on the order of 1MB/s or less.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that filesystems and networks are  shared resources and suffer from contention; if they are busy the above rates may not be attainable&lt;br /&gt;
&lt;br /&gt;
For transferring large amounts of data (many gigabytes) the best approach is to use the online tool [https://docs.computecanada.ca/wiki/Transferring_data#Globus_transfer Globus].&lt;br /&gt;
&lt;br /&gt;
==== How do I access the same file from different subdirectories on the same cluster ? ====&lt;br /&gt;
&lt;br /&gt;
You should not need copy large files on the same cluster (e.g. from one user to another&lt;br /&gt;
or using the same file in different subdirectories).  Instead of using&lt;br /&gt;
scp you might consider issuing a &amp;quot;soft link&amp;quot; command. Assume that you need access&lt;br /&gt;
to the file large_file1 in subdirectory /home/user1/subdir1 and you need it to be in your&lt;br /&gt;
subdirectory /home/my_account/my_dir from where you will invoke it under the name&lt;br /&gt;
my_large_file1.  Then go to that directory and type:&lt;br /&gt;
&lt;br /&gt;
 ln -s /home/user1/subdir1/large_file1    my_large_file1&lt;br /&gt;
&lt;br /&gt;
Another example, assume that in subdirectory /home/my_account/PROJ1 you have several&lt;br /&gt;
subdirectories called CASE1, CASE2, ...  In each subdirectory CASEn you have a slightly&lt;br /&gt;
different code but all of them process the same data file called test_data. Rather than&lt;br /&gt;
copying the test_data file into each CASEn subdirectory, place test_data above i.e.&lt;br /&gt;
in /home/my_account/PROJ1 and then in each CASEn subdirectory issue following &amp;quot;soft link&amp;quot;&lt;br /&gt;
command:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../test_data  test_data&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;soft links&amp;quot; can be removed by using the rm command. For example, to remove the soft link from&lt;br /&gt;
/home/my_account/PROJ1/CASE2 type following command from this subdirectory:&lt;br /&gt;
&lt;br /&gt;
 rm -rf test_data&lt;br /&gt;
&lt;br /&gt;
Typing above command from subdirectory /home/my_account/PROJ1 would remove the actual file and then&lt;br /&gt;
none of the CASEn subdirectories would have access to it.&lt;br /&gt;
&lt;br /&gt;
==== How are files deleted from the /home/userid/scratch filesystems? ====&lt;br /&gt;
&lt;br /&gt;
All files on /home/userid/scratch that are over 2 months old (not old in the common sense, please see below) are automatically deleted. Data needed for long term storage and reference should be kept in either /project, /nearline, or other archival storage areas. The scratch filesystem is checked at the end of the month for files which will be candidates for expiry on the 15th of the following month. On the first day of the month, a login message is posted and a notification e-mail is sent to all users who have at least one file which is a candidate for purging and containing the location of a file which lists all the candidates for purging.  On the 12th of the month, a second scan is run to check for files that will still expire on the 15th, and again, users with candidates for expiry are sent a second warning email.  Lastly, on the 15th, all files which are due for expiry are removed.&lt;br /&gt;
&lt;br /&gt;
An unconventional aspect of this system is that it does not determine the age of a file based on the file&amp;#039;s attributes, e.g., the standard dates reported by the &amp;lt;i&amp;gt;stat&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;find&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;ls&amp;lt;/i&amp;gt;, etc. commands.  (This is known as the &amp;quot;mtime&amp;quot; of the file, for &amp;quot;modification time&amp;quot;, and is frequently inaccurate.) The age of a file is determined based on whether or not its data contents (i.e., the information stored in the file) have changed or been accessed, and this age is stored externally to the file.  Only files where the contents have changed or accessed will have their age counter &amp;quot;reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A list of your candidate files for expiry can be found in /home/scratch_to_delete/$USER  (where $USER is your userid).&lt;br /&gt;
&lt;br /&gt;
===== How do I check the age of a file =====&lt;br /&gt;
We define a file&amp;#039;s age as the most recent of:&lt;br /&gt;
&lt;br /&gt;
 *the access time (atime) and&lt;br /&gt;
 *the change time (ctime)&lt;br /&gt;
&lt;br /&gt;
You can find the ctime of a file using&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lc &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while the atime can be obtained with the command&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lu &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do not use the modify time (mtime) of the file because it can be modified by the user or by other programs to display incorrect information.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, simple use of the atime property would be sufficient, as it is updated by the system in sync with the ctime. However, userspace programs are able to alter atime, potentially to times in the past, which could result in early expiration of a file. The use of ctime as a fallback guards against this undesirable behaviour.&lt;br /&gt;
&lt;br /&gt;
It is also your responsibility to manage your stored data: most of the filesystems are not intended to provide an indefinite archiving service so when a given file or directory is no longer needed, you need to move it to a more appropriate filesystem which may well mean your personal workstation or some other storage system under your control. Moving significant amounts of data between your workstation and a Compute Canada system or between two Compute Canada systems should generally be done using Globus.&lt;br /&gt;
&lt;br /&gt;
==== How to archive my data? ====&lt;br /&gt;
&lt;br /&gt;
===== Use tar to archive files and directories =====&lt;br /&gt;
&lt;br /&gt;
The primary archiving utility on all Linux and Unix-like systems is the [https://www.gnu.org/software/tar/manual/tar.html tar] command. It will bundle a bunch of files or directories together and generate a single file, called an &amp;#039;&amp;#039;archive file&amp;#039;&amp;#039; or &amp;#039;&amp;#039;tar-file&amp;#039;&amp;#039;. By convention an archive file has &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; as the file name extension. When you archive a directory with &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, it will, by default, include all the files and sub-directories contained within it, and sub-sub-directories contained in those, and so on. So the command &amp;lt;code&amp;gt;tar --create --file project1.tar project1&amp;lt;/code&amp;gt; will pack all the content of directory &amp;#039;&amp;#039;project1&amp;#039;&amp;#039; into the file &amp;#039;&amp;#039;project1.tar&amp;#039;&amp;#039;. The original directory will remain unchanged, so this may double the amount of disk space occupied!&lt;br /&gt;
&lt;br /&gt;
You can extract files from an archive using the same command with a different option:&amp;lt;code&amp;gt;tar --extract --file project1.tar&amp;lt;/code&amp;gt;. If there is no directory with the original name, it will be created. If a directory of that name exists and contains files of the same names as in the archive file, they will be overwritten. Another option can be added to specify the destination directory where to extract the archive&amp;#039;s content.   &lt;br /&gt;
&lt;br /&gt;
===== Compress and uncompress tar files =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; archiving utility can compress an archive file at the same time it creates it. There are a number of compression methods to choose from. We recommend either &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;, which can be used as follows:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ tar --create --xz --file project1.tar.xz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --xz --file project1.tar.xz&lt;br /&gt;
 [user_name@localhost]$ tar --create --gzip --file project1.tar.gz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --gzip --file project1.tar.gz&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;code&amp;gt;--xz&amp;lt;/code&amp;gt; will produce a smaller compressed file (a &amp;quot;better compression ratio&amp;quot;) but takes longer and uses more RAM while working. &amp;lt;code&amp;gt;--gzip&amp;lt;/code&amp;gt; does not typically compress as small, but may be used if you encounter difficulties due to insufficient memory or excessive run time during &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt;. A third option, &amp;lt;code&amp;gt;--bzip2&amp;lt;/code&amp;gt;, is also available, that typically does not compress as small as &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; but takes longer than &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt; first without compression and then use the commands &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; in a separate step, although there is rarely a reason to do so. Similarly, you can run &amp;lt;code&amp;gt;xz -d&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip -d&amp;lt;/code&amp;gt; to decompress an archive file before running &amp;lt;code&amp;gt;tar --extract&amp;lt;/code&amp;gt;, but again there is rarely a reason to do so.&lt;br /&gt;
&lt;br /&gt;
The commands &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; can be used to compress any file, not just archive files:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ gzip bigfile&lt;br /&gt;
 [user_name@localhost]$ xz bigfile&lt;br /&gt;
&lt;br /&gt;
These commands will produce the files &amp;lt;code&amp;gt;bigfile.gz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigfile.xz&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
=====Archival Storage=====&lt;br /&gt;
&lt;br /&gt;
On Graham, files copied to ~/nearline will be subsequently moved to offline (tape-based) storage. See [https://docs.computecanada.ca/wiki/Using_nearline_storage this link] for more details.&lt;br /&gt;
&lt;br /&gt;
==== How can I check the hidden files in directory? ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;.&amp;quot; at the beginning of the name means that the file is &amp;quot;hidden&amp;quot;. You have to use the -a option with ls to see it. I.e. &amp;lt;code&amp;gt;ls -a &amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
If you want to display only the hidden files then type:&lt;br /&gt;
 ls -d .*&lt;br /&gt;
&lt;br /&gt;
Note: there is an alias which is loaded from /etc/bashrc (see your .bashrc file). The alias is defined by alias &amp;lt;code&amp;gt; l.=&amp;#039;ls -d .* --color=auto&amp;#039; &amp;lt;/code&amp;gt; and if you type:&lt;br /&gt;
 l.&lt;br /&gt;
you will also display only the hidden files.&lt;br /&gt;
&lt;br /&gt;
==== How can I count the number of files in a directory? ====&lt;br /&gt;
&lt;br /&gt;
One can use the following command to count the number of files in a directory (in this example, your /work directory):&lt;br /&gt;
&lt;br /&gt;
 find /home/$USER -type f   | wc -l&lt;br /&gt;
&lt;br /&gt;
It is always a good idea to [[Knowledge_Base#How_to_archive_my_data.3F|archive]] and/or compress files that are no longer needed on the filesystem (see [https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_to_organize_a_large_number_of_files.3F below]).  This helps minimize one&amp;#039;s footprint on the filesystem and as such the impact they have on other users of the shared resource.&lt;br /&gt;
&lt;br /&gt;
==== How to organize a large number of files? ====&lt;br /&gt;
&lt;br /&gt;
With parallel cluster filesystems, you will get best I/O performance writing data to a small number of large files. Since all metadata operations on each of our parallel filesystems are handled by a single file server, depending on how many files are being accessed the server can become overwhelmed leading to poor overall I/O performance for all users. If your workflow involves storing data in a large number of files, it is best to pack these files into a small number of larger archives, e.g. using tar command&lt;br /&gt;
&lt;br /&gt;
 tar cvf archiveFile.tar directoryToArchive&lt;br /&gt;
&lt;br /&gt;
For better performance with many files inside your archive, we recommend to use DAR (Disk ARchive utility), which is a disk analog of tar (Tape ARchive).  Dar can extract files from anywhere in the archive much faster than tar. The dar command is available by default on sharcnet systems. It can be used to pack files into a dar archive by doing something like: &lt;br /&gt;
&lt;br /&gt;
 dar -s 1G -w -c archiveFile -g directoryToArchive&lt;br /&gt;
&lt;br /&gt;
In this example we split the archive into 1GB chunks, and the archive files will be named archiveFile.1.dar, archiveFile.2.dar, and so on. To list the contents of the archive, you can type:&lt;br /&gt;
&lt;br /&gt;
 dar -l archiveFile&lt;br /&gt;
&lt;br /&gt;
To temporarily extract files for post-processing into current directory, you would type:&lt;br /&gt;
&lt;br /&gt;
 dar -R . -O -x archiveFile -v -g pathToYourFile/fileToExtract&lt;br /&gt;
&lt;br /&gt;
=== I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host ===&lt;br /&gt;
&lt;br /&gt;
The most likely cause of this behaviour is repeated failed login attempts.  Part of our security policies involves blocking the IP address of machines that attempt multiple logins with incorrect passwords over a short period of time---many brute-force attacks on systems do exactly this: looking for poor passwords, badly configured accounts, etc.  Unfortunately, it isn&amp;#039;t uncommon for a user to forget their password and make repeated login attempts with incorrect passwords and end up with that machine blacklisted and unable to connect at all.&lt;br /&gt;
&lt;br /&gt;
A temporary solution is simply to attempt to login from another machine.  If you have access to another machine at your site, you can shell to that machine first, and then shell to the SHARCNET system (as that machine&amp;#039;s IP shouldn&amp;#039;t be blacklisted).  In order to have your machine unblocked, you will have to email to [mailto:support@computecanada.ca support@computecanada.ca] as a system administrator must manually intervene in order to fix it.&lt;br /&gt;
&lt;br /&gt;
NOTE: there are other situations that can produce this message, however they are rarer and more transient.  If you are unable to log in from one machine, but can from another, it is most likely the IP blacklisting that is the problem and the above will provide a temporary work-around while your problem ticket is processed.&lt;br /&gt;
&lt;br /&gt;
=== I am unable to ssh/scp from SHARCNET to my local computer ===&lt;br /&gt;
&lt;br /&gt;
Most campus networks are behind some sort of firewall.  If you can ssh out to SHARCNET, but cannot establish a connection in the other direction, then you are probably behind a firewall and should speak with your local system administrator or campus IT department to determine if there are any exceptions or workarounds in place.&lt;br /&gt;
&lt;br /&gt;
=== SSH tells me SOMEONE IS DOING SOMETHING NASTY!? ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please first read the following:&lt;br /&gt;
&lt;br /&gt;
https://docs.computecanada.ca/wiki/SSH_security_improvements&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suppose you attempt to login to SHARCNET, but instead get an alarming message like this:&lt;br /&gt;
&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that the RSA host key has just been changed.&lt;br /&gt;
 The fingerprint for the RSA key sent by the remote host is&lt;br /&gt;
 fe:65:ab:89:9a:23:34:5a:50:1e:05:d6:bf:ec:da:67.&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending key in /home/user/.ssh/known_hosts:42&lt;br /&gt;
 RSA host key for requin has changed and you have requested strict checking.&lt;br /&gt;
 Host key verification failed. &lt;br /&gt;
&lt;br /&gt;
SSH begins a connection by verifying that the host you&amp;#039;re connecting to is authentic. It does this by caching the hosts&amp;#039;s &amp;quot;hostkey&amp;quot; in your  &amp;lt;tt&amp;gt;~/.ssh/known_hosts&amp;lt;/tt&amp;gt; file. At times, a hostkey may be changed legitimately; when this happens, you may see such a message. It&amp;#039;s a good idea to verify this with us, you may be able to check the fingerprint yourself by logging into another sharcnet system and running:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub &lt;br /&gt;
&lt;br /&gt;
If the fingerprint is OK, the normal way to fix the problem is to simply remove the old hostkey from your &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. On machines with commandline SSH, you can do this with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -R thehostname&lt;br /&gt;
&lt;br /&gt;
You can use your choice of editor if you&amp;#039;re comfortable doing so (it&amp;#039;s a plain text file, but has long lines). On a unix-compatible machine, you can also use the following very small script (Substitute the line(s) printed in the warning message illustrated above for &amp;#039;42&amp;#039; here.):&lt;br /&gt;
&lt;br /&gt;
 perl -pi -e &amp;#039;undef $_ if (++$line == 42)&amp;#039; ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
Another solution is brute-force: remove the whole &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. This throws away any authentication checking, and afterwards, your first connection to any machine will prompt you to accept a newly discovered host key.&lt;br /&gt;
&lt;br /&gt;
=== Ssh works, but scp doesn&amp;#039;t! ===&lt;br /&gt;
&lt;br /&gt;
If you can &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; to a cluster successfully, but cannot &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to to it, the problem is likely that your login scripts print unexpected messages which confuse &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; is based on the same &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, but assumes that the connection is &amp;quot;clean&amp;quot;: that is, that it does not produce any un-asked-for content. If you have something like:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; will be confused by the salutation. To avoid this, simply ensure that the message is only printed on an interactive login:&lt;br /&gt;
&lt;br /&gt;
 if [ -t 0 ]; then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
or in csh/tcsh syntax:&lt;br /&gt;
&lt;br /&gt;
 if ( -t 0 ) then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
=== How do I edit my program on a cluster? ===&lt;br /&gt;
&lt;br /&gt;
We provide a variety of editors, such as the traditional text-mode &amp;lt;tt&amp;gt;emacs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; (vim), as well as a simpler one called &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;. If you have X on your desktop (and tunneled through SSH), you can use the GUI versions (&amp;lt;tt&amp;gt;xemacs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If your desktop supports FUSE, it&amp;#039;s very convenient to simply mount your home tree like this:&lt;br /&gt;
 mkdir sharcnet&lt;br /&gt;
 sshfs graham.computecanada.ca: sharcnet&lt;br /&gt;
you can then use any local editor of your choice.&lt;br /&gt;
&lt;br /&gt;
If you run emacs on your desktop, you can also edit a remote file from within your local emacs client using [http://www.gnu.org/software/tramp Tramp], opening and saving a file as /username@cluster.computecanada.ca:path/file.&lt;br /&gt;
&lt;br /&gt;
== Research at SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== I have a research project I would like to collaborate on with SHARCNET, who should I talk to? ===&lt;br /&gt;
&lt;br /&gt;
You may contact [mailto:barb@sharcnet.ca SHARCNET head office] or contact members of the [https://www.sharcnet.ca/my/contact/directory#techteam SHARCNET technical staff].&lt;br /&gt;
&lt;br /&gt;
=== How can I contribute compute resources to SHARCNET so that other researchers can share it? ===&lt;br /&gt;
&lt;br /&gt;
Most people&amp;#039;s research is &amp;quot;bursty&amp;quot; - there are usually sparse periods of time when some computation is urgently needed, and other periods when there is less demand. One problem with this is that if you purchase the equipment you need to meet your &amp;quot;burst&amp;quot; needs, it&amp;#039;ll probably sit, underutilized, during other times.&lt;br /&gt;
&lt;br /&gt;
An alternative is to donate control of this equipment to SHARCNET, and let us arrange for other users to use it when you are not. We prefer to be involved in the selection and configuration of such equipment. Our promise to contributors is that as much as possible, they should obtain as much benefit from the cluster as if it were not shared. Owners get preferential access. Naturally, owners are also able to burst to higher peak usage, since their equipment has been pooled with other contributions. (Technically, SHARCNET cannot itself own such equipment — it remains owned by the institution in question, and will be returned to the contributor upon request.) If you think this model will also work for you and you would like to contribute your computational resource to help the research community at SHARCNET, you can contact us for such arrangement.&lt;br /&gt;
&lt;br /&gt;
=== I do not know much about computation, nor is it my research interest. But I am interested in getting my research done faster with the help of the high performance computing technology. In other words, I do not care about the process and mechanism, but only the final results. Can SHARCNET provide this type of help? ===&lt;br /&gt;
&lt;br /&gt;
We will be happy to bring the technology of high performance computing to you to accelerate your research, if at all possible. If you would like to discuss your plan with us, please feel free to contact our [https://www.sharcnet.ca/my/contact/directory#techteam high performance computing specialists]. They will be happy to listen to your needs and are ready to provide appropriate suggestions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET participates in the Compute Canada NRAC (National Resource Allocation Competition) and provides a continual competition for groups that require more than the default level of access to our resources.  Please see [[Dedicated Resources]] for further information.&lt;br /&gt;
&lt;br /&gt;
=== I heard SHARCNET offers fellowships, where can I get more information? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET no longer actively runs a fellowship program.  You may find information regarding past fellowships and other dedicated resource opportunities on the [https://www.sharcnet.ca/my/research/fellowships Research Fellowships page] of the web portal.&lt;br /&gt;
&lt;br /&gt;
=== I would like to do some research at SHARCNET as a visiting scholar, how should I apply? ===&lt;br /&gt;
&lt;br /&gt;
In general, you will need to find a hosting department or a person affiliated with one of the SHARCNET institutions. You may also [http://www.sharcnet.ca/my/contact contact us] directly for more specific information.&lt;br /&gt;
&lt;br /&gt;
=== I would like to send my students to SHARCNET to do some work for me. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
See above.&lt;br /&gt;
&lt;br /&gt;
== Contacting SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for research, academic exchanges, and technical issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for business development, education and other issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact a specific staff member at SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
See [https://www.sharcnet.ca/my/contact/directory staff directory] for contact information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Acknowledge SHARCNET in Publications ==&lt;br /&gt;
&lt;br /&gt;
=== How do I acknowledge SHARCNET in my publications? ===&lt;br /&gt;
&lt;br /&gt;
We recommend one cite the following:&lt;br /&gt;
&lt;br /&gt;
 This work was made possible by the facilities of the Shared Hierarchical &lt;br /&gt;
 Academic Research Computing Network (SHARCNET:www.sharcnet.ca) and Digital Research Alliance of Canada (https://alliancecan.ca/en).&lt;br /&gt;
&lt;br /&gt;
=== I&amp;#039;ve seen different spellings of the name, what is the standard spelling of SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
We suggest the spelling SHARCNET, all in upper case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What types of research programs / support are provided to the research community? ==&lt;br /&gt;
&lt;br /&gt;
Our overall intent is to provide support that can both respond to the range of needs that the user community presents and help to increase the sophistication of the community and enable new and larger-in-scope applications making use of SHARCNET&amp;#039;s HPC facilities. The range of support can perhaps best be understood in terms of a pyramid:&lt;br /&gt;
&lt;br /&gt;
=== Level 1 ===&lt;br /&gt;
&lt;br /&gt;
At the apex of the pyramid, SHARCNET supports a small number of projects with dedicated programmer support. The intent is to enable projects that will have a lasting impact and may lead to a &amp;quot;step change&amp;quot; in the way research is done at SHARCNET. Inter-disciplinary and inter-institutional projects are particularly welcomed. For the latest information about the program, including application guidelines, please see the  [https://www.sharcnet.ca/my/research/programming Programming Competition] page in our web portal.&lt;br /&gt;
&lt;br /&gt;
=== Level 2 ===&lt;br /&gt;
&lt;br /&gt;
The middle layers of support are provided through a number of initiatives.&lt;br /&gt;
&lt;br /&gt;
These include:&lt;br /&gt;
* Programming support of more modest duration (several days to one month engagement, usually part time)&lt;br /&gt;
* Training on a variety of topics through [https://www.sharcnet.ca/help/index.php/Training workshops, seminars and online training materials]&lt;br /&gt;
* Consultation. This may include user-initiated interactions on particular programs, algorithms, techniques, debugging, optimization etc., as well as unsolicited help to ensure effective use of SHARCNET systems&lt;br /&gt;
* Site Leaders play an important role in working with the community to help researchers connect with SHARCNET staff and to obtain appropriate help and support.&lt;br /&gt;
&lt;br /&gt;
=== Level 3 ===&lt;br /&gt;
&lt;br /&gt;
The base level of the pyramid handles the very large number of small requests that are essential to keeping the user community working effectively with the infrastructure on a day-to-day basis. Several of these can be answered by this FAQ; many of the issues are presented through the [https://www.sharcnet.ca/help/index.php/Knowledge_Base#Compute_Canada_Problem_Ticket_System ticketing system]. The support is largely problem oriented with each problem being time limited.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=937</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=937"/>
		<updated>2024-09-17T17:21:23Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* Getting Help */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Sharcnet_logo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== About SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== What is SHARCNET? ===&lt;br /&gt;
SHARCNET stands for Shared Hierarchical Academic Research Computing Network. Established in 2000, SHARCNET is the largest high performance computing consortium in Canada, involving 19 universities and colleges across southern, central and northern Ontario.&lt;br /&gt;
&lt;br /&gt;
SHARCNET is a member consortium in the [https://alliancecan.ca/en Digital Research Alliance of Canada (Alliance)]  national HPC platform.&lt;br /&gt;
&lt;br /&gt;
=== Where is SHARCNET? ===&lt;br /&gt;
The [http://www.sharcnet.ca/my/contact main office] of SHARCNET is located in the Western Science Centre at [http://www.uwo.ca/ The University of Western Ontario].&lt;br /&gt;
&lt;br /&gt;
=== What does SHARCNET have? ===&lt;br /&gt;
The primary SHARCNET compute system is [https://docs.computecanada.ca/wiki/Graham Graham heterogeneous cluster] located at the University of Waterloo.  It is named after Wes Graham, the first director of the Computing Centre at Waterloo.  It consists of 41,548 cores and 520 GPU devices, spread across 1,185 nodes of different configurations.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with SHARCNET? ===&lt;br /&gt;
If you have a program that takes months to run on your PC, you could probably run it within a few hours using hundreds of processors on SHARCNET / Alliance, provided your program is inherently parallelisable. If you have hundreds or thousands of test cases to run through on your PC or computers in your lab, then with hundreds of processors running those cases independently will significantly reduce your test cycles.&lt;br /&gt;
&lt;br /&gt;
=== Who is running SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
The daily operation and development of SHARCNET computational facilities is managed by a group of highly qualified system administrators. In addition, we have a team of high performance technical computing consultants, who are responsible for technical support on libraries, programming and application analysis.&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET? ===&lt;br /&gt;
For technical inquiries, you may send E-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] or [mailto:help@sharcnet.ca help@sharcnet.ca], or [https://www.sharcnet.ca/my/contact/directory#techteam contact your local system administrator or HPC specialist]. For general inquiries, you may contact the SHARCNET [http://www.sharcnet.ca/my/contact main office].&lt;br /&gt;
&lt;br /&gt;
== Getting an Account with SHARCNET and Related Issues ==&lt;br /&gt;
&lt;br /&gt;
To use SHARCNET (and any other national facilities in Alliance) one has to [https://www.alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account apply for an Alliance account].&lt;br /&gt;
&lt;br /&gt;
== Getting Help ==&lt;br /&gt;
&lt;br /&gt;
=== I have encountered a problem while using an Alliance /SHARCNET system and need help, who should I talk to? ===&lt;br /&gt;
We encourage you to use the problem ticketing system (described in detail [[FAQ#Alliance_Problem_Ticket_System|below]]) .  This is the most efficient way of reporting a problem.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the [https://www.sharcnet.ca/my/contact/directory directory] page.&lt;br /&gt;
&lt;br /&gt;
=== How long should I expect to wait for support? ===&lt;br /&gt;
Unfortunately Alliance/SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week.  User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .  &lt;br /&gt;
&lt;br /&gt;
Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.  &lt;br /&gt;
&lt;br /&gt;
=== Alliance Problem Ticket System ===&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;problem ticket system&amp;quot;? ====&lt;br /&gt;
&lt;br /&gt;
This is a system that allows anyone with an Alliance account to start a persistent email thread that is referred to as a &amp;quot;problem ticket&amp;quot;.    When a user submits a new ticket it will be brought to the attention of an appropriate and available Alliance/SHARCNET staff member for resolution.  &lt;br /&gt;
&lt;br /&gt;
You interact with the ticket system entirely via email.&lt;br /&gt;
&lt;br /&gt;
==== What do I need to specify in a ticket ? ====&lt;br /&gt;
&lt;br /&gt;
To help us address your question faster, please try to do the following when submitting a ticket:&lt;br /&gt;
&lt;br /&gt;
#specify which of our systems is involved &lt;br /&gt;
#if the problem pertains to a job, then report the &amp;lt;u&amp;gt;jobid&amp;lt;/u&amp;gt; associated with the job; this is an integer that is returned by the scheduler when you submit the job&lt;br /&gt;
#report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem; if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem&lt;br /&gt;
#if you&amp;#039;d like for a particular staff member to be aware of the ticket, mention them&lt;br /&gt;
&lt;br /&gt;
==== How do I submit a ticket? ====&lt;br /&gt;
&lt;br /&gt;
In general, you can submit a new ticket by emailing  [mailto:support@computecanada.ca support@computecanada.ca]  with the email address associated with your Alliance account.  If you are using another email address, please provide your full name, your Alliance default username (if available) and your university or institution.&lt;br /&gt;
&lt;br /&gt;
If you like, you can also target your inquiry more specifically, by using the following addresses to submit your ticket:&lt;br /&gt;
&lt;br /&gt;
* [mailto:help@sharcnet.ca help@sharcnet.ca] - questions specific to SHARCNET, for example relating to contributed SHARCNET systems&lt;br /&gt;
* [mailto:globus@computecanada.ca globus@computecanada.ca] -- Questions about [[Globus]] file transfer services&lt;br /&gt;
* [mailto:cloud@computecanada.ca cloud@computecanada.ca] -- Questions about using Alliance cloud resources&lt;br /&gt;
* [mailto:accounts@computecanada.ca accounts@computecanada.ca] -- Questions about Alliance accounts&lt;br /&gt;
* [mailto:renewals@computecanada.ca renewals@computecanada.ca] -- Questions about Alliance account renewals&lt;br /&gt;
&lt;br /&gt;
=== I am new to parallel programming, can you help me get started with my project? ===&lt;br /&gt;
Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research. If your programming project would involve a significant staff time, you should consider applying for Dedicated Programming support. (We run the competition annually; see https://www.sharcnet.ca/my/research/programming).&lt;br /&gt;
&lt;br /&gt;
=== Can you install a package on a cluster for me? ===&lt;br /&gt;
Certainly.  We suggest you make the request by sending e-mail to [mailto:support@computecanada.ca support@computecanada.ca] with the specific request.&lt;br /&gt;
&lt;br /&gt;
=== I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that? ===&lt;br /&gt;
If you tell us what you want, we may be able to help you out.&lt;br /&gt;
&lt;br /&gt;
=== Does SHARCNET provide any training on programming and using the systems? ===&lt;br /&gt;
&lt;br /&gt;
Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every summer (usually late May to early June), SHARCNET holds [https://www.sharcnet.ca/help/index.php/Summer_Schools an annual HPC Summer School] with a variety of in-depth, hands-on workshops. &lt;br /&gt;
&lt;br /&gt;
SHARCNET also offers a series of online seminars (so-called &amp;quot;General interest webinars&amp;quot;), typically delivered every second Wednesday at lunch time.  These are announced via the SHARCNET events mailing list and one can see the schedule at the [https://www.sharcnet.ca/my/news/calendar SHARCNET event calendar].  Past seminars are recorded and posted on [http://youtube.sharcnet.ca our youtube channel]. A full listing of the past webinars is available on the [https://helpwiki.sharcnet.ca/wiki/Online_Seminars Online Seminars] page.&lt;br /&gt;
&lt;br /&gt;
=== Attending SHARCNET Webinars ===&lt;br /&gt;
{{:Attending SHARCNET Webinars}}&lt;br /&gt;
&lt;br /&gt;
== Logging in to Systems, Transferring and Editing Files ==&lt;br /&gt;
&lt;br /&gt;
=== How do I login to SHARCNET? ===&lt;br /&gt;
You access the SHARCNET clusters using ssh.  For Graham and other national systems Compute Canada credentials are required.  For the remaining (&amp;quot;Legacy&amp;quot;) systems, you will require SHARCNET credentials (submit a ticket to help@sharcnet.ca if you have questions).&lt;br /&gt;
&lt;br /&gt;
====Unix/Linux/OS X====&lt;br /&gt;
To login to a system, you need to use an [http://www.openssh.com/ Secure Shell (SSH)] connection. If you are logging in from a UNIX-based machine, make sure it has an SSH client (ssh) installed (this is almost always the case on UNIX/Linux/OS X). If you have the same login name on both your local system and SHARCNET, and you want to login to, say, &amp;lt;tt&amp;gt;graham&amp;lt;/tt&amp;gt;, you may use the command:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
If your Compute Canada username is different from the username on your local systems, then you may use either of the following forms:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.computecanada.ca -l username&lt;br /&gt;
 ssh username@graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
If you want to establish an X window connection so that you can use graphics applications such as &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ddt&amp;lt;/tt&amp;gt;, you can add a &amp;lt;tt&amp;gt;-Y&amp;lt;/tt&amp;gt; to the command:&lt;br /&gt;
&lt;br /&gt;
 ssh -Y username@graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
This will automatically set the X DISPLAY variable when you login.&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
If you are logging from a computer running Windows and need some pointers we recommend consulting our [[SSH]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between Login Nodes and Compute Nodes? ===&lt;br /&gt;
====Login Nodes====&lt;br /&gt;
&lt;br /&gt;
Most of our clusters have distinct &amp;#039;&amp;#039;login nodes&amp;#039;&amp;#039; associated with them that you are automatically redirected to when you login to the cluster (some systems are directly logged into, eg. SMPs and smaller specialty systems).  You can use these to do most of your work preparing for jobs (compiling, editing configuration files) and other low-intensity tasks like moving and copying files.  &lt;br /&gt;
&lt;br /&gt;
You can also use them for other quick tasks, like simple post-processing, but any significant work should be submitted as a job to the compute nodes.  On most login nodes, each process is limited to 1 cpu-hour; this will be noticable if you perform anything compute-intensive, and can affect IO-oriented activity as well (such as very large &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; operations.)&lt;br /&gt;
&lt;br /&gt;
=== How can I suspend and resume my session? ===&lt;br /&gt;
&lt;br /&gt;
The program screen can start persistent terminals from which you can detach and reattach.  The simplest use of screen is&lt;br /&gt;
&lt;br /&gt;
 screen -dR&lt;br /&gt;
&lt;br /&gt;
which will either reattach you to any existing session or create a new one if one doesn&amp;#039;t exist.  To terminate the current screen session, type &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;.  To detach manually (you are automatically detached if the connection is lost) press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;d&amp;#039;&amp;#039;, you can the resume later as above (ideal for running background jobs).  Note that &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; is screen&amp;#039;s escape sequence, so you have to do &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;a&amp;#039;&amp;#039; to get the regular effect of pressing &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; inside a screen session (e.g., moving the cursor to the start of the line in a shell).&lt;br /&gt;
&lt;br /&gt;
For a list of other &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; key sequences, press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;?&amp;#039;&amp;#039;.  For further details and  command line options, see the [http://www.gnu.org/software/screen/manual/screen.html screen manual] (or type &amp;lt;tt&amp;gt;man screen&amp;lt;/tt&amp;gt; on any of the clusters).&lt;br /&gt;
&lt;br /&gt;
Other notes:&lt;br /&gt;
* If you want to create additional &amp;quot;text windows&amp;quot;, use Ctrl-A Ctrl-C. Remember to type &amp;quot;exit&amp;quot; to close it. &lt;br /&gt;
* To switch to a &amp;quot;text window&amp;quot; with a certain number, use Ctrl-A # (where # is 0 to 9).&lt;br /&gt;
* To see a list of window numbers use Ctrl-A w&lt;br /&gt;
* To be presented a list of windows and select one to use, use Ctrl-A &amp;quot; (This is handy if you&amp;#039;ve made too many windows.)&lt;br /&gt;
* If the program running in a screen &amp;quot;text window&amp;quot; refuses to die (i.e., it needs to be killed) you can use Ctrl-A K&lt;br /&gt;
* For brief help on keystrokes use Ctrl-A ?&lt;br /&gt;
* For extensive help, run &amp;quot;man screen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What operating systems are supported? ===&lt;br /&gt;
UNIX in general. Currently, Linux is the only operating system used within SHARCNET.&lt;br /&gt;
&lt;br /&gt;
=== What makes a cluster different than my UNIX workstation? ===&lt;br /&gt;
&lt;br /&gt;
If you are familiar with UNIX, then using a cluster is not much different from using a workstation. When you login to a cluster, you in fact only log in to one of the cluster nodes. In most cases, each cluster node is a physical machine, usually a server class machine, with one or several CPUs, that is more or less the same as a workstation you are familiar with. The difference is that these nodes are interconnected with special interconnect devices and the way you run your program is slightly different. Across SHARCNET clusters, you are not expected to run your program interactively. You will have to run your program through a queueing system. That also means where and when your program gets to run is not decided by you, but by the queueing system.&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Those primary programming languages such as C, C++, Fortran, and Python are supported. Other languages, such as Java, Pascal and Ada, are also supported, but with limited technical support from us. &lt;br /&gt;
&lt;br /&gt;
=== How do I organize my files? ===&lt;br /&gt;
[https://docs.computecanada.ca/wiki/Storage_and_file_management#Storage_types Main file systems on our National systems.]&lt;br /&gt;
&lt;br /&gt;
==== How do I transfer files/directories to/from or between cluster? ====&lt;br /&gt;
&lt;br /&gt;
=====Unix/Linux=====&lt;br /&gt;
To transfer files to and from a cluster on a UNIX machine, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt;. For example, if you want to upload file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; to cluster graham from your machine &amp;lt;tt&amp;gt;myhost&amp;lt;/tt&amp;gt;, use the following command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp foo.f graham.computecanada.ca:&lt;br /&gt;
&lt;br /&gt;
assuming that your machine has &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; installed. If you want to transfer a file from Windows or Mac, you need have &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt; for Windows or Mac installed.&lt;br /&gt;
&lt;br /&gt;
If you transfer file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; between Compute Canada clusters, say from your home directory on cedar to your home directory on graham, simply use the following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp foo.f graham:/home/username/&lt;br /&gt;
&lt;br /&gt;
If you are transferring files between a UNIX machine and a cluster, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; command with &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; option. For instance, if you want to download the subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; in the directory &amp;lt;tt&amp;gt;project&amp;lt;/tt&amp;gt; in your home directory on graham to your local UNIX machine, on your local machine, use command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp -rp graham.sharcnet.ca:project/foo .&lt;br /&gt;
&lt;br /&gt;
Similarly, you can transfer the subdirectory between Compute Canada clusters. The following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp -r graham:/home/username/scratch/foo .&lt;br /&gt;
&lt;br /&gt;
will download subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; from your scratch directory on graham to your home directory on cedar (note that the prompt indicates you are currently logged on to cedar).&lt;br /&gt;
&lt;br /&gt;
The use of &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; option above will preserve the time stamp of each file. For Windows and Mac, you need to check the documentation of &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; for features. &amp;#039;&amp;#039;&amp;#039;Do not use -p switch with scp or cp commands on clusters, when the destination is your project space&amp;#039;&amp;#039;&amp;#039;, or you might run into the infamous [https://docs.computecanada.ca/wiki/Frequently_Asked_Questions#Disk_quota_exceeded_error_on_.2Fproject_filesystems Disk quota exceeded issue].&lt;br /&gt;
&lt;br /&gt;
You may also &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; and compress the entire directory and then use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to save bandwidth. In the above example, first you login to graham, then do the following&lt;br /&gt;
&lt;br /&gt;
 [username@gra-login2:~]$ cd project&lt;br /&gt;
 [username@gra-login2:~]$ tar -cvf foo.tar foo&lt;br /&gt;
 [username@gra-login2:~]$ gzip foo.tar&lt;br /&gt;
&lt;br /&gt;
Then on your local machine myhost, use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to copy the tar file&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp graham.computecanada.ca:project/foo.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Note for most Linux distributions, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; has an option &amp;lt;tt&amp;gt;-z&amp;lt;/tt&amp;gt; that will compress the &amp;lt;tt&amp;gt;.tar&amp;lt;/tt&amp;gt; file using &amp;lt;tt&amp;gt;gzip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Windows=====&lt;br /&gt;
You may read the instructions on using an ssh client. [[https://helpwiki.sharcnet.ca/wiki/SSH#Transfering_files_.28Secure_File_Transfer_Client.29]]&lt;br /&gt;
&lt;br /&gt;
====How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect?====&lt;br /&gt;
&lt;br /&gt;
In general, most users should be fine using &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to transfer data to and from SHARCNET systems.  If you need to transfer a lot of files &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; is recommended to ensure that you do not need to restart the transfer from scratch should there be a connection failure.  Although you can use &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to any cluster&amp;#039;s login node(s), it is often best to use gra-dtn1.computecanada.ca - it is dedicated to data transfer. &lt;br /&gt;
&lt;br /&gt;
In general one should expect the following transfer rates with &amp;#039;&amp;#039;scp&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* If you are connecting to SHARCNET through a Research/Education network site (ORION, CANARIE, Internet2) and are on a fast local network (this is the case for most users connecting from academic institutions) then you should be able to attain sustained transfer speeds in excess of 10MB/s.  If your path is all gigabit or better, you should be able to reach rates above 50 MB/s.&lt;br /&gt;
* If you are transferring data over the wider internet, you will not be able to attain these speeds, as all traffic that does not enter/exit SHARCNET via the R&amp;amp;E net is restricted to a limited-bandwidth commercial feed. In this case one will typically see rates on the order of 1MB/s or less.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that filesystems and networks are  shared resources and suffer from contention; if they are busy the above rates may not be attainable&lt;br /&gt;
&lt;br /&gt;
For transferring large amounts of data (many gigabytes) the best approach is to use the online tool [https://docs.computecanada.ca/wiki/Transferring_data#Globus_transfer Globus].&lt;br /&gt;
&lt;br /&gt;
==== How do I access the same file from different subdirectories on the same cluster ? ====&lt;br /&gt;
&lt;br /&gt;
You should not need copy large files on the same cluster (e.g. from one user to another&lt;br /&gt;
or using the same file in different subdirectories).  Instead of using&lt;br /&gt;
scp you might consider issuing a &amp;quot;soft link&amp;quot; command. Assume that you need access&lt;br /&gt;
to the file large_file1 in subdirectory /home/user1/subdir1 and you need it to be in your&lt;br /&gt;
subdirectory /home/my_account/my_dir from where you will invoke it under the name&lt;br /&gt;
my_large_file1.  Then go to that directory and type:&lt;br /&gt;
&lt;br /&gt;
 ln -s /home/user1/subdir1/large_file1    my_large_file1&lt;br /&gt;
&lt;br /&gt;
Another example, assume that in subdirectory /home/my_account/PROJ1 you have several&lt;br /&gt;
subdirectories called CASE1, CASE2, ...  In each subdirectory CASEn you have a slightly&lt;br /&gt;
different code but all of them process the same data file called test_data. Rather than&lt;br /&gt;
copying the test_data file into each CASEn subdirectory, place test_data above i.e.&lt;br /&gt;
in /home/my_account/PROJ1 and then in each CASEn subdirectory issue following &amp;quot;soft link&amp;quot;&lt;br /&gt;
command:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../test_data  test_data&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;soft links&amp;quot; can be removed by using the rm command. For example, to remove the soft link from&lt;br /&gt;
/home/my_account/PROJ1/CASE2 type following command from this subdirectory:&lt;br /&gt;
&lt;br /&gt;
 rm -rf test_data&lt;br /&gt;
&lt;br /&gt;
Typing above command from subdirectory /home/my_account/PROJ1 would remove the actual file and then&lt;br /&gt;
none of the CASEn subdirectories would have access to it.&lt;br /&gt;
&lt;br /&gt;
==== How are files deleted from the /home/userid/scratch filesystems? ====&lt;br /&gt;
&lt;br /&gt;
All files on /home/userid/scratch that are over 2 months old (not old in the common sense, please see below) are automatically deleted. Data needed for long term storage and reference should be kept in either /project, /nearline, or other archival storage areas. The scratch filesystem is checked at the end of the month for files which will be candidates for expiry on the 15th of the following month. On the first day of the month, a login message is posted and a notification e-mail is sent to all users who have at least one file which is a candidate for purging and containing the location of a file which lists all the candidates for purging.  On the 12th of the month, a second scan is run to check for files that will still expire on the 15th, and again, users with candidates for expiry are sent a second warning email.  Lastly, on the 15th, all files which are due for expiry are removed.&lt;br /&gt;
&lt;br /&gt;
An unconventional aspect of this system is that it does not determine the age of a file based on the file&amp;#039;s attributes, e.g., the standard dates reported by the &amp;lt;i&amp;gt;stat&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;find&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;ls&amp;lt;/i&amp;gt;, etc. commands.  (This is known as the &amp;quot;mtime&amp;quot; of the file, for &amp;quot;modification time&amp;quot;, and is frequently inaccurate.) The age of a file is determined based on whether or not its data contents (i.e., the information stored in the file) have changed or been accessed, and this age is stored externally to the file.  Only files where the contents have changed or accessed will have their age counter &amp;quot;reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A list of your candidate files for expiry can be found in /home/scratch_to_delete/$USER  (where $USER is your userid).&lt;br /&gt;
&lt;br /&gt;
===== How do I check the age of a file =====&lt;br /&gt;
We define a file&amp;#039;s age as the most recent of:&lt;br /&gt;
&lt;br /&gt;
 *the access time (atime) and&lt;br /&gt;
 *the change time (ctime)&lt;br /&gt;
&lt;br /&gt;
You can find the ctime of a file using&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lc &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while the atime can be obtained with the command&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lu &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do not use the modify time (mtime) of the file because it can be modified by the user or by other programs to display incorrect information.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, simple use of the atime property would be sufficient, as it is updated by the system in sync with the ctime. However, userspace programs are able to alter atime, potentially to times in the past, which could result in early expiration of a file. The use of ctime as a fallback guards against this undesirable behaviour.&lt;br /&gt;
&lt;br /&gt;
It is also your responsibility to manage your stored data: most of the filesystems are not intended to provide an indefinite archiving service so when a given file or directory is no longer needed, you need to move it to a more appropriate filesystem which may well mean your personal workstation or some other storage system under your control. Moving significant amounts of data between your workstation and a Compute Canada system or between two Compute Canada systems should generally be done using Globus.&lt;br /&gt;
&lt;br /&gt;
==== How to archive my data? ====&lt;br /&gt;
&lt;br /&gt;
===== Use tar to archive files and directories =====&lt;br /&gt;
&lt;br /&gt;
The primary archiving utility on all Linux and Unix-like systems is the [https://www.gnu.org/software/tar/manual/tar.html tar] command. It will bundle a bunch of files or directories together and generate a single file, called an &amp;#039;&amp;#039;archive file&amp;#039;&amp;#039; or &amp;#039;&amp;#039;tar-file&amp;#039;&amp;#039;. By convention an archive file has &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; as the file name extension. When you archive a directory with &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, it will, by default, include all the files and sub-directories contained within it, and sub-sub-directories contained in those, and so on. So the command &amp;lt;code&amp;gt;tar --create --file project1.tar project1&amp;lt;/code&amp;gt; will pack all the content of directory &amp;#039;&amp;#039;project1&amp;#039;&amp;#039; into the file &amp;#039;&amp;#039;project1.tar&amp;#039;&amp;#039;. The original directory will remain unchanged, so this may double the amount of disk space occupied!&lt;br /&gt;
&lt;br /&gt;
You can extract files from an archive using the same command with a different option:&amp;lt;code&amp;gt;tar --extract --file project1.tar&amp;lt;/code&amp;gt;. If there is no directory with the original name, it will be created. If a directory of that name exists and contains files of the same names as in the archive file, they will be overwritten. Another option can be added to specify the destination directory where to extract the archive&amp;#039;s content.   &lt;br /&gt;
&lt;br /&gt;
===== Compress and uncompress tar files =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; archiving utility can compress an archive file at the same time it creates it. There are a number of compression methods to choose from. We recommend either &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;, which can be used as follows:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ tar --create --xz --file project1.tar.xz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --xz --file project1.tar.xz&lt;br /&gt;
 [user_name@localhost]$ tar --create --gzip --file project1.tar.gz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --gzip --file project1.tar.gz&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;code&amp;gt;--xz&amp;lt;/code&amp;gt; will produce a smaller compressed file (a &amp;quot;better compression ratio&amp;quot;) but takes longer and uses more RAM while working. &amp;lt;code&amp;gt;--gzip&amp;lt;/code&amp;gt; does not typically compress as small, but may be used if you encounter difficulties due to insufficient memory or excessive run time during &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt;. A third option, &amp;lt;code&amp;gt;--bzip2&amp;lt;/code&amp;gt;, is also available, that typically does not compress as small as &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; but takes longer than &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt; first without compression and then use the commands &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; in a separate step, although there is rarely a reason to do so. Similarly, you can run &amp;lt;code&amp;gt;xz -d&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip -d&amp;lt;/code&amp;gt; to decompress an archive file before running &amp;lt;code&amp;gt;tar --extract&amp;lt;/code&amp;gt;, but again there is rarely a reason to do so.&lt;br /&gt;
&lt;br /&gt;
The commands &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; can be used to compress any file, not just archive files:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ gzip bigfile&lt;br /&gt;
 [user_name@localhost]$ xz bigfile&lt;br /&gt;
&lt;br /&gt;
These commands will produce the files &amp;lt;code&amp;gt;bigfile.gz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigfile.xz&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
=====Archival Storage=====&lt;br /&gt;
&lt;br /&gt;
On Graham, files copied to ~/nearline will be subsequently moved to offline (tape-based) storage. See [https://docs.computecanada.ca/wiki/Using_nearline_storage this link] for more details.&lt;br /&gt;
&lt;br /&gt;
==== How can I check the hidden files in directory? ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;.&amp;quot; at the beginning of the name means that the file is &amp;quot;hidden&amp;quot;. You have to use the -a option with ls to see it. I.e. &amp;lt;code&amp;gt;ls -a &amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
If you want to display only the hidden files then type:&lt;br /&gt;
 ls -d .*&lt;br /&gt;
&lt;br /&gt;
Note: there is an alias which is loaded from /etc/bashrc (see your .bashrc file). The alias is defined by alias &amp;lt;code&amp;gt; l.=&amp;#039;ls -d .* --color=auto&amp;#039; &amp;lt;/code&amp;gt; and if you type:&lt;br /&gt;
 l.&lt;br /&gt;
you will also display only the hidden files.&lt;br /&gt;
&lt;br /&gt;
==== How can I count the number of files in a directory? ====&lt;br /&gt;
&lt;br /&gt;
One can use the following command to count the number of files in a directory (in this example, your /work directory):&lt;br /&gt;
&lt;br /&gt;
 find /home/$USER -type f   | wc -l&lt;br /&gt;
&lt;br /&gt;
It is always a good idea to [[Knowledge_Base#How_to_archive_my_data.3F|archive]] and/or compress files that are no longer needed on the filesystem (see [https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_to_organize_a_large_number_of_files.3F below]).  This helps minimize one&amp;#039;s footprint on the filesystem and as such the impact they have on other users of the shared resource.&lt;br /&gt;
&lt;br /&gt;
==== How to organize a large number of files? ====&lt;br /&gt;
&lt;br /&gt;
With parallel cluster filesystems, you will get best I/O performance writing data to a small number of large files. Since all metadata operations on each of our parallel filesystems are handled by a single file server, depending on how many files are being accessed the server can become overwhelmed leading to poor overall I/O performance for all users. If your workflow involves storing data in a large number of files, it is best to pack these files into a small number of larger archives, e.g. using tar command&lt;br /&gt;
&lt;br /&gt;
 tar cvf archiveFile.tar directoryToArchive&lt;br /&gt;
&lt;br /&gt;
For better performance with many files inside your archive, we recommend to use DAR (Disk ARchive utility), which is a disk analog of tar (Tape ARchive).  Dar can extract files from anywhere in the archive much faster than tar. The dar command is available by default on sharcnet systems. It can be used to pack files into a dar archive by doing something like: &lt;br /&gt;
&lt;br /&gt;
 dar -s 1G -w -c archiveFile -g directoryToArchive&lt;br /&gt;
&lt;br /&gt;
In this example we split the archive into 1GB chunks, and the archive files will be named archiveFile.1.dar, archiveFile.2.dar, and so on. To list the contents of the archive, you can type:&lt;br /&gt;
&lt;br /&gt;
 dar -l archiveFile&lt;br /&gt;
&lt;br /&gt;
To temporarily extract files for post-processing into current directory, you would type:&lt;br /&gt;
&lt;br /&gt;
 dar -R . -O -x archiveFile -v -g pathToYourFile/fileToExtract&lt;br /&gt;
&lt;br /&gt;
=== I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host ===&lt;br /&gt;
&lt;br /&gt;
The most likely cause of this behaviour is repeated failed login attempts.  Part of our security policies involves blocking the IP address of machines that attempt multiple logins with incorrect passwords over a short period of time---many brute-force attacks on systems do exactly this: looking for poor passwords, badly configured accounts, etc.  Unfortunately, it isn&amp;#039;t uncommon for a user to forget their password and make repeated login attempts with incorrect passwords and end up with that machine blacklisted and unable to connect at all.&lt;br /&gt;
&lt;br /&gt;
A temporary solution is simply to attempt to login from another machine.  If you have access to another machine at your site, you can shell to that machine first, and then shell to the SHARCNET system (as that machine&amp;#039;s IP shouldn&amp;#039;t be blacklisted).  In order to have your machine unblocked, you will have to email to [mailto:support@computecanada.ca support@computecanada.ca] as a system administrator must manually intervene in order to fix it.&lt;br /&gt;
&lt;br /&gt;
NOTE: there are other situations that can produce this message, however they are rarer and more transient.  If you are unable to log in from one machine, but can from another, it is most likely the IP blacklisting that is the problem and the above will provide a temporary work-around while your problem ticket is processed.&lt;br /&gt;
&lt;br /&gt;
=== I am unable to ssh/scp from SHARCNET to my local computer ===&lt;br /&gt;
&lt;br /&gt;
Most campus networks are behind some sort of firewall.  If you can ssh out to SHARCNET, but cannot establish a connection in the other direction, then you are probably behind a firewall and should speak with your local system administrator or campus IT department to determine if there are any exceptions or workarounds in place.&lt;br /&gt;
&lt;br /&gt;
=== SSH tells me SOMEONE IS DOING SOMETHING NASTY!? ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please first read the following:&lt;br /&gt;
&lt;br /&gt;
https://docs.computecanada.ca/wiki/SSH_security_improvements&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suppose you attempt to login to SHARCNET, but instead get an alarming message like this:&lt;br /&gt;
&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that the RSA host key has just been changed.&lt;br /&gt;
 The fingerprint for the RSA key sent by the remote host is&lt;br /&gt;
 fe:65:ab:89:9a:23:34:5a:50:1e:05:d6:bf:ec:da:67.&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending key in /home/user/.ssh/known_hosts:42&lt;br /&gt;
 RSA host key for requin has changed and you have requested strict checking.&lt;br /&gt;
 Host key verification failed. &lt;br /&gt;
&lt;br /&gt;
SSH begins a connection by verifying that the host you&amp;#039;re connecting to is authentic. It does this by caching the hosts&amp;#039;s &amp;quot;hostkey&amp;quot; in your  &amp;lt;tt&amp;gt;~/.ssh/known_hosts&amp;lt;/tt&amp;gt; file. At times, a hostkey may be changed legitimately; when this happens, you may see such a message. It&amp;#039;s a good idea to verify this with us, you may be able to check the fingerprint yourself by logging into another sharcnet system and running:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub &lt;br /&gt;
&lt;br /&gt;
If the fingerprint is OK, the normal way to fix the problem is to simply remove the old hostkey from your &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. On machines with commandline SSH, you can do this with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -R thehostname&lt;br /&gt;
&lt;br /&gt;
You can use your choice of editor if you&amp;#039;re comfortable doing so (it&amp;#039;s a plain text file, but has long lines). On a unix-compatible machine, you can also use the following very small script (Substitute the line(s) printed in the warning message illustrated above for &amp;#039;42&amp;#039; here.):&lt;br /&gt;
&lt;br /&gt;
 perl -pi -e &amp;#039;undef $_ if (++$line == 42)&amp;#039; ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
Another solution is brute-force: remove the whole &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. This throws away any authentication checking, and afterwards, your first connection to any machine will prompt you to accept a newly discovered host key.&lt;br /&gt;
&lt;br /&gt;
=== Ssh works, but scp doesn&amp;#039;t! ===&lt;br /&gt;
&lt;br /&gt;
If you can &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; to a cluster successfully, but cannot &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to to it, the problem is likely that your login scripts print unexpected messages which confuse &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; is based on the same &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, but assumes that the connection is &amp;quot;clean&amp;quot;: that is, that it does not produce any un-asked-for content. If you have something like:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; will be confused by the salutation. To avoid this, simply ensure that the message is only printed on an interactive login:&lt;br /&gt;
&lt;br /&gt;
 if [ -t 0 ]; then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
or in csh/tcsh syntax:&lt;br /&gt;
&lt;br /&gt;
 if ( -t 0 ) then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
=== How do I edit my program on a cluster? ===&lt;br /&gt;
&lt;br /&gt;
We provide a variety of editors, such as the traditional text-mode &amp;lt;tt&amp;gt;emacs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; (vim), as well as a simpler one called &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;. If you have X on your desktop (and tunneled through SSH), you can use the GUI versions (&amp;lt;tt&amp;gt;xemacs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If your desktop supports FUSE, it&amp;#039;s very convenient to simply mount your home tree like this:&lt;br /&gt;
 mkdir sharcnet&lt;br /&gt;
 sshfs graham.computecanada.ca: sharcnet&lt;br /&gt;
you can then use any local editor of your choice.&lt;br /&gt;
&lt;br /&gt;
If you run emacs on your desktop, you can also edit a remote file from within your local emacs client using [http://www.gnu.org/software/tramp Tramp], opening and saving a file as /username@cluster.computecanada.ca:path/file.&lt;br /&gt;
&lt;br /&gt;
== Research at SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== I have a research project I would like to collaborate on with SHARCNET, who should I talk to? ===&lt;br /&gt;
&lt;br /&gt;
You may contact [mailto:barb@sharcnet.ca SHARCNET head office] or contact members of the [https://www.sharcnet.ca/my/contact/directory#techteam SHARCNET technical staff].&lt;br /&gt;
&lt;br /&gt;
=== How can I contribute compute resources to SHARCNET so that other researchers can share it? ===&lt;br /&gt;
&lt;br /&gt;
Most people&amp;#039;s research is &amp;quot;bursty&amp;quot; - there are usually sparse periods of time when some computation is urgently needed, and other periods when there is less demand. One problem with this is that if you purchase the equipment you need to meet your &amp;quot;burst&amp;quot; needs, it&amp;#039;ll probably sit, underutilized, during other times.&lt;br /&gt;
&lt;br /&gt;
An alternative is to donate control of this equipment to SHARCNET, and let us arrange for other users to use it when you are not. We prefer to be involved in the selection and configuration of such equipment. Our promise to contributors is that as much as possible, they should obtain as much benefit from the cluster as if it were not shared. Owners get preferential access. Naturally, owners are also able to burst to higher peak usage, since their equipment has been pooled with other contributions. (Technically, SHARCNET cannot itself own such equipment — it remains owned by the institution in question, and will be returned to the contributor upon request.) If you think this model will also work for you and you would like to contribute your computational resource to help the research community at SHARCNET, you can contact us for such arrangement.&lt;br /&gt;
&lt;br /&gt;
=== I do not know much about computation, nor is it my research interest. But I am interested in getting my research done faster with the help of the high performance computing technology. In other words, I do not care about the process and mechanism, but only the final results. Can SHARCNET provide this type of help? ===&lt;br /&gt;
&lt;br /&gt;
We will be happy to bring the technology of high performance computing to you to accelerate your research, if at all possible. If you would like to discuss your plan with us, please feel free to contact our [https://www.sharcnet.ca/my/contact/directory#techteam high performance computing specialists]. They will be happy to listen to your needs and are ready to provide appropriate suggestions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET participates in the Compute Canada NRAC (National Resource Allocation Competition) and provides a continual competition for groups that require more than the default level of access to our resources.  Please see [[Dedicated Resources]] for further information.&lt;br /&gt;
&lt;br /&gt;
=== I heard SHARCNET offers fellowships, where can I get more information? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET no longer actively runs a fellowship program.  You may find information regarding past fellowships and other dedicated resource opportunities on the [https://www.sharcnet.ca/my/research/fellowships Research Fellowships page] of the web portal.&lt;br /&gt;
&lt;br /&gt;
=== I would like to do some research at SHARCNET as a visiting scholar, how should I apply? ===&lt;br /&gt;
&lt;br /&gt;
In general, you will need to find a hosting department or a person affiliated with one of the SHARCNET institutions. You may also [http://www.sharcnet.ca/my/contact contact us] directly for more specific information.&lt;br /&gt;
&lt;br /&gt;
=== I would like to send my students to SHARCNET to do some work for me. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
See above.&lt;br /&gt;
&lt;br /&gt;
== Contacting SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for research, academic exchanges, and technical issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for business development, education and other issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact a specific staff member at SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
See [https://www.sharcnet.ca/my/contact/directory staff directory] for contact information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Acknowledge SHARCNET in Publications ==&lt;br /&gt;
&lt;br /&gt;
=== How do I acknowledge SHARCNET in my publications? ===&lt;br /&gt;
&lt;br /&gt;
We recommend one cite the following:&lt;br /&gt;
&lt;br /&gt;
 This work was made possible by the facilities of the Shared Hierarchical &lt;br /&gt;
 Academic Research Computing Network (SHARCNET:www.sharcnet.ca) and Digital Research Alliance of Canada (https://alliancecan.ca/en).&lt;br /&gt;
&lt;br /&gt;
=== I&amp;#039;ve seen different spellings of the name, what is the standard spelling of SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
We suggest the spelling SHARCNET, all in upper case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What types of research programs / support are provided to the research community? ==&lt;br /&gt;
&lt;br /&gt;
Our overall intent is to provide support that can both respond to the range of needs that the user community presents and help to increase the sophistication of the community and enable new and larger-in-scope applications making use of SHARCNET&amp;#039;s HPC facilities. The range of support can perhaps best be understood in terms of a pyramid:&lt;br /&gt;
&lt;br /&gt;
=== Level 1 ===&lt;br /&gt;
&lt;br /&gt;
At the apex of the pyramid, SHARCNET supports a small number of projects with dedicated programmer support. The intent is to enable projects that will have a lasting impact and may lead to a &amp;quot;step change&amp;quot; in the way research is done at SHARCNET. Inter-disciplinary and inter-institutional projects are particularly welcomed. For the latest information about the program, including application guidelines, please see the  [https://www.sharcnet.ca/my/research/programming Programming Competition] page in our web portal.&lt;br /&gt;
&lt;br /&gt;
=== Level 2 ===&lt;br /&gt;
&lt;br /&gt;
The middle layers of support are provided through a number of initiatives.&lt;br /&gt;
&lt;br /&gt;
These include:&lt;br /&gt;
* Programming support of more modest duration (several days to one month engagement, usually part time)&lt;br /&gt;
* Training on a variety of topics through [https://www.sharcnet.ca/help/index.php/Training workshops, seminars and online training materials]&lt;br /&gt;
* Consultation. This may include user-initiated interactions on particular programs, algorithms, techniques, debugging, optimization etc., as well as unsolicited help to ensure effective use of SHARCNET systems&lt;br /&gt;
* Site Leaders play an important role in working with the community to help researchers connect with SHARCNET staff and to obtain appropriate help and support.&lt;br /&gt;
&lt;br /&gt;
=== Level 3 ===&lt;br /&gt;
&lt;br /&gt;
The base level of the pyramid handles the very large number of small requests that are essential to keeping the user community working effectively with the infrastructure on a day-to-day basis. Several of these can be answered by this FAQ; many of the issues are presented through the [https://www.sharcnet.ca/help/index.php/Knowledge_Base#Compute_Canada_Problem_Ticket_System ticketing system]. The support is largely problem oriented with each problem being time limited.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=936</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=936"/>
		<updated>2024-09-17T17:15:58Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* How do I contact SHARCNET? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Sharcnet_logo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== About SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== What is SHARCNET? ===&lt;br /&gt;
SHARCNET stands for Shared Hierarchical Academic Research Computing Network. Established in 2000, SHARCNET is the largest high performance computing consortium in Canada, involving 19 universities and colleges across southern, central and northern Ontario.&lt;br /&gt;
&lt;br /&gt;
SHARCNET is a member consortium in the [https://alliancecan.ca/en Digital Research Alliance of Canada (Alliance)]  national HPC platform.&lt;br /&gt;
&lt;br /&gt;
=== Where is SHARCNET? ===&lt;br /&gt;
The [http://www.sharcnet.ca/my/contact main office] of SHARCNET is located in the Western Science Centre at [http://www.uwo.ca/ The University of Western Ontario].&lt;br /&gt;
&lt;br /&gt;
=== What does SHARCNET have? ===&lt;br /&gt;
The primary SHARCNET compute system is [https://docs.computecanada.ca/wiki/Graham Graham heterogeneous cluster] located at the University of Waterloo.  It is named after Wes Graham, the first director of the Computing Centre at Waterloo.  It consists of 41,548 cores and 520 GPU devices, spread across 1,185 nodes of different configurations.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with SHARCNET? ===&lt;br /&gt;
If you have a program that takes months to run on your PC, you could probably run it within a few hours using hundreds of processors on SHARCNET / Alliance, provided your program is inherently parallelisable. If you have hundreds or thousands of test cases to run through on your PC or computers in your lab, then with hundreds of processors running those cases independently will significantly reduce your test cycles.&lt;br /&gt;
&lt;br /&gt;
=== Who is running SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
The daily operation and development of SHARCNET computational facilities is managed by a group of highly qualified system administrators. In addition, we have a team of high performance technical computing consultants, who are responsible for technical support on libraries, programming and application analysis.&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET? ===&lt;br /&gt;
For technical inquiries, you may send E-mail to [mailto:support@tech.alliancecan.ca support@tech.alliancecan.ca] or [mailto:help@sharcnet.ca help@sharcnet.ca], or [https://www.sharcnet.ca/my/contact/directory#techteam contact your local system administrator or HPC specialist]. For general inquiries, you may contact the SHARCNET [http://www.sharcnet.ca/my/contact main office].&lt;br /&gt;
&lt;br /&gt;
== Getting an Account with SHARCNET and Related Issues ==&lt;br /&gt;
&lt;br /&gt;
To use SHARCNET (and any other national facilities in Alliance) one has to [https://www.alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account apply for an Alliance account].&lt;br /&gt;
&lt;br /&gt;
== Getting Help ==&lt;br /&gt;
&lt;br /&gt;
=== I have encountered a problem while using an Alliance /SHARCNET system and need help, who should I talk to? ===&lt;br /&gt;
We encourage you to use the problem ticketing system (described in detail [[FAQ: Getting Help#Alliance Problem Ticket System|below]]) .  This is the most efficient way of reporting a problem.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the [https://www.sharcnet.ca/my/contact/directory directory] page.&lt;br /&gt;
&lt;br /&gt;
=== How long should I expect to wait for support? ===&lt;br /&gt;
Unfortunately Alliance/SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week.  User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .  &lt;br /&gt;
&lt;br /&gt;
Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.  &lt;br /&gt;
&lt;br /&gt;
=== Alliance Problem Ticket System ===&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;problem ticket system&amp;quot;? ====&lt;br /&gt;
&lt;br /&gt;
This is a system that allows anyone with an Alliance account to start a persistent email thread that is referred to as a &amp;quot;problem ticket&amp;quot;.    When a user submits a new ticket it will be brought to the attention of an appropriate and available Alliance/SHARCNET staff member for resolution.  &lt;br /&gt;
&lt;br /&gt;
You interact with the ticket system entirely via email.&lt;br /&gt;
&lt;br /&gt;
==== What do I need to specify in a ticket ? ====&lt;br /&gt;
&lt;br /&gt;
To help us address your question faster, please try to do the following when submitting a ticket:&lt;br /&gt;
&lt;br /&gt;
#specify which of our systems is involved &lt;br /&gt;
#if the problem pertains to a job, then report the &amp;lt;u&amp;gt;jobid&amp;lt;/u&amp;gt; associated with the job; this is an integer that is returned by the scheduler when you submit the job&lt;br /&gt;
#report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem; if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem&lt;br /&gt;
#if you&amp;#039;d like for a particular staff member to be aware of the ticket, mention them&lt;br /&gt;
&lt;br /&gt;
==== How do I submit a ticket? ====&lt;br /&gt;
&lt;br /&gt;
In general, you can submit a new ticket by emailing  [mailto:support@computecanada.ca support@computecanada.ca]  with the email address associated with your Alliance account.  If you are using another email address, please provide your full name, your Alliance default username (if available) and your university or institution.&lt;br /&gt;
&lt;br /&gt;
If you like, you can also target your inquiry more specifically, by using the following addresses to submit your ticket:&lt;br /&gt;
&lt;br /&gt;
* [mailto:help@sharcnet.ca help@sharcnet.ca] - questions specific to SHARCNET, for example relating to contributed SHARCNET systems&lt;br /&gt;
* [mailto:globus@computecanada.ca globus@computecanada.ca] -- Questions about [[Globus]] file transfer services&lt;br /&gt;
* [mailto:cloud@computecanada.ca cloud@computecanada.ca] -- Questions about using Alliance cloud resources&lt;br /&gt;
* [mailto:accounts@computecanada.ca accounts@computecanada.ca] -- Questions about Alliance accounts&lt;br /&gt;
* [mailto:renewals@computecanada.ca renewals@computecanada.ca] -- Questions about Alliance account renewals&lt;br /&gt;
&lt;br /&gt;
=== I am new to parallel programming, can you help me get started with my project? ===&lt;br /&gt;
Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research. If your programming project would involve a significant staff time, you should consider applying for Dedicated Programming support. (We run the competition annually; see https://www.sharcnet.ca/my/research/programming).&lt;br /&gt;
&lt;br /&gt;
=== Can you install a package on a cluster for me? ===&lt;br /&gt;
Certainly.  We suggest you make the request by sending e-mail to [mailto:support@computecanada.ca support@computecanada.ca] with the specific request.&lt;br /&gt;
&lt;br /&gt;
=== I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that? ===&lt;br /&gt;
If you tell us what you want, we may be able to help you out.&lt;br /&gt;
&lt;br /&gt;
=== Does SHARCNET provide any training on programming and using the systems? ===&lt;br /&gt;
&lt;br /&gt;
Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every summer (usually late May to early June), SHARCNET holds [https://www.sharcnet.ca/help/index.php/Summer_Schools an annual HPC Summer School] with a variety of in-depth, hands-on workshops. &lt;br /&gt;
&lt;br /&gt;
SHARCNET also offers a series of online seminars (so-called &amp;quot;General interest webinars&amp;quot;), typically delivered every second Wednesday at lunch time.  These are announced via the SHARCNET events mailing list and one can see the schedule at the [https://www.sharcnet.ca/my/news/calendar SHARCNET event calendar].  Past seminars are recorded and posted on [http://youtube.sharcnet.ca our youtube channel]. A full listing of the past webinars is available on the [https://helpwiki.sharcnet.ca/wiki/Online_Seminars Online Seminars] page.&lt;br /&gt;
&lt;br /&gt;
=== Attending SHARCNET Webinars ===&lt;br /&gt;
{{:Attending SHARCNET Webinars}}&lt;br /&gt;
&lt;br /&gt;
== Logging in to Systems, Transferring and Editing Files ==&lt;br /&gt;
&lt;br /&gt;
=== How do I login to SHARCNET? ===&lt;br /&gt;
You access the SHARCNET clusters using ssh.  For Graham and other national systems Compute Canada credentials are required.  For the remaining (&amp;quot;Legacy&amp;quot;) systems, you will require SHARCNET credentials (submit a ticket to help@sharcnet.ca if you have questions).&lt;br /&gt;
&lt;br /&gt;
====Unix/Linux/OS X====&lt;br /&gt;
To login to a system, you need to use an [http://www.openssh.com/ Secure Shell (SSH)] connection. If you are logging in from a UNIX-based machine, make sure it has an SSH client (ssh) installed (this is almost always the case on UNIX/Linux/OS X). If you have the same login name on both your local system and SHARCNET, and you want to login to, say, &amp;lt;tt&amp;gt;graham&amp;lt;/tt&amp;gt;, you may use the command:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
If your Compute Canada username is different from the username on your local systems, then you may use either of the following forms:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.computecanada.ca -l username&lt;br /&gt;
 ssh username@graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
If you want to establish an X window connection so that you can use graphics applications such as &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ddt&amp;lt;/tt&amp;gt;, you can add a &amp;lt;tt&amp;gt;-Y&amp;lt;/tt&amp;gt; to the command:&lt;br /&gt;
&lt;br /&gt;
 ssh -Y username@graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
This will automatically set the X DISPLAY variable when you login.&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
If you are logging from a computer running Windows and need some pointers we recommend consulting our [[SSH]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between Login Nodes and Compute Nodes? ===&lt;br /&gt;
====Login Nodes====&lt;br /&gt;
&lt;br /&gt;
Most of our clusters have distinct &amp;#039;&amp;#039;login nodes&amp;#039;&amp;#039; associated with them that you are automatically redirected to when you login to the cluster (some systems are directly logged into, eg. SMPs and smaller specialty systems).  You can use these to do most of your work preparing for jobs (compiling, editing configuration files) and other low-intensity tasks like moving and copying files.  &lt;br /&gt;
&lt;br /&gt;
You can also use them for other quick tasks, like simple post-processing, but any significant work should be submitted as a job to the compute nodes.  On most login nodes, each process is limited to 1 cpu-hour; this will be noticable if you perform anything compute-intensive, and can affect IO-oriented activity as well (such as very large &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; operations.)&lt;br /&gt;
&lt;br /&gt;
=== How can I suspend and resume my session? ===&lt;br /&gt;
&lt;br /&gt;
The program screen can start persistent terminals from which you can detach and reattach.  The simplest use of screen is&lt;br /&gt;
&lt;br /&gt;
 screen -dR&lt;br /&gt;
&lt;br /&gt;
which will either reattach you to any existing session or create a new one if one doesn&amp;#039;t exist.  To terminate the current screen session, type &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;.  To detach manually (you are automatically detached if the connection is lost) press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;d&amp;#039;&amp;#039;, you can the resume later as above (ideal for running background jobs).  Note that &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; is screen&amp;#039;s escape sequence, so you have to do &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;a&amp;#039;&amp;#039; to get the regular effect of pressing &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; inside a screen session (e.g., moving the cursor to the start of the line in a shell).&lt;br /&gt;
&lt;br /&gt;
For a list of other &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; key sequences, press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;?&amp;#039;&amp;#039;.  For further details and  command line options, see the [http://www.gnu.org/software/screen/manual/screen.html screen manual] (or type &amp;lt;tt&amp;gt;man screen&amp;lt;/tt&amp;gt; on any of the clusters).&lt;br /&gt;
&lt;br /&gt;
Other notes:&lt;br /&gt;
* If you want to create additional &amp;quot;text windows&amp;quot;, use Ctrl-A Ctrl-C. Remember to type &amp;quot;exit&amp;quot; to close it. &lt;br /&gt;
* To switch to a &amp;quot;text window&amp;quot; with a certain number, use Ctrl-A # (where # is 0 to 9).&lt;br /&gt;
* To see a list of window numbers use Ctrl-A w&lt;br /&gt;
* To be presented a list of windows and select one to use, use Ctrl-A &amp;quot; (This is handy if you&amp;#039;ve made too many windows.)&lt;br /&gt;
* If the program running in a screen &amp;quot;text window&amp;quot; refuses to die (i.e., it needs to be killed) you can use Ctrl-A K&lt;br /&gt;
* For brief help on keystrokes use Ctrl-A ?&lt;br /&gt;
* For extensive help, run &amp;quot;man screen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What operating systems are supported? ===&lt;br /&gt;
UNIX in general. Currently, Linux is the only operating system used within SHARCNET.&lt;br /&gt;
&lt;br /&gt;
=== What makes a cluster different than my UNIX workstation? ===&lt;br /&gt;
&lt;br /&gt;
If you are familiar with UNIX, then using a cluster is not much different from using a workstation. When you login to a cluster, you in fact only log in to one of the cluster nodes. In most cases, each cluster node is a physical machine, usually a server class machine, with one or several CPUs, that is more or less the same as a workstation you are familiar with. The difference is that these nodes are interconnected with special interconnect devices and the way you run your program is slightly different. Across SHARCNET clusters, you are not expected to run your program interactively. You will have to run your program through a queueing system. That also means where and when your program gets to run is not decided by you, but by the queueing system.&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Those primary programming languages such as C, C++, Fortran, and Python are supported. Other languages, such as Java, Pascal and Ada, are also supported, but with limited technical support from us. &lt;br /&gt;
&lt;br /&gt;
=== How do I organize my files? ===&lt;br /&gt;
[https://docs.computecanada.ca/wiki/Storage_and_file_management#Storage_types Main file systems on our National systems.]&lt;br /&gt;
&lt;br /&gt;
==== How do I transfer files/directories to/from or between cluster? ====&lt;br /&gt;
&lt;br /&gt;
=====Unix/Linux=====&lt;br /&gt;
To transfer files to and from a cluster on a UNIX machine, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt;. For example, if you want to upload file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; to cluster graham from your machine &amp;lt;tt&amp;gt;myhost&amp;lt;/tt&amp;gt;, use the following command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp foo.f graham.computecanada.ca:&lt;br /&gt;
&lt;br /&gt;
assuming that your machine has &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; installed. If you want to transfer a file from Windows or Mac, you need have &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt; for Windows or Mac installed.&lt;br /&gt;
&lt;br /&gt;
If you transfer file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; between Compute Canada clusters, say from your home directory on cedar to your home directory on graham, simply use the following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp foo.f graham:/home/username/&lt;br /&gt;
&lt;br /&gt;
If you are transferring files between a UNIX machine and a cluster, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; command with &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; option. For instance, if you want to download the subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; in the directory &amp;lt;tt&amp;gt;project&amp;lt;/tt&amp;gt; in your home directory on graham to your local UNIX machine, on your local machine, use command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp -rp graham.sharcnet.ca:project/foo .&lt;br /&gt;
&lt;br /&gt;
Similarly, you can transfer the subdirectory between Compute Canada clusters. The following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp -r graham:/home/username/scratch/foo .&lt;br /&gt;
&lt;br /&gt;
will download subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; from your scratch directory on graham to your home directory on cedar (note that the prompt indicates you are currently logged on to cedar).&lt;br /&gt;
&lt;br /&gt;
The use of &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; option above will preserve the time stamp of each file. For Windows and Mac, you need to check the documentation of &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; for features. &amp;#039;&amp;#039;&amp;#039;Do not use -p switch with scp or cp commands on clusters, when the destination is your project space&amp;#039;&amp;#039;&amp;#039;, or you might run into the infamous [https://docs.computecanada.ca/wiki/Frequently_Asked_Questions#Disk_quota_exceeded_error_on_.2Fproject_filesystems Disk quota exceeded issue].&lt;br /&gt;
&lt;br /&gt;
You may also &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; and compress the entire directory and then use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to save bandwidth. In the above example, first you login to graham, then do the following&lt;br /&gt;
&lt;br /&gt;
 [username@gra-login2:~]$ cd project&lt;br /&gt;
 [username@gra-login2:~]$ tar -cvf foo.tar foo&lt;br /&gt;
 [username@gra-login2:~]$ gzip foo.tar&lt;br /&gt;
&lt;br /&gt;
Then on your local machine myhost, use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to copy the tar file&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp graham.computecanada.ca:project/foo.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Note for most Linux distributions, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; has an option &amp;lt;tt&amp;gt;-z&amp;lt;/tt&amp;gt; that will compress the &amp;lt;tt&amp;gt;.tar&amp;lt;/tt&amp;gt; file using &amp;lt;tt&amp;gt;gzip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Windows=====&lt;br /&gt;
You may read the instructions on using an ssh client. [[https://helpwiki.sharcnet.ca/wiki/SSH#Transfering_files_.28Secure_File_Transfer_Client.29]]&lt;br /&gt;
&lt;br /&gt;
====How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect?====&lt;br /&gt;
&lt;br /&gt;
In general, most users should be fine using &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to transfer data to and from SHARCNET systems.  If you need to transfer a lot of files &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; is recommended to ensure that you do not need to restart the transfer from scratch should there be a connection failure.  Although you can use &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to any cluster&amp;#039;s login node(s), it is often best to use gra-dtn1.computecanada.ca - it is dedicated to data transfer. &lt;br /&gt;
&lt;br /&gt;
In general one should expect the following transfer rates with &amp;#039;&amp;#039;scp&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* If you are connecting to SHARCNET through a Research/Education network site (ORION, CANARIE, Internet2) and are on a fast local network (this is the case for most users connecting from academic institutions) then you should be able to attain sustained transfer speeds in excess of 10MB/s.  If your path is all gigabit or better, you should be able to reach rates above 50 MB/s.&lt;br /&gt;
* If you are transferring data over the wider internet, you will not be able to attain these speeds, as all traffic that does not enter/exit SHARCNET via the R&amp;amp;E net is restricted to a limited-bandwidth commercial feed. In this case one will typically see rates on the order of 1MB/s or less.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that filesystems and networks are  shared resources and suffer from contention; if they are busy the above rates may not be attainable&lt;br /&gt;
&lt;br /&gt;
For transferring large amounts of data (many gigabytes) the best approach is to use the online tool [https://docs.computecanada.ca/wiki/Transferring_data#Globus_transfer Globus].&lt;br /&gt;
&lt;br /&gt;
==== How do I access the same file from different subdirectories on the same cluster ? ====&lt;br /&gt;
&lt;br /&gt;
You should not need copy large files on the same cluster (e.g. from one user to another&lt;br /&gt;
or using the same file in different subdirectories).  Instead of using&lt;br /&gt;
scp you might consider issuing a &amp;quot;soft link&amp;quot; command. Assume that you need access&lt;br /&gt;
to the file large_file1 in subdirectory /home/user1/subdir1 and you need it to be in your&lt;br /&gt;
subdirectory /home/my_account/my_dir from where you will invoke it under the name&lt;br /&gt;
my_large_file1.  Then go to that directory and type:&lt;br /&gt;
&lt;br /&gt;
 ln -s /home/user1/subdir1/large_file1    my_large_file1&lt;br /&gt;
&lt;br /&gt;
Another example, assume that in subdirectory /home/my_account/PROJ1 you have several&lt;br /&gt;
subdirectories called CASE1, CASE2, ...  In each subdirectory CASEn you have a slightly&lt;br /&gt;
different code but all of them process the same data file called test_data. Rather than&lt;br /&gt;
copying the test_data file into each CASEn subdirectory, place test_data above i.e.&lt;br /&gt;
in /home/my_account/PROJ1 and then in each CASEn subdirectory issue following &amp;quot;soft link&amp;quot;&lt;br /&gt;
command:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../test_data  test_data&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;soft links&amp;quot; can be removed by using the rm command. For example, to remove the soft link from&lt;br /&gt;
/home/my_account/PROJ1/CASE2 type following command from this subdirectory:&lt;br /&gt;
&lt;br /&gt;
 rm -rf test_data&lt;br /&gt;
&lt;br /&gt;
Typing above command from subdirectory /home/my_account/PROJ1 would remove the actual file and then&lt;br /&gt;
none of the CASEn subdirectories would have access to it.&lt;br /&gt;
&lt;br /&gt;
==== How are files deleted from the /home/userid/scratch filesystems? ====&lt;br /&gt;
&lt;br /&gt;
All files on /home/userid/scratch that are over 2 months old (not old in the common sense, please see below) are automatically deleted. Data needed for long term storage and reference should be kept in either /project, /nearline, or other archival storage areas. The scratch filesystem is checked at the end of the month for files which will be candidates for expiry on the 15th of the following month. On the first day of the month, a login message is posted and a notification e-mail is sent to all users who have at least one file which is a candidate for purging and containing the location of a file which lists all the candidates for purging.  On the 12th of the month, a second scan is run to check for files that will still expire on the 15th, and again, users with candidates for expiry are sent a second warning email.  Lastly, on the 15th, all files which are due for expiry are removed.&lt;br /&gt;
&lt;br /&gt;
An unconventional aspect of this system is that it does not determine the age of a file based on the file&amp;#039;s attributes, e.g., the standard dates reported by the &amp;lt;i&amp;gt;stat&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;find&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;ls&amp;lt;/i&amp;gt;, etc. commands.  (This is known as the &amp;quot;mtime&amp;quot; of the file, for &amp;quot;modification time&amp;quot;, and is frequently inaccurate.) The age of a file is determined based on whether or not its data contents (i.e., the information stored in the file) have changed or been accessed, and this age is stored externally to the file.  Only files where the contents have changed or accessed will have their age counter &amp;quot;reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A list of your candidate files for expiry can be found in /home/scratch_to_delete/$USER  (where $USER is your userid).&lt;br /&gt;
&lt;br /&gt;
===== How do I check the age of a file =====&lt;br /&gt;
We define a file&amp;#039;s age as the most recent of:&lt;br /&gt;
&lt;br /&gt;
 *the access time (atime) and&lt;br /&gt;
 *the change time (ctime)&lt;br /&gt;
&lt;br /&gt;
You can find the ctime of a file using&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lc &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while the atime can be obtained with the command&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lu &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do not use the modify time (mtime) of the file because it can be modified by the user or by other programs to display incorrect information.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, simple use of the atime property would be sufficient, as it is updated by the system in sync with the ctime. However, userspace programs are able to alter atime, potentially to times in the past, which could result in early expiration of a file. The use of ctime as a fallback guards against this undesirable behaviour.&lt;br /&gt;
&lt;br /&gt;
It is also your responsibility to manage your stored data: most of the filesystems are not intended to provide an indefinite archiving service so when a given file or directory is no longer needed, you need to move it to a more appropriate filesystem which may well mean your personal workstation or some other storage system under your control. Moving significant amounts of data between your workstation and a Compute Canada system or between two Compute Canada systems should generally be done using Globus.&lt;br /&gt;
&lt;br /&gt;
==== How to archive my data? ====&lt;br /&gt;
&lt;br /&gt;
===== Use tar to archive files and directories =====&lt;br /&gt;
&lt;br /&gt;
The primary archiving utility on all Linux and Unix-like systems is the [https://www.gnu.org/software/tar/manual/tar.html tar] command. It will bundle a bunch of files or directories together and generate a single file, called an &amp;#039;&amp;#039;archive file&amp;#039;&amp;#039; or &amp;#039;&amp;#039;tar-file&amp;#039;&amp;#039;. By convention an archive file has &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; as the file name extension. When you archive a directory with &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, it will, by default, include all the files and sub-directories contained within it, and sub-sub-directories contained in those, and so on. So the command &amp;lt;code&amp;gt;tar --create --file project1.tar project1&amp;lt;/code&amp;gt; will pack all the content of directory &amp;#039;&amp;#039;project1&amp;#039;&amp;#039; into the file &amp;#039;&amp;#039;project1.tar&amp;#039;&amp;#039;. The original directory will remain unchanged, so this may double the amount of disk space occupied!&lt;br /&gt;
&lt;br /&gt;
You can extract files from an archive using the same command with a different option:&amp;lt;code&amp;gt;tar --extract --file project1.tar&amp;lt;/code&amp;gt;. If there is no directory with the original name, it will be created. If a directory of that name exists and contains files of the same names as in the archive file, they will be overwritten. Another option can be added to specify the destination directory where to extract the archive&amp;#039;s content.   &lt;br /&gt;
&lt;br /&gt;
===== Compress and uncompress tar files =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; archiving utility can compress an archive file at the same time it creates it. There are a number of compression methods to choose from. We recommend either &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;, which can be used as follows:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ tar --create --xz --file project1.tar.xz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --xz --file project1.tar.xz&lt;br /&gt;
 [user_name@localhost]$ tar --create --gzip --file project1.tar.gz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --gzip --file project1.tar.gz&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;code&amp;gt;--xz&amp;lt;/code&amp;gt; will produce a smaller compressed file (a &amp;quot;better compression ratio&amp;quot;) but takes longer and uses more RAM while working. &amp;lt;code&amp;gt;--gzip&amp;lt;/code&amp;gt; does not typically compress as small, but may be used if you encounter difficulties due to insufficient memory or excessive run time during &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt;. A third option, &amp;lt;code&amp;gt;--bzip2&amp;lt;/code&amp;gt;, is also available, that typically does not compress as small as &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; but takes longer than &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt; first without compression and then use the commands &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; in a separate step, although there is rarely a reason to do so. Similarly, you can run &amp;lt;code&amp;gt;xz -d&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip -d&amp;lt;/code&amp;gt; to decompress an archive file before running &amp;lt;code&amp;gt;tar --extract&amp;lt;/code&amp;gt;, but again there is rarely a reason to do so.&lt;br /&gt;
&lt;br /&gt;
The commands &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; can be used to compress any file, not just archive files:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ gzip bigfile&lt;br /&gt;
 [user_name@localhost]$ xz bigfile&lt;br /&gt;
&lt;br /&gt;
These commands will produce the files &amp;lt;code&amp;gt;bigfile.gz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigfile.xz&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
=====Archival Storage=====&lt;br /&gt;
&lt;br /&gt;
On Graham, files copied to ~/nearline will be subsequently moved to offline (tape-based) storage. See [https://docs.computecanada.ca/wiki/Using_nearline_storage this link] for more details.&lt;br /&gt;
&lt;br /&gt;
==== How can I check the hidden files in directory? ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;.&amp;quot; at the beginning of the name means that the file is &amp;quot;hidden&amp;quot;. You have to use the -a option with ls to see it. I.e. &amp;lt;code&amp;gt;ls -a &amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
If you want to display only the hidden files then type:&lt;br /&gt;
 ls -d .*&lt;br /&gt;
&lt;br /&gt;
Note: there is an alias which is loaded from /etc/bashrc (see your .bashrc file). The alias is defined by alias &amp;lt;code&amp;gt; l.=&amp;#039;ls -d .* --color=auto&amp;#039; &amp;lt;/code&amp;gt; and if you type:&lt;br /&gt;
 l.&lt;br /&gt;
you will also display only the hidden files.&lt;br /&gt;
&lt;br /&gt;
==== How can I count the number of files in a directory? ====&lt;br /&gt;
&lt;br /&gt;
One can use the following command to count the number of files in a directory (in this example, your /work directory):&lt;br /&gt;
&lt;br /&gt;
 find /home/$USER -type f   | wc -l&lt;br /&gt;
&lt;br /&gt;
It is always a good idea to [[Knowledge_Base#How_to_archive_my_data.3F|archive]] and/or compress files that are no longer needed on the filesystem (see [https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_to_organize_a_large_number_of_files.3F below]).  This helps minimize one&amp;#039;s footprint on the filesystem and as such the impact they have on other users of the shared resource.&lt;br /&gt;
&lt;br /&gt;
==== How to organize a large number of files? ====&lt;br /&gt;
&lt;br /&gt;
With parallel cluster filesystems, you will get best I/O performance writing data to a small number of large files. Since all metadata operations on each of our parallel filesystems are handled by a single file server, depending on how many files are being accessed the server can become overwhelmed leading to poor overall I/O performance for all users. If your workflow involves storing data in a large number of files, it is best to pack these files into a small number of larger archives, e.g. using tar command&lt;br /&gt;
&lt;br /&gt;
 tar cvf archiveFile.tar directoryToArchive&lt;br /&gt;
&lt;br /&gt;
For better performance with many files inside your archive, we recommend to use DAR (Disk ARchive utility), which is a disk analog of tar (Tape ARchive).  Dar can extract files from anywhere in the archive much faster than tar. The dar command is available by default on sharcnet systems. It can be used to pack files into a dar archive by doing something like: &lt;br /&gt;
&lt;br /&gt;
 dar -s 1G -w -c archiveFile -g directoryToArchive&lt;br /&gt;
&lt;br /&gt;
In this example we split the archive into 1GB chunks, and the archive files will be named archiveFile.1.dar, archiveFile.2.dar, and so on. To list the contents of the archive, you can type:&lt;br /&gt;
&lt;br /&gt;
 dar -l archiveFile&lt;br /&gt;
&lt;br /&gt;
To temporarily extract files for post-processing into current directory, you would type:&lt;br /&gt;
&lt;br /&gt;
 dar -R . -O -x archiveFile -v -g pathToYourFile/fileToExtract&lt;br /&gt;
&lt;br /&gt;
=== I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host ===&lt;br /&gt;
&lt;br /&gt;
The most likely cause of this behaviour is repeated failed login attempts.  Part of our security policies involves blocking the IP address of machines that attempt multiple logins with incorrect passwords over a short period of time---many brute-force attacks on systems do exactly this: looking for poor passwords, badly configured accounts, etc.  Unfortunately, it isn&amp;#039;t uncommon for a user to forget their password and make repeated login attempts with incorrect passwords and end up with that machine blacklisted and unable to connect at all.&lt;br /&gt;
&lt;br /&gt;
A temporary solution is simply to attempt to login from another machine.  If you have access to another machine at your site, you can shell to that machine first, and then shell to the SHARCNET system (as that machine&amp;#039;s IP shouldn&amp;#039;t be blacklisted).  In order to have your machine unblocked, you will have to email to [mailto:support@computecanada.ca support@computecanada.ca] as a system administrator must manually intervene in order to fix it.&lt;br /&gt;
&lt;br /&gt;
NOTE: there are other situations that can produce this message, however they are rarer and more transient.  If you are unable to log in from one machine, but can from another, it is most likely the IP blacklisting that is the problem and the above will provide a temporary work-around while your problem ticket is processed.&lt;br /&gt;
&lt;br /&gt;
=== I am unable to ssh/scp from SHARCNET to my local computer ===&lt;br /&gt;
&lt;br /&gt;
Most campus networks are behind some sort of firewall.  If you can ssh out to SHARCNET, but cannot establish a connection in the other direction, then you are probably behind a firewall and should speak with your local system administrator or campus IT department to determine if there are any exceptions or workarounds in place.&lt;br /&gt;
&lt;br /&gt;
=== SSH tells me SOMEONE IS DOING SOMETHING NASTY!? ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please first read the following:&lt;br /&gt;
&lt;br /&gt;
https://docs.computecanada.ca/wiki/SSH_security_improvements&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suppose you attempt to login to SHARCNET, but instead get an alarming message like this:&lt;br /&gt;
&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that the RSA host key has just been changed.&lt;br /&gt;
 The fingerprint for the RSA key sent by the remote host is&lt;br /&gt;
 fe:65:ab:89:9a:23:34:5a:50:1e:05:d6:bf:ec:da:67.&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending key in /home/user/.ssh/known_hosts:42&lt;br /&gt;
 RSA host key for requin has changed and you have requested strict checking.&lt;br /&gt;
 Host key verification failed. &lt;br /&gt;
&lt;br /&gt;
SSH begins a connection by verifying that the host you&amp;#039;re connecting to is authentic. It does this by caching the hosts&amp;#039;s &amp;quot;hostkey&amp;quot; in your  &amp;lt;tt&amp;gt;~/.ssh/known_hosts&amp;lt;/tt&amp;gt; file. At times, a hostkey may be changed legitimately; when this happens, you may see such a message. It&amp;#039;s a good idea to verify this with us, you may be able to check the fingerprint yourself by logging into another sharcnet system and running:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub &lt;br /&gt;
&lt;br /&gt;
If the fingerprint is OK, the normal way to fix the problem is to simply remove the old hostkey from your &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. On machines with commandline SSH, you can do this with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -R thehostname&lt;br /&gt;
&lt;br /&gt;
You can use your choice of editor if you&amp;#039;re comfortable doing so (it&amp;#039;s a plain text file, but has long lines). On a unix-compatible machine, you can also use the following very small script (Substitute the line(s) printed in the warning message illustrated above for &amp;#039;42&amp;#039; here.):&lt;br /&gt;
&lt;br /&gt;
 perl -pi -e &amp;#039;undef $_ if (++$line == 42)&amp;#039; ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
Another solution is brute-force: remove the whole &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. This throws away any authentication checking, and afterwards, your first connection to any machine will prompt you to accept a newly discovered host key.&lt;br /&gt;
&lt;br /&gt;
=== Ssh works, but scp doesn&amp;#039;t! ===&lt;br /&gt;
&lt;br /&gt;
If you can &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; to a cluster successfully, but cannot &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to to it, the problem is likely that your login scripts print unexpected messages which confuse &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; is based on the same &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, but assumes that the connection is &amp;quot;clean&amp;quot;: that is, that it does not produce any un-asked-for content. If you have something like:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; will be confused by the salutation. To avoid this, simply ensure that the message is only printed on an interactive login:&lt;br /&gt;
&lt;br /&gt;
 if [ -t 0 ]; then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
or in csh/tcsh syntax:&lt;br /&gt;
&lt;br /&gt;
 if ( -t 0 ) then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
=== How do I edit my program on a cluster? ===&lt;br /&gt;
&lt;br /&gt;
We provide a variety of editors, such as the traditional text-mode &amp;lt;tt&amp;gt;emacs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; (vim), as well as a simpler one called &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;. If you have X on your desktop (and tunneled through SSH), you can use the GUI versions (&amp;lt;tt&amp;gt;xemacs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If your desktop supports FUSE, it&amp;#039;s very convenient to simply mount your home tree like this:&lt;br /&gt;
 mkdir sharcnet&lt;br /&gt;
 sshfs graham.computecanada.ca: sharcnet&lt;br /&gt;
you can then use any local editor of your choice.&lt;br /&gt;
&lt;br /&gt;
If you run emacs on your desktop, you can also edit a remote file from within your local emacs client using [http://www.gnu.org/software/tramp Tramp], opening and saving a file as /username@cluster.computecanada.ca:path/file.&lt;br /&gt;
&lt;br /&gt;
== Research at SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== I have a research project I would like to collaborate on with SHARCNET, who should I talk to? ===&lt;br /&gt;
&lt;br /&gt;
You may contact [mailto:barb@sharcnet.ca SHARCNET head office] or contact members of the [https://www.sharcnet.ca/my/contact/directory#techteam SHARCNET technical staff].&lt;br /&gt;
&lt;br /&gt;
=== How can I contribute compute resources to SHARCNET so that other researchers can share it? ===&lt;br /&gt;
&lt;br /&gt;
Most people&amp;#039;s research is &amp;quot;bursty&amp;quot; - there are usually sparse periods of time when some computation is urgently needed, and other periods when there is less demand. One problem with this is that if you purchase the equipment you need to meet your &amp;quot;burst&amp;quot; needs, it&amp;#039;ll probably sit, underutilized, during other times.&lt;br /&gt;
&lt;br /&gt;
An alternative is to donate control of this equipment to SHARCNET, and let us arrange for other users to use it when you are not. We prefer to be involved in the selection and configuration of such equipment. Our promise to contributors is that as much as possible, they should obtain as much benefit from the cluster as if it were not shared. Owners get preferential access. Naturally, owners are also able to burst to higher peak usage, since their equipment has been pooled with other contributions. (Technically, SHARCNET cannot itself own such equipment — it remains owned by the institution in question, and will be returned to the contributor upon request.) If you think this model will also work for you and you would like to contribute your computational resource to help the research community at SHARCNET, you can contact us for such arrangement.&lt;br /&gt;
&lt;br /&gt;
=== I do not know much about computation, nor is it my research interest. But I am interested in getting my research done faster with the help of the high performance computing technology. In other words, I do not care about the process and mechanism, but only the final results. Can SHARCNET provide this type of help? ===&lt;br /&gt;
&lt;br /&gt;
We will be happy to bring the technology of high performance computing to you to accelerate your research, if at all possible. If you would like to discuss your plan with us, please feel free to contact our [https://www.sharcnet.ca/my/contact/directory#techteam high performance computing specialists]. They will be happy to listen to your needs and are ready to provide appropriate suggestions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET participates in the Compute Canada NRAC (National Resource Allocation Competition) and provides a continual competition for groups that require more than the default level of access to our resources.  Please see [[Dedicated Resources]] for further information.&lt;br /&gt;
&lt;br /&gt;
=== I heard SHARCNET offers fellowships, where can I get more information? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET no longer actively runs a fellowship program.  You may find information regarding past fellowships and other dedicated resource opportunities on the [https://www.sharcnet.ca/my/research/fellowships Research Fellowships page] of the web portal.&lt;br /&gt;
&lt;br /&gt;
=== I would like to do some research at SHARCNET as a visiting scholar, how should I apply? ===&lt;br /&gt;
&lt;br /&gt;
In general, you will need to find a hosting department or a person affiliated with one of the SHARCNET institutions. You may also [http://www.sharcnet.ca/my/contact contact us] directly for more specific information.&lt;br /&gt;
&lt;br /&gt;
=== I would like to send my students to SHARCNET to do some work for me. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
See above.&lt;br /&gt;
&lt;br /&gt;
== Contacting SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for research, academic exchanges, and technical issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for business development, education and other issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact a specific staff member at SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
See [https://www.sharcnet.ca/my/contact/directory staff directory] for contact information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Acknowledge SHARCNET in Publications ==&lt;br /&gt;
&lt;br /&gt;
=== How do I acknowledge SHARCNET in my publications? ===&lt;br /&gt;
&lt;br /&gt;
We recommend one cite the following:&lt;br /&gt;
&lt;br /&gt;
 This work was made possible by the facilities of the Shared Hierarchical &lt;br /&gt;
 Academic Research Computing Network (SHARCNET:www.sharcnet.ca) and Digital Research Alliance of Canada (https://alliancecan.ca/en).&lt;br /&gt;
&lt;br /&gt;
=== I&amp;#039;ve seen different spellings of the name, what is the standard spelling of SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
We suggest the spelling SHARCNET, all in upper case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What types of research programs / support are provided to the research community? ==&lt;br /&gt;
&lt;br /&gt;
Our overall intent is to provide support that can both respond to the range of needs that the user community presents and help to increase the sophistication of the community and enable new and larger-in-scope applications making use of SHARCNET&amp;#039;s HPC facilities. The range of support can perhaps best be understood in terms of a pyramid:&lt;br /&gt;
&lt;br /&gt;
=== Level 1 ===&lt;br /&gt;
&lt;br /&gt;
At the apex of the pyramid, SHARCNET supports a small number of projects with dedicated programmer support. The intent is to enable projects that will have a lasting impact and may lead to a &amp;quot;step change&amp;quot; in the way research is done at SHARCNET. Inter-disciplinary and inter-institutional projects are particularly welcomed. For the latest information about the program, including application guidelines, please see the  [https://www.sharcnet.ca/my/research/programming Programming Competition] page in our web portal.&lt;br /&gt;
&lt;br /&gt;
=== Level 2 ===&lt;br /&gt;
&lt;br /&gt;
The middle layers of support are provided through a number of initiatives.&lt;br /&gt;
&lt;br /&gt;
These include:&lt;br /&gt;
* Programming support of more modest duration (several days to one month engagement, usually part time)&lt;br /&gt;
* Training on a variety of topics through [https://www.sharcnet.ca/help/index.php/Training workshops, seminars and online training materials]&lt;br /&gt;
* Consultation. This may include user-initiated interactions on particular programs, algorithms, techniques, debugging, optimization etc., as well as unsolicited help to ensure effective use of SHARCNET systems&lt;br /&gt;
* Site Leaders play an important role in working with the community to help researchers connect with SHARCNET staff and to obtain appropriate help and support.&lt;br /&gt;
&lt;br /&gt;
=== Level 3 ===&lt;br /&gt;
&lt;br /&gt;
The base level of the pyramid handles the very large number of small requests that are essential to keeping the user community working effectively with the infrastructure on a day-to-day basis. Several of these can be answered by this FAQ; many of the issues are presented through the [https://www.sharcnet.ca/help/index.php/Knowledge_Base#Compute_Canada_Problem_Ticket_System ticketing system]. The support is largely problem oriented with each problem being time limited.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=935</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=935"/>
		<updated>2024-09-17T17:12:55Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* Getting an Account with SHARCNET and Related Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Sharcnet_logo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== About SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== What is SHARCNET? ===&lt;br /&gt;
SHARCNET stands for Shared Hierarchical Academic Research Computing Network. Established in 2000, SHARCNET is the largest high performance computing consortium in Canada, involving 19 universities and colleges across southern, central and northern Ontario.&lt;br /&gt;
&lt;br /&gt;
SHARCNET is a member consortium in the [https://alliancecan.ca/en Digital Research Alliance of Canada (Alliance)]  national HPC platform.&lt;br /&gt;
&lt;br /&gt;
=== Where is SHARCNET? ===&lt;br /&gt;
The [http://www.sharcnet.ca/my/contact main office] of SHARCNET is located in the Western Science Centre at [http://www.uwo.ca/ The University of Western Ontario].&lt;br /&gt;
&lt;br /&gt;
=== What does SHARCNET have? ===&lt;br /&gt;
The primary SHARCNET compute system is [https://docs.computecanada.ca/wiki/Graham Graham heterogeneous cluster] located at the University of Waterloo.  It is named after Wes Graham, the first director of the Computing Centre at Waterloo.  It consists of 41,548 cores and 520 GPU devices, spread across 1,185 nodes of different configurations.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with SHARCNET? ===&lt;br /&gt;
If you have a program that takes months to run on your PC, you could probably run it within a few hours using hundreds of processors on SHARCNET / Alliance, provided your program is inherently parallelisable. If you have hundreds or thousands of test cases to run through on your PC or computers in your lab, then with hundreds of processors running those cases independently will significantly reduce your test cycles.&lt;br /&gt;
&lt;br /&gt;
=== Who is running SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
The daily operation and development of SHARCNET computational facilities is managed by a group of highly qualified system administrators. In addition, we have a team of high performance technical computing consultants, who are responsible for technical support on libraries, programming and application analysis.&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET? ===&lt;br /&gt;
For technical inquiries, you may send E-mail to [mailto:support@computecanada.ca support@computecanada.ca] or [mailto:help@sharcnet.ca help@sharcnet.ca], or [https://www.sharcnet.ca/my/contact/directory#techteam contact your local system administrator or HPC specialist]. For general inquiries, you may contact the SHARCNET [http://www.sharcnet.ca/my/contact main office].&lt;br /&gt;
&lt;br /&gt;
== Getting an Account with SHARCNET and Related Issues ==&lt;br /&gt;
&lt;br /&gt;
To use SHARCNET (and any other national facilities in Alliance) one has to [https://www.alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account apply for an Alliance account].&lt;br /&gt;
&lt;br /&gt;
== Getting Help ==&lt;br /&gt;
&lt;br /&gt;
=== I have encountered a problem while using an Alliance /SHARCNET system and need help, who should I talk to? ===&lt;br /&gt;
We encourage you to use the problem ticketing system (described in detail [[FAQ: Getting Help#Alliance Problem Ticket System|below]]) .  This is the most efficient way of reporting a problem.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the [https://www.sharcnet.ca/my/contact/directory directory] page.&lt;br /&gt;
&lt;br /&gt;
=== How long should I expect to wait for support? ===&lt;br /&gt;
Unfortunately Alliance/SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week.  User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .  &lt;br /&gt;
&lt;br /&gt;
Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.  &lt;br /&gt;
&lt;br /&gt;
=== Alliance Problem Ticket System ===&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;problem ticket system&amp;quot;? ====&lt;br /&gt;
&lt;br /&gt;
This is a system that allows anyone with an Alliance account to start a persistent email thread that is referred to as a &amp;quot;problem ticket&amp;quot;.    When a user submits a new ticket it will be brought to the attention of an appropriate and available Alliance/SHARCNET staff member for resolution.  &lt;br /&gt;
&lt;br /&gt;
You interact with the ticket system entirely via email.&lt;br /&gt;
&lt;br /&gt;
==== What do I need to specify in a ticket ? ====&lt;br /&gt;
&lt;br /&gt;
To help us address your question faster, please try to do the following when submitting a ticket:&lt;br /&gt;
&lt;br /&gt;
#specify which of our systems is involved &lt;br /&gt;
#if the problem pertains to a job, then report the &amp;lt;u&amp;gt;jobid&amp;lt;/u&amp;gt; associated with the job; this is an integer that is returned by the scheduler when you submit the job&lt;br /&gt;
#report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem; if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem&lt;br /&gt;
#if you&amp;#039;d like for a particular staff member to be aware of the ticket, mention them&lt;br /&gt;
&lt;br /&gt;
==== How do I submit a ticket? ====&lt;br /&gt;
&lt;br /&gt;
In general, you can submit a new ticket by emailing  [mailto:support@computecanada.ca support@computecanada.ca]  with the email address associated with your Alliance account.  If you are using another email address, please provide your full name, your Alliance default username (if available) and your university or institution.&lt;br /&gt;
&lt;br /&gt;
If you like, you can also target your inquiry more specifically, by using the following addresses to submit your ticket:&lt;br /&gt;
&lt;br /&gt;
* [mailto:help@sharcnet.ca help@sharcnet.ca] - questions specific to SHARCNET, for example relating to contributed SHARCNET systems&lt;br /&gt;
* [mailto:globus@computecanada.ca globus@computecanada.ca] -- Questions about [[Globus]] file transfer services&lt;br /&gt;
* [mailto:cloud@computecanada.ca cloud@computecanada.ca] -- Questions about using Alliance cloud resources&lt;br /&gt;
* [mailto:accounts@computecanada.ca accounts@computecanada.ca] -- Questions about Alliance accounts&lt;br /&gt;
* [mailto:renewals@computecanada.ca renewals@computecanada.ca] -- Questions about Alliance account renewals&lt;br /&gt;
&lt;br /&gt;
=== I am new to parallel programming, can you help me get started with my project? ===&lt;br /&gt;
Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research. If your programming project would involve a significant staff time, you should consider applying for Dedicated Programming support. (We run the competition annually; see https://www.sharcnet.ca/my/research/programming).&lt;br /&gt;
&lt;br /&gt;
=== Can you install a package on a cluster for me? ===&lt;br /&gt;
Certainly.  We suggest you make the request by sending e-mail to [mailto:support@computecanada.ca support@computecanada.ca] with the specific request.&lt;br /&gt;
&lt;br /&gt;
=== I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that? ===&lt;br /&gt;
If you tell us what you want, we may be able to help you out.&lt;br /&gt;
&lt;br /&gt;
=== Does SHARCNET provide any training on programming and using the systems? ===&lt;br /&gt;
&lt;br /&gt;
Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every summer (usually late May to early June), SHARCNET holds [https://www.sharcnet.ca/help/index.php/Summer_Schools an annual HPC Summer School] with a variety of in-depth, hands-on workshops. &lt;br /&gt;
&lt;br /&gt;
SHARCNET also offers a series of online seminars (so-called &amp;quot;General interest webinars&amp;quot;), typically delivered every second Wednesday at lunch time.  These are announced via the SHARCNET events mailing list and one can see the schedule at the [https://www.sharcnet.ca/my/news/calendar SHARCNET event calendar].  Past seminars are recorded and posted on [http://youtube.sharcnet.ca our youtube channel]. A full listing of the past webinars is available on the [https://helpwiki.sharcnet.ca/wiki/Online_Seminars Online Seminars] page.&lt;br /&gt;
&lt;br /&gt;
=== Attending SHARCNET Webinars ===&lt;br /&gt;
{{:Attending SHARCNET Webinars}}&lt;br /&gt;
&lt;br /&gt;
== Logging in to Systems, Transferring and Editing Files ==&lt;br /&gt;
&lt;br /&gt;
=== How do I login to SHARCNET? ===&lt;br /&gt;
You access the SHARCNET clusters using ssh.  For Graham and other national systems Compute Canada credentials are required.  For the remaining (&amp;quot;Legacy&amp;quot;) systems, you will require SHARCNET credentials (submit a ticket to help@sharcnet.ca if you have questions).&lt;br /&gt;
&lt;br /&gt;
====Unix/Linux/OS X====&lt;br /&gt;
To login to a system, you need to use an [http://www.openssh.com/ Secure Shell (SSH)] connection. If you are logging in from a UNIX-based machine, make sure it has an SSH client (ssh) installed (this is almost always the case on UNIX/Linux/OS X). If you have the same login name on both your local system and SHARCNET, and you want to login to, say, &amp;lt;tt&amp;gt;graham&amp;lt;/tt&amp;gt;, you may use the command:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
If your Compute Canada username is different from the username on your local systems, then you may use either of the following forms:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.computecanada.ca -l username&lt;br /&gt;
 ssh username@graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
If you want to establish an X window connection so that you can use graphics applications such as &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ddt&amp;lt;/tt&amp;gt;, you can add a &amp;lt;tt&amp;gt;-Y&amp;lt;/tt&amp;gt; to the command:&lt;br /&gt;
&lt;br /&gt;
 ssh -Y username@graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
This will automatically set the X DISPLAY variable when you login.&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
If you are logging from a computer running Windows and need some pointers we recommend consulting our [[SSH]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between Login Nodes and Compute Nodes? ===&lt;br /&gt;
====Login Nodes====&lt;br /&gt;
&lt;br /&gt;
Most of our clusters have distinct &amp;#039;&amp;#039;login nodes&amp;#039;&amp;#039; associated with them that you are automatically redirected to when you login to the cluster (some systems are directly logged into, eg. SMPs and smaller specialty systems).  You can use these to do most of your work preparing for jobs (compiling, editing configuration files) and other low-intensity tasks like moving and copying files.  &lt;br /&gt;
&lt;br /&gt;
You can also use them for other quick tasks, like simple post-processing, but any significant work should be submitted as a job to the compute nodes.  On most login nodes, each process is limited to 1 cpu-hour; this will be noticable if you perform anything compute-intensive, and can affect IO-oriented activity as well (such as very large &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; operations.)&lt;br /&gt;
&lt;br /&gt;
=== How can I suspend and resume my session? ===&lt;br /&gt;
&lt;br /&gt;
The program screen can start persistent terminals from which you can detach and reattach.  The simplest use of screen is&lt;br /&gt;
&lt;br /&gt;
 screen -dR&lt;br /&gt;
&lt;br /&gt;
which will either reattach you to any existing session or create a new one if one doesn&amp;#039;t exist.  To terminate the current screen session, type &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;.  To detach manually (you are automatically detached if the connection is lost) press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;d&amp;#039;&amp;#039;, you can the resume later as above (ideal for running background jobs).  Note that &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; is screen&amp;#039;s escape sequence, so you have to do &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;a&amp;#039;&amp;#039; to get the regular effect of pressing &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; inside a screen session (e.g., moving the cursor to the start of the line in a shell).&lt;br /&gt;
&lt;br /&gt;
For a list of other &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; key sequences, press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;?&amp;#039;&amp;#039;.  For further details and  command line options, see the [http://www.gnu.org/software/screen/manual/screen.html screen manual] (or type &amp;lt;tt&amp;gt;man screen&amp;lt;/tt&amp;gt; on any of the clusters).&lt;br /&gt;
&lt;br /&gt;
Other notes:&lt;br /&gt;
* If you want to create additional &amp;quot;text windows&amp;quot;, use Ctrl-A Ctrl-C. Remember to type &amp;quot;exit&amp;quot; to close it. &lt;br /&gt;
* To switch to a &amp;quot;text window&amp;quot; with a certain number, use Ctrl-A # (where # is 0 to 9).&lt;br /&gt;
* To see a list of window numbers use Ctrl-A w&lt;br /&gt;
* To be presented a list of windows and select one to use, use Ctrl-A &amp;quot; (This is handy if you&amp;#039;ve made too many windows.)&lt;br /&gt;
* If the program running in a screen &amp;quot;text window&amp;quot; refuses to die (i.e., it needs to be killed) you can use Ctrl-A K&lt;br /&gt;
* For brief help on keystrokes use Ctrl-A ?&lt;br /&gt;
* For extensive help, run &amp;quot;man screen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What operating systems are supported? ===&lt;br /&gt;
UNIX in general. Currently, Linux is the only operating system used within SHARCNET.&lt;br /&gt;
&lt;br /&gt;
=== What makes a cluster different than my UNIX workstation? ===&lt;br /&gt;
&lt;br /&gt;
If you are familiar with UNIX, then using a cluster is not much different from using a workstation. When you login to a cluster, you in fact only log in to one of the cluster nodes. In most cases, each cluster node is a physical machine, usually a server class machine, with one or several CPUs, that is more or less the same as a workstation you are familiar with. The difference is that these nodes are interconnected with special interconnect devices and the way you run your program is slightly different. Across SHARCNET clusters, you are not expected to run your program interactively. You will have to run your program through a queueing system. That also means where and when your program gets to run is not decided by you, but by the queueing system.&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Those primary programming languages such as C, C++, Fortran, and Python are supported. Other languages, such as Java, Pascal and Ada, are also supported, but with limited technical support from us. &lt;br /&gt;
&lt;br /&gt;
=== How do I organize my files? ===&lt;br /&gt;
[https://docs.computecanada.ca/wiki/Storage_and_file_management#Storage_types Main file systems on our National systems.]&lt;br /&gt;
&lt;br /&gt;
==== How do I transfer files/directories to/from or between cluster? ====&lt;br /&gt;
&lt;br /&gt;
=====Unix/Linux=====&lt;br /&gt;
To transfer files to and from a cluster on a UNIX machine, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt;. For example, if you want to upload file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; to cluster graham from your machine &amp;lt;tt&amp;gt;myhost&amp;lt;/tt&amp;gt;, use the following command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp foo.f graham.computecanada.ca:&lt;br /&gt;
&lt;br /&gt;
assuming that your machine has &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; installed. If you want to transfer a file from Windows or Mac, you need have &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt; for Windows or Mac installed.&lt;br /&gt;
&lt;br /&gt;
If you transfer file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; between Compute Canada clusters, say from your home directory on cedar to your home directory on graham, simply use the following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp foo.f graham:/home/username/&lt;br /&gt;
&lt;br /&gt;
If you are transferring files between a UNIX machine and a cluster, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; command with &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; option. For instance, if you want to download the subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; in the directory &amp;lt;tt&amp;gt;project&amp;lt;/tt&amp;gt; in your home directory on graham to your local UNIX machine, on your local machine, use command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp -rp graham.sharcnet.ca:project/foo .&lt;br /&gt;
&lt;br /&gt;
Similarly, you can transfer the subdirectory between Compute Canada clusters. The following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp -r graham:/home/username/scratch/foo .&lt;br /&gt;
&lt;br /&gt;
will download subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; from your scratch directory on graham to your home directory on cedar (note that the prompt indicates you are currently logged on to cedar).&lt;br /&gt;
&lt;br /&gt;
The use of &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; option above will preserve the time stamp of each file. For Windows and Mac, you need to check the documentation of &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; for features. &amp;#039;&amp;#039;&amp;#039;Do not use -p switch with scp or cp commands on clusters, when the destination is your project space&amp;#039;&amp;#039;&amp;#039;, or you might run into the infamous [https://docs.computecanada.ca/wiki/Frequently_Asked_Questions#Disk_quota_exceeded_error_on_.2Fproject_filesystems Disk quota exceeded issue].&lt;br /&gt;
&lt;br /&gt;
You may also &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; and compress the entire directory and then use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to save bandwidth. In the above example, first you login to graham, then do the following&lt;br /&gt;
&lt;br /&gt;
 [username@gra-login2:~]$ cd project&lt;br /&gt;
 [username@gra-login2:~]$ tar -cvf foo.tar foo&lt;br /&gt;
 [username@gra-login2:~]$ gzip foo.tar&lt;br /&gt;
&lt;br /&gt;
Then on your local machine myhost, use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to copy the tar file&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp graham.computecanada.ca:project/foo.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Note for most Linux distributions, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; has an option &amp;lt;tt&amp;gt;-z&amp;lt;/tt&amp;gt; that will compress the &amp;lt;tt&amp;gt;.tar&amp;lt;/tt&amp;gt; file using &amp;lt;tt&amp;gt;gzip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Windows=====&lt;br /&gt;
You may read the instructions on using an ssh client. [[https://helpwiki.sharcnet.ca/wiki/SSH#Transfering_files_.28Secure_File_Transfer_Client.29]]&lt;br /&gt;
&lt;br /&gt;
====How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect?====&lt;br /&gt;
&lt;br /&gt;
In general, most users should be fine using &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to transfer data to and from SHARCNET systems.  If you need to transfer a lot of files &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; is recommended to ensure that you do not need to restart the transfer from scratch should there be a connection failure.  Although you can use &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to any cluster&amp;#039;s login node(s), it is often best to use gra-dtn1.computecanada.ca - it is dedicated to data transfer. &lt;br /&gt;
&lt;br /&gt;
In general one should expect the following transfer rates with &amp;#039;&amp;#039;scp&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* If you are connecting to SHARCNET through a Research/Education network site (ORION, CANARIE, Internet2) and are on a fast local network (this is the case for most users connecting from academic institutions) then you should be able to attain sustained transfer speeds in excess of 10MB/s.  If your path is all gigabit or better, you should be able to reach rates above 50 MB/s.&lt;br /&gt;
* If you are transferring data over the wider internet, you will not be able to attain these speeds, as all traffic that does not enter/exit SHARCNET via the R&amp;amp;E net is restricted to a limited-bandwidth commercial feed. In this case one will typically see rates on the order of 1MB/s or less.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that filesystems and networks are  shared resources and suffer from contention; if they are busy the above rates may not be attainable&lt;br /&gt;
&lt;br /&gt;
For transferring large amounts of data (many gigabytes) the best approach is to use the online tool [https://docs.computecanada.ca/wiki/Transferring_data#Globus_transfer Globus].&lt;br /&gt;
&lt;br /&gt;
==== How do I access the same file from different subdirectories on the same cluster ? ====&lt;br /&gt;
&lt;br /&gt;
You should not need copy large files on the same cluster (e.g. from one user to another&lt;br /&gt;
or using the same file in different subdirectories).  Instead of using&lt;br /&gt;
scp you might consider issuing a &amp;quot;soft link&amp;quot; command. Assume that you need access&lt;br /&gt;
to the file large_file1 in subdirectory /home/user1/subdir1 and you need it to be in your&lt;br /&gt;
subdirectory /home/my_account/my_dir from where you will invoke it under the name&lt;br /&gt;
my_large_file1.  Then go to that directory and type:&lt;br /&gt;
&lt;br /&gt;
 ln -s /home/user1/subdir1/large_file1    my_large_file1&lt;br /&gt;
&lt;br /&gt;
Another example, assume that in subdirectory /home/my_account/PROJ1 you have several&lt;br /&gt;
subdirectories called CASE1, CASE2, ...  In each subdirectory CASEn you have a slightly&lt;br /&gt;
different code but all of them process the same data file called test_data. Rather than&lt;br /&gt;
copying the test_data file into each CASEn subdirectory, place test_data above i.e.&lt;br /&gt;
in /home/my_account/PROJ1 and then in each CASEn subdirectory issue following &amp;quot;soft link&amp;quot;&lt;br /&gt;
command:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../test_data  test_data&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;soft links&amp;quot; can be removed by using the rm command. For example, to remove the soft link from&lt;br /&gt;
/home/my_account/PROJ1/CASE2 type following command from this subdirectory:&lt;br /&gt;
&lt;br /&gt;
 rm -rf test_data&lt;br /&gt;
&lt;br /&gt;
Typing above command from subdirectory /home/my_account/PROJ1 would remove the actual file and then&lt;br /&gt;
none of the CASEn subdirectories would have access to it.&lt;br /&gt;
&lt;br /&gt;
==== How are files deleted from the /home/userid/scratch filesystems? ====&lt;br /&gt;
&lt;br /&gt;
All files on /home/userid/scratch that are over 2 months old (not old in the common sense, please see below) are automatically deleted. Data needed for long term storage and reference should be kept in either /project, /nearline, or other archival storage areas. The scratch filesystem is checked at the end of the month for files which will be candidates for expiry on the 15th of the following month. On the first day of the month, a login message is posted and a notification e-mail is sent to all users who have at least one file which is a candidate for purging and containing the location of a file which lists all the candidates for purging.  On the 12th of the month, a second scan is run to check for files that will still expire on the 15th, and again, users with candidates for expiry are sent a second warning email.  Lastly, on the 15th, all files which are due for expiry are removed.&lt;br /&gt;
&lt;br /&gt;
An unconventional aspect of this system is that it does not determine the age of a file based on the file&amp;#039;s attributes, e.g., the standard dates reported by the &amp;lt;i&amp;gt;stat&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;find&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;ls&amp;lt;/i&amp;gt;, etc. commands.  (This is known as the &amp;quot;mtime&amp;quot; of the file, for &amp;quot;modification time&amp;quot;, and is frequently inaccurate.) The age of a file is determined based on whether or not its data contents (i.e., the information stored in the file) have changed or been accessed, and this age is stored externally to the file.  Only files where the contents have changed or accessed will have their age counter &amp;quot;reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A list of your candidate files for expiry can be found in /home/scratch_to_delete/$USER  (where $USER is your userid).&lt;br /&gt;
&lt;br /&gt;
===== How do I check the age of a file =====&lt;br /&gt;
We define a file&amp;#039;s age as the most recent of:&lt;br /&gt;
&lt;br /&gt;
 *the access time (atime) and&lt;br /&gt;
 *the change time (ctime)&lt;br /&gt;
&lt;br /&gt;
You can find the ctime of a file using&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lc &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while the atime can be obtained with the command&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lu &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do not use the modify time (mtime) of the file because it can be modified by the user or by other programs to display incorrect information.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, simple use of the atime property would be sufficient, as it is updated by the system in sync with the ctime. However, userspace programs are able to alter atime, potentially to times in the past, which could result in early expiration of a file. The use of ctime as a fallback guards against this undesirable behaviour.&lt;br /&gt;
&lt;br /&gt;
It is also your responsibility to manage your stored data: most of the filesystems are not intended to provide an indefinite archiving service so when a given file or directory is no longer needed, you need to move it to a more appropriate filesystem which may well mean your personal workstation or some other storage system under your control. Moving significant amounts of data between your workstation and a Compute Canada system or between two Compute Canada systems should generally be done using Globus.&lt;br /&gt;
&lt;br /&gt;
==== How to archive my data? ====&lt;br /&gt;
&lt;br /&gt;
===== Use tar to archive files and directories =====&lt;br /&gt;
&lt;br /&gt;
The primary archiving utility on all Linux and Unix-like systems is the [https://www.gnu.org/software/tar/manual/tar.html tar] command. It will bundle a bunch of files or directories together and generate a single file, called an &amp;#039;&amp;#039;archive file&amp;#039;&amp;#039; or &amp;#039;&amp;#039;tar-file&amp;#039;&amp;#039;. By convention an archive file has &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; as the file name extension. When you archive a directory with &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, it will, by default, include all the files and sub-directories contained within it, and sub-sub-directories contained in those, and so on. So the command &amp;lt;code&amp;gt;tar --create --file project1.tar project1&amp;lt;/code&amp;gt; will pack all the content of directory &amp;#039;&amp;#039;project1&amp;#039;&amp;#039; into the file &amp;#039;&amp;#039;project1.tar&amp;#039;&amp;#039;. The original directory will remain unchanged, so this may double the amount of disk space occupied!&lt;br /&gt;
&lt;br /&gt;
You can extract files from an archive using the same command with a different option:&amp;lt;code&amp;gt;tar --extract --file project1.tar&amp;lt;/code&amp;gt;. If there is no directory with the original name, it will be created. If a directory of that name exists and contains files of the same names as in the archive file, they will be overwritten. Another option can be added to specify the destination directory where to extract the archive&amp;#039;s content.   &lt;br /&gt;
&lt;br /&gt;
===== Compress and uncompress tar files =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; archiving utility can compress an archive file at the same time it creates it. There are a number of compression methods to choose from. We recommend either &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;, which can be used as follows:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ tar --create --xz --file project1.tar.xz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --xz --file project1.tar.xz&lt;br /&gt;
 [user_name@localhost]$ tar --create --gzip --file project1.tar.gz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --gzip --file project1.tar.gz&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;code&amp;gt;--xz&amp;lt;/code&amp;gt; will produce a smaller compressed file (a &amp;quot;better compression ratio&amp;quot;) but takes longer and uses more RAM while working. &amp;lt;code&amp;gt;--gzip&amp;lt;/code&amp;gt; does not typically compress as small, but may be used if you encounter difficulties due to insufficient memory or excessive run time during &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt;. A third option, &amp;lt;code&amp;gt;--bzip2&amp;lt;/code&amp;gt;, is also available, that typically does not compress as small as &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; but takes longer than &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt; first without compression and then use the commands &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; in a separate step, although there is rarely a reason to do so. Similarly, you can run &amp;lt;code&amp;gt;xz -d&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip -d&amp;lt;/code&amp;gt; to decompress an archive file before running &amp;lt;code&amp;gt;tar --extract&amp;lt;/code&amp;gt;, but again there is rarely a reason to do so.&lt;br /&gt;
&lt;br /&gt;
The commands &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; can be used to compress any file, not just archive files:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ gzip bigfile&lt;br /&gt;
 [user_name@localhost]$ xz bigfile&lt;br /&gt;
&lt;br /&gt;
These commands will produce the files &amp;lt;code&amp;gt;bigfile.gz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigfile.xz&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
=====Archival Storage=====&lt;br /&gt;
&lt;br /&gt;
On Graham, files copied to ~/nearline will be subsequently moved to offline (tape-based) storage. See [https://docs.computecanada.ca/wiki/Using_nearline_storage this link] for more details.&lt;br /&gt;
&lt;br /&gt;
==== How can I check the hidden files in directory? ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;.&amp;quot; at the beginning of the name means that the file is &amp;quot;hidden&amp;quot;. You have to use the -a option with ls to see it. I.e. &amp;lt;code&amp;gt;ls -a &amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
If you want to display only the hidden files then type:&lt;br /&gt;
 ls -d .*&lt;br /&gt;
&lt;br /&gt;
Note: there is an alias which is loaded from /etc/bashrc (see your .bashrc file). The alias is defined by alias &amp;lt;code&amp;gt; l.=&amp;#039;ls -d .* --color=auto&amp;#039; &amp;lt;/code&amp;gt; and if you type:&lt;br /&gt;
 l.&lt;br /&gt;
you will also display only the hidden files.&lt;br /&gt;
&lt;br /&gt;
==== How can I count the number of files in a directory? ====&lt;br /&gt;
&lt;br /&gt;
One can use the following command to count the number of files in a directory (in this example, your /work directory):&lt;br /&gt;
&lt;br /&gt;
 find /home/$USER -type f   | wc -l&lt;br /&gt;
&lt;br /&gt;
It is always a good idea to [[Knowledge_Base#How_to_archive_my_data.3F|archive]] and/or compress files that are no longer needed on the filesystem (see [https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_to_organize_a_large_number_of_files.3F below]).  This helps minimize one&amp;#039;s footprint on the filesystem and as such the impact they have on other users of the shared resource.&lt;br /&gt;
&lt;br /&gt;
==== How to organize a large number of files? ====&lt;br /&gt;
&lt;br /&gt;
With parallel cluster filesystems, you will get best I/O performance writing data to a small number of large files. Since all metadata operations on each of our parallel filesystems are handled by a single file server, depending on how many files are being accessed the server can become overwhelmed leading to poor overall I/O performance for all users. If your workflow involves storing data in a large number of files, it is best to pack these files into a small number of larger archives, e.g. using tar command&lt;br /&gt;
&lt;br /&gt;
 tar cvf archiveFile.tar directoryToArchive&lt;br /&gt;
&lt;br /&gt;
For better performance with many files inside your archive, we recommend to use DAR (Disk ARchive utility), which is a disk analog of tar (Tape ARchive).  Dar can extract files from anywhere in the archive much faster than tar. The dar command is available by default on sharcnet systems. It can be used to pack files into a dar archive by doing something like: &lt;br /&gt;
&lt;br /&gt;
 dar -s 1G -w -c archiveFile -g directoryToArchive&lt;br /&gt;
&lt;br /&gt;
In this example we split the archive into 1GB chunks, and the archive files will be named archiveFile.1.dar, archiveFile.2.dar, and so on. To list the contents of the archive, you can type:&lt;br /&gt;
&lt;br /&gt;
 dar -l archiveFile&lt;br /&gt;
&lt;br /&gt;
To temporarily extract files for post-processing into current directory, you would type:&lt;br /&gt;
&lt;br /&gt;
 dar -R . -O -x archiveFile -v -g pathToYourFile/fileToExtract&lt;br /&gt;
&lt;br /&gt;
=== I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host ===&lt;br /&gt;
&lt;br /&gt;
The most likely cause of this behaviour is repeated failed login attempts.  Part of our security policies involves blocking the IP address of machines that attempt multiple logins with incorrect passwords over a short period of time---many brute-force attacks on systems do exactly this: looking for poor passwords, badly configured accounts, etc.  Unfortunately, it isn&amp;#039;t uncommon for a user to forget their password and make repeated login attempts with incorrect passwords and end up with that machine blacklisted and unable to connect at all.&lt;br /&gt;
&lt;br /&gt;
A temporary solution is simply to attempt to login from another machine.  If you have access to another machine at your site, you can shell to that machine first, and then shell to the SHARCNET system (as that machine&amp;#039;s IP shouldn&amp;#039;t be blacklisted).  In order to have your machine unblocked, you will have to email to [mailto:support@computecanada.ca support@computecanada.ca] as a system administrator must manually intervene in order to fix it.&lt;br /&gt;
&lt;br /&gt;
NOTE: there are other situations that can produce this message, however they are rarer and more transient.  If you are unable to log in from one machine, but can from another, it is most likely the IP blacklisting that is the problem and the above will provide a temporary work-around while your problem ticket is processed.&lt;br /&gt;
&lt;br /&gt;
=== I am unable to ssh/scp from SHARCNET to my local computer ===&lt;br /&gt;
&lt;br /&gt;
Most campus networks are behind some sort of firewall.  If you can ssh out to SHARCNET, but cannot establish a connection in the other direction, then you are probably behind a firewall and should speak with your local system administrator or campus IT department to determine if there are any exceptions or workarounds in place.&lt;br /&gt;
&lt;br /&gt;
=== SSH tells me SOMEONE IS DOING SOMETHING NASTY!? ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please first read the following:&lt;br /&gt;
&lt;br /&gt;
https://docs.computecanada.ca/wiki/SSH_security_improvements&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suppose you attempt to login to SHARCNET, but instead get an alarming message like this:&lt;br /&gt;
&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that the RSA host key has just been changed.&lt;br /&gt;
 The fingerprint for the RSA key sent by the remote host is&lt;br /&gt;
 fe:65:ab:89:9a:23:34:5a:50:1e:05:d6:bf:ec:da:67.&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending key in /home/user/.ssh/known_hosts:42&lt;br /&gt;
 RSA host key for requin has changed and you have requested strict checking.&lt;br /&gt;
 Host key verification failed. &lt;br /&gt;
&lt;br /&gt;
SSH begins a connection by verifying that the host you&amp;#039;re connecting to is authentic. It does this by caching the hosts&amp;#039;s &amp;quot;hostkey&amp;quot; in your  &amp;lt;tt&amp;gt;~/.ssh/known_hosts&amp;lt;/tt&amp;gt; file. At times, a hostkey may be changed legitimately; when this happens, you may see such a message. It&amp;#039;s a good idea to verify this with us, you may be able to check the fingerprint yourself by logging into another sharcnet system and running:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub &lt;br /&gt;
&lt;br /&gt;
If the fingerprint is OK, the normal way to fix the problem is to simply remove the old hostkey from your &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. On machines with commandline SSH, you can do this with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -R thehostname&lt;br /&gt;
&lt;br /&gt;
You can use your choice of editor if you&amp;#039;re comfortable doing so (it&amp;#039;s a plain text file, but has long lines). On a unix-compatible machine, you can also use the following very small script (Substitute the line(s) printed in the warning message illustrated above for &amp;#039;42&amp;#039; here.):&lt;br /&gt;
&lt;br /&gt;
 perl -pi -e &amp;#039;undef $_ if (++$line == 42)&amp;#039; ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
Another solution is brute-force: remove the whole &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. This throws away any authentication checking, and afterwards, your first connection to any machine will prompt you to accept a newly discovered host key.&lt;br /&gt;
&lt;br /&gt;
=== Ssh works, but scp doesn&amp;#039;t! ===&lt;br /&gt;
&lt;br /&gt;
If you can &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; to a cluster successfully, but cannot &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to to it, the problem is likely that your login scripts print unexpected messages which confuse &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; is based on the same &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, but assumes that the connection is &amp;quot;clean&amp;quot;: that is, that it does not produce any un-asked-for content. If you have something like:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; will be confused by the salutation. To avoid this, simply ensure that the message is only printed on an interactive login:&lt;br /&gt;
&lt;br /&gt;
 if [ -t 0 ]; then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
or in csh/tcsh syntax:&lt;br /&gt;
&lt;br /&gt;
 if ( -t 0 ) then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
=== How do I edit my program on a cluster? ===&lt;br /&gt;
&lt;br /&gt;
We provide a variety of editors, such as the traditional text-mode &amp;lt;tt&amp;gt;emacs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; (vim), as well as a simpler one called &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;. If you have X on your desktop (and tunneled through SSH), you can use the GUI versions (&amp;lt;tt&amp;gt;xemacs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If your desktop supports FUSE, it&amp;#039;s very convenient to simply mount your home tree like this:&lt;br /&gt;
 mkdir sharcnet&lt;br /&gt;
 sshfs graham.computecanada.ca: sharcnet&lt;br /&gt;
you can then use any local editor of your choice.&lt;br /&gt;
&lt;br /&gt;
If you run emacs on your desktop, you can also edit a remote file from within your local emacs client using [http://www.gnu.org/software/tramp Tramp], opening and saving a file as /username@cluster.computecanada.ca:path/file.&lt;br /&gt;
&lt;br /&gt;
== Research at SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== I have a research project I would like to collaborate on with SHARCNET, who should I talk to? ===&lt;br /&gt;
&lt;br /&gt;
You may contact [mailto:barb@sharcnet.ca SHARCNET head office] or contact members of the [https://www.sharcnet.ca/my/contact/directory#techteam SHARCNET technical staff].&lt;br /&gt;
&lt;br /&gt;
=== How can I contribute compute resources to SHARCNET so that other researchers can share it? ===&lt;br /&gt;
&lt;br /&gt;
Most people&amp;#039;s research is &amp;quot;bursty&amp;quot; - there are usually sparse periods of time when some computation is urgently needed, and other periods when there is less demand. One problem with this is that if you purchase the equipment you need to meet your &amp;quot;burst&amp;quot; needs, it&amp;#039;ll probably sit, underutilized, during other times.&lt;br /&gt;
&lt;br /&gt;
An alternative is to donate control of this equipment to SHARCNET, and let us arrange for other users to use it when you are not. We prefer to be involved in the selection and configuration of such equipment. Our promise to contributors is that as much as possible, they should obtain as much benefit from the cluster as if it were not shared. Owners get preferential access. Naturally, owners are also able to burst to higher peak usage, since their equipment has been pooled with other contributions. (Technically, SHARCNET cannot itself own such equipment — it remains owned by the institution in question, and will be returned to the contributor upon request.) If you think this model will also work for you and you would like to contribute your computational resource to help the research community at SHARCNET, you can contact us for such arrangement.&lt;br /&gt;
&lt;br /&gt;
=== I do not know much about computation, nor is it my research interest. But I am interested in getting my research done faster with the help of the high performance computing technology. In other words, I do not care about the process and mechanism, but only the final results. Can SHARCNET provide this type of help? ===&lt;br /&gt;
&lt;br /&gt;
We will be happy to bring the technology of high performance computing to you to accelerate your research, if at all possible. If you would like to discuss your plan with us, please feel free to contact our [https://www.sharcnet.ca/my/contact/directory#techteam high performance computing specialists]. They will be happy to listen to your needs and are ready to provide appropriate suggestions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET participates in the Compute Canada NRAC (National Resource Allocation Competition) and provides a continual competition for groups that require more than the default level of access to our resources.  Please see [[Dedicated Resources]] for further information.&lt;br /&gt;
&lt;br /&gt;
=== I heard SHARCNET offers fellowships, where can I get more information? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET no longer actively runs a fellowship program.  You may find information regarding past fellowships and other dedicated resource opportunities on the [https://www.sharcnet.ca/my/research/fellowships Research Fellowships page] of the web portal.&lt;br /&gt;
&lt;br /&gt;
=== I would like to do some research at SHARCNET as a visiting scholar, how should I apply? ===&lt;br /&gt;
&lt;br /&gt;
In general, you will need to find a hosting department or a person affiliated with one of the SHARCNET institutions. You may also [http://www.sharcnet.ca/my/contact contact us] directly for more specific information.&lt;br /&gt;
&lt;br /&gt;
=== I would like to send my students to SHARCNET to do some work for me. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
See above.&lt;br /&gt;
&lt;br /&gt;
== Contacting SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for research, academic exchanges, and technical issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for business development, education and other issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact a specific staff member at SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
See [https://www.sharcnet.ca/my/contact/directory staff directory] for contact information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Acknowledge SHARCNET in Publications ==&lt;br /&gt;
&lt;br /&gt;
=== How do I acknowledge SHARCNET in my publications? ===&lt;br /&gt;
&lt;br /&gt;
We recommend one cite the following:&lt;br /&gt;
&lt;br /&gt;
 This work was made possible by the facilities of the Shared Hierarchical &lt;br /&gt;
 Academic Research Computing Network (SHARCNET:www.sharcnet.ca) and Digital Research Alliance of Canada (https://alliancecan.ca/en).&lt;br /&gt;
&lt;br /&gt;
=== I&amp;#039;ve seen different spellings of the name, what is the standard spelling of SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
We suggest the spelling SHARCNET, all in upper case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What types of research programs / support are provided to the research community? ==&lt;br /&gt;
&lt;br /&gt;
Our overall intent is to provide support that can both respond to the range of needs that the user community presents and help to increase the sophistication of the community and enable new and larger-in-scope applications making use of SHARCNET&amp;#039;s HPC facilities. The range of support can perhaps best be understood in terms of a pyramid:&lt;br /&gt;
&lt;br /&gt;
=== Level 1 ===&lt;br /&gt;
&lt;br /&gt;
At the apex of the pyramid, SHARCNET supports a small number of projects with dedicated programmer support. The intent is to enable projects that will have a lasting impact and may lead to a &amp;quot;step change&amp;quot; in the way research is done at SHARCNET. Inter-disciplinary and inter-institutional projects are particularly welcomed. For the latest information about the program, including application guidelines, please see the  [https://www.sharcnet.ca/my/research/programming Programming Competition] page in our web portal.&lt;br /&gt;
&lt;br /&gt;
=== Level 2 ===&lt;br /&gt;
&lt;br /&gt;
The middle layers of support are provided through a number of initiatives.&lt;br /&gt;
&lt;br /&gt;
These include:&lt;br /&gt;
* Programming support of more modest duration (several days to one month engagement, usually part time)&lt;br /&gt;
* Training on a variety of topics through [https://www.sharcnet.ca/help/index.php/Training workshops, seminars and online training materials]&lt;br /&gt;
* Consultation. This may include user-initiated interactions on particular programs, algorithms, techniques, debugging, optimization etc., as well as unsolicited help to ensure effective use of SHARCNET systems&lt;br /&gt;
* Site Leaders play an important role in working with the community to help researchers connect with SHARCNET staff and to obtain appropriate help and support.&lt;br /&gt;
&lt;br /&gt;
=== Level 3 ===&lt;br /&gt;
&lt;br /&gt;
The base level of the pyramid handles the very large number of small requests that are essential to keeping the user community working effectively with the infrastructure on a day-to-day basis. Several of these can be answered by this FAQ; many of the issues are presented through the [https://www.sharcnet.ca/help/index.php/Knowledge_Base#Compute_Canada_Problem_Ticket_System ticketing system]. The support is largely problem oriented with each problem being time limited.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=934</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=934"/>
		<updated>2024-09-17T17:11:08Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* What can I do with SHARCNET? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Sharcnet_logo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== About SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== What is SHARCNET? ===&lt;br /&gt;
SHARCNET stands for Shared Hierarchical Academic Research Computing Network. Established in 2000, SHARCNET is the largest high performance computing consortium in Canada, involving 19 universities and colleges across southern, central and northern Ontario.&lt;br /&gt;
&lt;br /&gt;
SHARCNET is a member consortium in the [https://alliancecan.ca/en Digital Research Alliance of Canada (Alliance)]  national HPC platform.&lt;br /&gt;
&lt;br /&gt;
=== Where is SHARCNET? ===&lt;br /&gt;
The [http://www.sharcnet.ca/my/contact main office] of SHARCNET is located in the Western Science Centre at [http://www.uwo.ca/ The University of Western Ontario].&lt;br /&gt;
&lt;br /&gt;
=== What does SHARCNET have? ===&lt;br /&gt;
The primary SHARCNET compute system is [https://docs.computecanada.ca/wiki/Graham Graham heterogeneous cluster] located at the University of Waterloo.  It is named after Wes Graham, the first director of the Computing Centre at Waterloo.  It consists of 41,548 cores and 520 GPU devices, spread across 1,185 nodes of different configurations.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with SHARCNET? ===&lt;br /&gt;
If you have a program that takes months to run on your PC, you could probably run it within a few hours using hundreds of processors on SHARCNET / Alliance, provided your program is inherently parallelisable. If you have hundreds or thousands of test cases to run through on your PC or computers in your lab, then with hundreds of processors running those cases independently will significantly reduce your test cycles.&lt;br /&gt;
&lt;br /&gt;
=== Who is running SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
The daily operation and development of SHARCNET computational facilities is managed by a group of highly qualified system administrators. In addition, we have a team of high performance technical computing consultants, who are responsible for technical support on libraries, programming and application analysis.&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET? ===&lt;br /&gt;
For technical inquiries, you may send E-mail to [mailto:support@computecanada.ca support@computecanada.ca] or [mailto:help@sharcnet.ca help@sharcnet.ca], or [https://www.sharcnet.ca/my/contact/directory#techteam contact your local system administrator or HPC specialist]. For general inquiries, you may contact the SHARCNET [http://www.sharcnet.ca/my/contact main office].&lt;br /&gt;
&lt;br /&gt;
== Getting an Account with SHARCNET and Related Issues ==&lt;br /&gt;
&lt;br /&gt;
To use SHARCNET (and any other national facilities in the Alliance) one has to [https://www.alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account apply for an Alliance account].&lt;br /&gt;
&lt;br /&gt;
== Getting Help ==&lt;br /&gt;
&lt;br /&gt;
=== I have encountered a problem while using an Alliance /SHARCNET system and need help, who should I talk to? ===&lt;br /&gt;
We encourage you to use the problem ticketing system (described in detail [[FAQ: Getting Help#Alliance Problem Ticket System|below]]) .  This is the most efficient way of reporting a problem.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the [https://www.sharcnet.ca/my/contact/directory directory] page.&lt;br /&gt;
&lt;br /&gt;
=== How long should I expect to wait for support? ===&lt;br /&gt;
Unfortunately Alliance/SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week.  User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .  &lt;br /&gt;
&lt;br /&gt;
Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.  &lt;br /&gt;
&lt;br /&gt;
=== Alliance Problem Ticket System ===&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;problem ticket system&amp;quot;? ====&lt;br /&gt;
&lt;br /&gt;
This is a system that allows anyone with an Alliance account to start a persistent email thread that is referred to as a &amp;quot;problem ticket&amp;quot;.    When a user submits a new ticket it will be brought to the attention of an appropriate and available Alliance/SHARCNET staff member for resolution.  &lt;br /&gt;
&lt;br /&gt;
You interact with the ticket system entirely via email.&lt;br /&gt;
&lt;br /&gt;
==== What do I need to specify in a ticket ? ====&lt;br /&gt;
&lt;br /&gt;
To help us address your question faster, please try to do the following when submitting a ticket:&lt;br /&gt;
&lt;br /&gt;
#specify which of our systems is involved &lt;br /&gt;
#if the problem pertains to a job, then report the &amp;lt;u&amp;gt;jobid&amp;lt;/u&amp;gt; associated with the job; this is an integer that is returned by the scheduler when you submit the job&lt;br /&gt;
#report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem; if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem&lt;br /&gt;
#if you&amp;#039;d like for a particular staff member to be aware of the ticket, mention them&lt;br /&gt;
&lt;br /&gt;
==== How do I submit a ticket? ====&lt;br /&gt;
&lt;br /&gt;
In general, you can submit a new ticket by emailing  [mailto:support@computecanada.ca support@computecanada.ca]  with the email address associated with your Alliance account.  If you are using another email address, please provide your full name, your Alliance default username (if available) and your university or institution.&lt;br /&gt;
&lt;br /&gt;
If you like, you can also target your inquiry more specifically, by using the following addresses to submit your ticket:&lt;br /&gt;
&lt;br /&gt;
* [mailto:help@sharcnet.ca help@sharcnet.ca] - questions specific to SHARCNET, for example relating to contributed SHARCNET systems&lt;br /&gt;
* [mailto:globus@computecanada.ca globus@computecanada.ca] -- Questions about [[Globus]] file transfer services&lt;br /&gt;
* [mailto:cloud@computecanada.ca cloud@computecanada.ca] -- Questions about using Alliance cloud resources&lt;br /&gt;
* [mailto:accounts@computecanada.ca accounts@computecanada.ca] -- Questions about Alliance accounts&lt;br /&gt;
* [mailto:renewals@computecanada.ca renewals@computecanada.ca] -- Questions about Alliance account renewals&lt;br /&gt;
&lt;br /&gt;
=== I am new to parallel programming, can you help me get started with my project? ===&lt;br /&gt;
Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research. If your programming project would involve a significant staff time, you should consider applying for Dedicated Programming support. (We run the competition annually; see https://www.sharcnet.ca/my/research/programming).&lt;br /&gt;
&lt;br /&gt;
=== Can you install a package on a cluster for me? ===&lt;br /&gt;
Certainly.  We suggest you make the request by sending e-mail to [mailto:support@computecanada.ca support@computecanada.ca] with the specific request.&lt;br /&gt;
&lt;br /&gt;
=== I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that? ===&lt;br /&gt;
If you tell us what you want, we may be able to help you out.&lt;br /&gt;
&lt;br /&gt;
=== Does SHARCNET provide any training on programming and using the systems? ===&lt;br /&gt;
&lt;br /&gt;
Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every summer (usually late May to early June), SHARCNET holds [https://www.sharcnet.ca/help/index.php/Summer_Schools an annual HPC Summer School] with a variety of in-depth, hands-on workshops. &lt;br /&gt;
&lt;br /&gt;
SHARCNET also offers a series of online seminars (so-called &amp;quot;General interest webinars&amp;quot;), typically delivered every second Wednesday at lunch time.  These are announced via the SHARCNET events mailing list and one can see the schedule at the [https://www.sharcnet.ca/my/news/calendar SHARCNET event calendar].  Past seminars are recorded and posted on [http://youtube.sharcnet.ca our youtube channel]. A full listing of the past webinars is available on the [https://helpwiki.sharcnet.ca/wiki/Online_Seminars Online Seminars] page.&lt;br /&gt;
&lt;br /&gt;
=== Attending SHARCNET Webinars ===&lt;br /&gt;
{{:Attending SHARCNET Webinars}}&lt;br /&gt;
&lt;br /&gt;
== Logging in to Systems, Transferring and Editing Files ==&lt;br /&gt;
&lt;br /&gt;
=== How do I login to SHARCNET? ===&lt;br /&gt;
You access the SHARCNET clusters using ssh.  For Graham and other national systems Compute Canada credentials are required.  For the remaining (&amp;quot;Legacy&amp;quot;) systems, you will require SHARCNET credentials (submit a ticket to help@sharcnet.ca if you have questions).&lt;br /&gt;
&lt;br /&gt;
====Unix/Linux/OS X====&lt;br /&gt;
To login to a system, you need to use an [http://www.openssh.com/ Secure Shell (SSH)] connection. If you are logging in from a UNIX-based machine, make sure it has an SSH client (ssh) installed (this is almost always the case on UNIX/Linux/OS X). If you have the same login name on both your local system and SHARCNET, and you want to login to, say, &amp;lt;tt&amp;gt;graham&amp;lt;/tt&amp;gt;, you may use the command:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
If your Compute Canada username is different from the username on your local systems, then you may use either of the following forms:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.computecanada.ca -l username&lt;br /&gt;
 ssh username@graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
If you want to establish an X window connection so that you can use graphics applications such as &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ddt&amp;lt;/tt&amp;gt;, you can add a &amp;lt;tt&amp;gt;-Y&amp;lt;/tt&amp;gt; to the command:&lt;br /&gt;
&lt;br /&gt;
 ssh -Y username@graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
This will automatically set the X DISPLAY variable when you login.&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
If you are logging from a computer running Windows and need some pointers we recommend consulting our [[SSH]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between Login Nodes and Compute Nodes? ===&lt;br /&gt;
====Login Nodes====&lt;br /&gt;
&lt;br /&gt;
Most of our clusters have distinct &amp;#039;&amp;#039;login nodes&amp;#039;&amp;#039; associated with them that you are automatically redirected to when you login to the cluster (some systems are directly logged into, eg. SMPs and smaller specialty systems).  You can use these to do most of your work preparing for jobs (compiling, editing configuration files) and other low-intensity tasks like moving and copying files.  &lt;br /&gt;
&lt;br /&gt;
You can also use them for other quick tasks, like simple post-processing, but any significant work should be submitted as a job to the compute nodes.  On most login nodes, each process is limited to 1 cpu-hour; this will be noticable if you perform anything compute-intensive, and can affect IO-oriented activity as well (such as very large &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; operations.)&lt;br /&gt;
&lt;br /&gt;
=== How can I suspend and resume my session? ===&lt;br /&gt;
&lt;br /&gt;
The program screen can start persistent terminals from which you can detach and reattach.  The simplest use of screen is&lt;br /&gt;
&lt;br /&gt;
 screen -dR&lt;br /&gt;
&lt;br /&gt;
which will either reattach you to any existing session or create a new one if one doesn&amp;#039;t exist.  To terminate the current screen session, type &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;.  To detach manually (you are automatically detached if the connection is lost) press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;d&amp;#039;&amp;#039;, you can the resume later as above (ideal for running background jobs).  Note that &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; is screen&amp;#039;s escape sequence, so you have to do &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;a&amp;#039;&amp;#039; to get the regular effect of pressing &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; inside a screen session (e.g., moving the cursor to the start of the line in a shell).&lt;br /&gt;
&lt;br /&gt;
For a list of other &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; key sequences, press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;?&amp;#039;&amp;#039;.  For further details and  command line options, see the [http://www.gnu.org/software/screen/manual/screen.html screen manual] (or type &amp;lt;tt&amp;gt;man screen&amp;lt;/tt&amp;gt; on any of the clusters).&lt;br /&gt;
&lt;br /&gt;
Other notes:&lt;br /&gt;
* If you want to create additional &amp;quot;text windows&amp;quot;, use Ctrl-A Ctrl-C. Remember to type &amp;quot;exit&amp;quot; to close it. &lt;br /&gt;
* To switch to a &amp;quot;text window&amp;quot; with a certain number, use Ctrl-A # (where # is 0 to 9).&lt;br /&gt;
* To see a list of window numbers use Ctrl-A w&lt;br /&gt;
* To be presented a list of windows and select one to use, use Ctrl-A &amp;quot; (This is handy if you&amp;#039;ve made too many windows.)&lt;br /&gt;
* If the program running in a screen &amp;quot;text window&amp;quot; refuses to die (i.e., it needs to be killed) you can use Ctrl-A K&lt;br /&gt;
* For brief help on keystrokes use Ctrl-A ?&lt;br /&gt;
* For extensive help, run &amp;quot;man screen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What operating systems are supported? ===&lt;br /&gt;
UNIX in general. Currently, Linux is the only operating system used within SHARCNET.&lt;br /&gt;
&lt;br /&gt;
=== What makes a cluster different than my UNIX workstation? ===&lt;br /&gt;
&lt;br /&gt;
If you are familiar with UNIX, then using a cluster is not much different from using a workstation. When you login to a cluster, you in fact only log in to one of the cluster nodes. In most cases, each cluster node is a physical machine, usually a server class machine, with one or several CPUs, that is more or less the same as a workstation you are familiar with. The difference is that these nodes are interconnected with special interconnect devices and the way you run your program is slightly different. Across SHARCNET clusters, you are not expected to run your program interactively. You will have to run your program through a queueing system. That also means where and when your program gets to run is not decided by you, but by the queueing system.&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Those primary programming languages such as C, C++, Fortran, and Python are supported. Other languages, such as Java, Pascal and Ada, are also supported, but with limited technical support from us. &lt;br /&gt;
&lt;br /&gt;
=== How do I organize my files? ===&lt;br /&gt;
[https://docs.computecanada.ca/wiki/Storage_and_file_management#Storage_types Main file systems on our National systems.]&lt;br /&gt;
&lt;br /&gt;
==== How do I transfer files/directories to/from or between cluster? ====&lt;br /&gt;
&lt;br /&gt;
=====Unix/Linux=====&lt;br /&gt;
To transfer files to and from a cluster on a UNIX machine, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt;. For example, if you want to upload file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; to cluster graham from your machine &amp;lt;tt&amp;gt;myhost&amp;lt;/tt&amp;gt;, use the following command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp foo.f graham.computecanada.ca:&lt;br /&gt;
&lt;br /&gt;
assuming that your machine has &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; installed. If you want to transfer a file from Windows or Mac, you need have &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt; for Windows or Mac installed.&lt;br /&gt;
&lt;br /&gt;
If you transfer file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; between Compute Canada clusters, say from your home directory on cedar to your home directory on graham, simply use the following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp foo.f graham:/home/username/&lt;br /&gt;
&lt;br /&gt;
If you are transferring files between a UNIX machine and a cluster, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; command with &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; option. For instance, if you want to download the subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; in the directory &amp;lt;tt&amp;gt;project&amp;lt;/tt&amp;gt; in your home directory on graham to your local UNIX machine, on your local machine, use command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp -rp graham.sharcnet.ca:project/foo .&lt;br /&gt;
&lt;br /&gt;
Similarly, you can transfer the subdirectory between Compute Canada clusters. The following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp -r graham:/home/username/scratch/foo .&lt;br /&gt;
&lt;br /&gt;
will download subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; from your scratch directory on graham to your home directory on cedar (note that the prompt indicates you are currently logged on to cedar).&lt;br /&gt;
&lt;br /&gt;
The use of &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; option above will preserve the time stamp of each file. For Windows and Mac, you need to check the documentation of &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; for features. &amp;#039;&amp;#039;&amp;#039;Do not use -p switch with scp or cp commands on clusters, when the destination is your project space&amp;#039;&amp;#039;&amp;#039;, or you might run into the infamous [https://docs.computecanada.ca/wiki/Frequently_Asked_Questions#Disk_quota_exceeded_error_on_.2Fproject_filesystems Disk quota exceeded issue].&lt;br /&gt;
&lt;br /&gt;
You may also &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; and compress the entire directory and then use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to save bandwidth. In the above example, first you login to graham, then do the following&lt;br /&gt;
&lt;br /&gt;
 [username@gra-login2:~]$ cd project&lt;br /&gt;
 [username@gra-login2:~]$ tar -cvf foo.tar foo&lt;br /&gt;
 [username@gra-login2:~]$ gzip foo.tar&lt;br /&gt;
&lt;br /&gt;
Then on your local machine myhost, use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to copy the tar file&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp graham.computecanada.ca:project/foo.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Note for most Linux distributions, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; has an option &amp;lt;tt&amp;gt;-z&amp;lt;/tt&amp;gt; that will compress the &amp;lt;tt&amp;gt;.tar&amp;lt;/tt&amp;gt; file using &amp;lt;tt&amp;gt;gzip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Windows=====&lt;br /&gt;
You may read the instructions on using an ssh client. [[https://helpwiki.sharcnet.ca/wiki/SSH#Transfering_files_.28Secure_File_Transfer_Client.29]]&lt;br /&gt;
&lt;br /&gt;
====How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect?====&lt;br /&gt;
&lt;br /&gt;
In general, most users should be fine using &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to transfer data to and from SHARCNET systems.  If you need to transfer a lot of files &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; is recommended to ensure that you do not need to restart the transfer from scratch should there be a connection failure.  Although you can use &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to any cluster&amp;#039;s login node(s), it is often best to use gra-dtn1.computecanada.ca - it is dedicated to data transfer. &lt;br /&gt;
&lt;br /&gt;
In general one should expect the following transfer rates with &amp;#039;&amp;#039;scp&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* If you are connecting to SHARCNET through a Research/Education network site (ORION, CANARIE, Internet2) and are on a fast local network (this is the case for most users connecting from academic institutions) then you should be able to attain sustained transfer speeds in excess of 10MB/s.  If your path is all gigabit or better, you should be able to reach rates above 50 MB/s.&lt;br /&gt;
* If you are transferring data over the wider internet, you will not be able to attain these speeds, as all traffic that does not enter/exit SHARCNET via the R&amp;amp;E net is restricted to a limited-bandwidth commercial feed. In this case one will typically see rates on the order of 1MB/s or less.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that filesystems and networks are  shared resources and suffer from contention; if they are busy the above rates may not be attainable&lt;br /&gt;
&lt;br /&gt;
For transferring large amounts of data (many gigabytes) the best approach is to use the online tool [https://docs.computecanada.ca/wiki/Transferring_data#Globus_transfer Globus].&lt;br /&gt;
&lt;br /&gt;
==== How do I access the same file from different subdirectories on the same cluster ? ====&lt;br /&gt;
&lt;br /&gt;
You should not need copy large files on the same cluster (e.g. from one user to another&lt;br /&gt;
or using the same file in different subdirectories).  Instead of using&lt;br /&gt;
scp you might consider issuing a &amp;quot;soft link&amp;quot; command. Assume that you need access&lt;br /&gt;
to the file large_file1 in subdirectory /home/user1/subdir1 and you need it to be in your&lt;br /&gt;
subdirectory /home/my_account/my_dir from where you will invoke it under the name&lt;br /&gt;
my_large_file1.  Then go to that directory and type:&lt;br /&gt;
&lt;br /&gt;
 ln -s /home/user1/subdir1/large_file1    my_large_file1&lt;br /&gt;
&lt;br /&gt;
Another example, assume that in subdirectory /home/my_account/PROJ1 you have several&lt;br /&gt;
subdirectories called CASE1, CASE2, ...  In each subdirectory CASEn you have a slightly&lt;br /&gt;
different code but all of them process the same data file called test_data. Rather than&lt;br /&gt;
copying the test_data file into each CASEn subdirectory, place test_data above i.e.&lt;br /&gt;
in /home/my_account/PROJ1 and then in each CASEn subdirectory issue following &amp;quot;soft link&amp;quot;&lt;br /&gt;
command:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../test_data  test_data&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;soft links&amp;quot; can be removed by using the rm command. For example, to remove the soft link from&lt;br /&gt;
/home/my_account/PROJ1/CASE2 type following command from this subdirectory:&lt;br /&gt;
&lt;br /&gt;
 rm -rf test_data&lt;br /&gt;
&lt;br /&gt;
Typing above command from subdirectory /home/my_account/PROJ1 would remove the actual file and then&lt;br /&gt;
none of the CASEn subdirectories would have access to it.&lt;br /&gt;
&lt;br /&gt;
==== How are files deleted from the /home/userid/scratch filesystems? ====&lt;br /&gt;
&lt;br /&gt;
All files on /home/userid/scratch that are over 2 months old (not old in the common sense, please see below) are automatically deleted. Data needed for long term storage and reference should be kept in either /project, /nearline, or other archival storage areas. The scratch filesystem is checked at the end of the month for files which will be candidates for expiry on the 15th of the following month. On the first day of the month, a login message is posted and a notification e-mail is sent to all users who have at least one file which is a candidate for purging and containing the location of a file which lists all the candidates for purging.  On the 12th of the month, a second scan is run to check for files that will still expire on the 15th, and again, users with candidates for expiry are sent a second warning email.  Lastly, on the 15th, all files which are due for expiry are removed.&lt;br /&gt;
&lt;br /&gt;
An unconventional aspect of this system is that it does not determine the age of a file based on the file&amp;#039;s attributes, e.g., the standard dates reported by the &amp;lt;i&amp;gt;stat&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;find&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;ls&amp;lt;/i&amp;gt;, etc. commands.  (This is known as the &amp;quot;mtime&amp;quot; of the file, for &amp;quot;modification time&amp;quot;, and is frequently inaccurate.) The age of a file is determined based on whether or not its data contents (i.e., the information stored in the file) have changed or been accessed, and this age is stored externally to the file.  Only files where the contents have changed or accessed will have their age counter &amp;quot;reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A list of your candidate files for expiry can be found in /home/scratch_to_delete/$USER  (where $USER is your userid).&lt;br /&gt;
&lt;br /&gt;
===== How do I check the age of a file =====&lt;br /&gt;
We define a file&amp;#039;s age as the most recent of:&lt;br /&gt;
&lt;br /&gt;
 *the access time (atime) and&lt;br /&gt;
 *the change time (ctime)&lt;br /&gt;
&lt;br /&gt;
You can find the ctime of a file using&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lc &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while the atime can be obtained with the command&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lu &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do not use the modify time (mtime) of the file because it can be modified by the user or by other programs to display incorrect information.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, simple use of the atime property would be sufficient, as it is updated by the system in sync with the ctime. However, userspace programs are able to alter atime, potentially to times in the past, which could result in early expiration of a file. The use of ctime as a fallback guards against this undesirable behaviour.&lt;br /&gt;
&lt;br /&gt;
It is also your responsibility to manage your stored data: most of the filesystems are not intended to provide an indefinite archiving service so when a given file or directory is no longer needed, you need to move it to a more appropriate filesystem which may well mean your personal workstation or some other storage system under your control. Moving significant amounts of data between your workstation and a Compute Canada system or between two Compute Canada systems should generally be done using Globus.&lt;br /&gt;
&lt;br /&gt;
==== How to archive my data? ====&lt;br /&gt;
&lt;br /&gt;
===== Use tar to archive files and directories =====&lt;br /&gt;
&lt;br /&gt;
The primary archiving utility on all Linux and Unix-like systems is the [https://www.gnu.org/software/tar/manual/tar.html tar] command. It will bundle a bunch of files or directories together and generate a single file, called an &amp;#039;&amp;#039;archive file&amp;#039;&amp;#039; or &amp;#039;&amp;#039;tar-file&amp;#039;&amp;#039;. By convention an archive file has &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; as the file name extension. When you archive a directory with &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, it will, by default, include all the files and sub-directories contained within it, and sub-sub-directories contained in those, and so on. So the command &amp;lt;code&amp;gt;tar --create --file project1.tar project1&amp;lt;/code&amp;gt; will pack all the content of directory &amp;#039;&amp;#039;project1&amp;#039;&amp;#039; into the file &amp;#039;&amp;#039;project1.tar&amp;#039;&amp;#039;. The original directory will remain unchanged, so this may double the amount of disk space occupied!&lt;br /&gt;
&lt;br /&gt;
You can extract files from an archive using the same command with a different option:&amp;lt;code&amp;gt;tar --extract --file project1.tar&amp;lt;/code&amp;gt;. If there is no directory with the original name, it will be created. If a directory of that name exists and contains files of the same names as in the archive file, they will be overwritten. Another option can be added to specify the destination directory where to extract the archive&amp;#039;s content.   &lt;br /&gt;
&lt;br /&gt;
===== Compress and uncompress tar files =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; archiving utility can compress an archive file at the same time it creates it. There are a number of compression methods to choose from. We recommend either &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;, which can be used as follows:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ tar --create --xz --file project1.tar.xz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --xz --file project1.tar.xz&lt;br /&gt;
 [user_name@localhost]$ tar --create --gzip --file project1.tar.gz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --gzip --file project1.tar.gz&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;code&amp;gt;--xz&amp;lt;/code&amp;gt; will produce a smaller compressed file (a &amp;quot;better compression ratio&amp;quot;) but takes longer and uses more RAM while working. &amp;lt;code&amp;gt;--gzip&amp;lt;/code&amp;gt; does not typically compress as small, but may be used if you encounter difficulties due to insufficient memory or excessive run time during &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt;. A third option, &amp;lt;code&amp;gt;--bzip2&amp;lt;/code&amp;gt;, is also available, that typically does not compress as small as &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; but takes longer than &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt; first without compression and then use the commands &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; in a separate step, although there is rarely a reason to do so. Similarly, you can run &amp;lt;code&amp;gt;xz -d&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip -d&amp;lt;/code&amp;gt; to decompress an archive file before running &amp;lt;code&amp;gt;tar --extract&amp;lt;/code&amp;gt;, but again there is rarely a reason to do so.&lt;br /&gt;
&lt;br /&gt;
The commands &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; can be used to compress any file, not just archive files:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ gzip bigfile&lt;br /&gt;
 [user_name@localhost]$ xz bigfile&lt;br /&gt;
&lt;br /&gt;
These commands will produce the files &amp;lt;code&amp;gt;bigfile.gz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigfile.xz&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
=====Archival Storage=====&lt;br /&gt;
&lt;br /&gt;
On Graham, files copied to ~/nearline will be subsequently moved to offline (tape-based) storage. See [https://docs.computecanada.ca/wiki/Using_nearline_storage this link] for more details.&lt;br /&gt;
&lt;br /&gt;
==== How can I check the hidden files in directory? ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;.&amp;quot; at the beginning of the name means that the file is &amp;quot;hidden&amp;quot;. You have to use the -a option with ls to see it. I.e. &amp;lt;code&amp;gt;ls -a &amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
If you want to display only the hidden files then type:&lt;br /&gt;
 ls -d .*&lt;br /&gt;
&lt;br /&gt;
Note: there is an alias which is loaded from /etc/bashrc (see your .bashrc file). The alias is defined by alias &amp;lt;code&amp;gt; l.=&amp;#039;ls -d .* --color=auto&amp;#039; &amp;lt;/code&amp;gt; and if you type:&lt;br /&gt;
 l.&lt;br /&gt;
you will also display only the hidden files.&lt;br /&gt;
&lt;br /&gt;
==== How can I count the number of files in a directory? ====&lt;br /&gt;
&lt;br /&gt;
One can use the following command to count the number of files in a directory (in this example, your /work directory):&lt;br /&gt;
&lt;br /&gt;
 find /home/$USER -type f   | wc -l&lt;br /&gt;
&lt;br /&gt;
It is always a good idea to [[Knowledge_Base#How_to_archive_my_data.3F|archive]] and/or compress files that are no longer needed on the filesystem (see [https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_to_organize_a_large_number_of_files.3F below]).  This helps minimize one&amp;#039;s footprint on the filesystem and as such the impact they have on other users of the shared resource.&lt;br /&gt;
&lt;br /&gt;
==== How to organize a large number of files? ====&lt;br /&gt;
&lt;br /&gt;
With parallel cluster filesystems, you will get best I/O performance writing data to a small number of large files. Since all metadata operations on each of our parallel filesystems are handled by a single file server, depending on how many files are being accessed the server can become overwhelmed leading to poor overall I/O performance for all users. If your workflow involves storing data in a large number of files, it is best to pack these files into a small number of larger archives, e.g. using tar command&lt;br /&gt;
&lt;br /&gt;
 tar cvf archiveFile.tar directoryToArchive&lt;br /&gt;
&lt;br /&gt;
For better performance with many files inside your archive, we recommend to use DAR (Disk ARchive utility), which is a disk analog of tar (Tape ARchive).  Dar can extract files from anywhere in the archive much faster than tar. The dar command is available by default on sharcnet systems. It can be used to pack files into a dar archive by doing something like: &lt;br /&gt;
&lt;br /&gt;
 dar -s 1G -w -c archiveFile -g directoryToArchive&lt;br /&gt;
&lt;br /&gt;
In this example we split the archive into 1GB chunks, and the archive files will be named archiveFile.1.dar, archiveFile.2.dar, and so on. To list the contents of the archive, you can type:&lt;br /&gt;
&lt;br /&gt;
 dar -l archiveFile&lt;br /&gt;
&lt;br /&gt;
To temporarily extract files for post-processing into current directory, you would type:&lt;br /&gt;
&lt;br /&gt;
 dar -R . -O -x archiveFile -v -g pathToYourFile/fileToExtract&lt;br /&gt;
&lt;br /&gt;
=== I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host ===&lt;br /&gt;
&lt;br /&gt;
The most likely cause of this behaviour is repeated failed login attempts.  Part of our security policies involves blocking the IP address of machines that attempt multiple logins with incorrect passwords over a short period of time---many brute-force attacks on systems do exactly this: looking for poor passwords, badly configured accounts, etc.  Unfortunately, it isn&amp;#039;t uncommon for a user to forget their password and make repeated login attempts with incorrect passwords and end up with that machine blacklisted and unable to connect at all.&lt;br /&gt;
&lt;br /&gt;
A temporary solution is simply to attempt to login from another machine.  If you have access to another machine at your site, you can shell to that machine first, and then shell to the SHARCNET system (as that machine&amp;#039;s IP shouldn&amp;#039;t be blacklisted).  In order to have your machine unblocked, you will have to email to [mailto:support@computecanada.ca support@computecanada.ca] as a system administrator must manually intervene in order to fix it.&lt;br /&gt;
&lt;br /&gt;
NOTE: there are other situations that can produce this message, however they are rarer and more transient.  If you are unable to log in from one machine, but can from another, it is most likely the IP blacklisting that is the problem and the above will provide a temporary work-around while your problem ticket is processed.&lt;br /&gt;
&lt;br /&gt;
=== I am unable to ssh/scp from SHARCNET to my local computer ===&lt;br /&gt;
&lt;br /&gt;
Most campus networks are behind some sort of firewall.  If you can ssh out to SHARCNET, but cannot establish a connection in the other direction, then you are probably behind a firewall and should speak with your local system administrator or campus IT department to determine if there are any exceptions or workarounds in place.&lt;br /&gt;
&lt;br /&gt;
=== SSH tells me SOMEONE IS DOING SOMETHING NASTY!? ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please first read the following:&lt;br /&gt;
&lt;br /&gt;
https://docs.computecanada.ca/wiki/SSH_security_improvements&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suppose you attempt to login to SHARCNET, but instead get an alarming message like this:&lt;br /&gt;
&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that the RSA host key has just been changed.&lt;br /&gt;
 The fingerprint for the RSA key sent by the remote host is&lt;br /&gt;
 fe:65:ab:89:9a:23:34:5a:50:1e:05:d6:bf:ec:da:67.&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending key in /home/user/.ssh/known_hosts:42&lt;br /&gt;
 RSA host key for requin has changed and you have requested strict checking.&lt;br /&gt;
 Host key verification failed. &lt;br /&gt;
&lt;br /&gt;
SSH begins a connection by verifying that the host you&amp;#039;re connecting to is authentic. It does this by caching the hosts&amp;#039;s &amp;quot;hostkey&amp;quot; in your  &amp;lt;tt&amp;gt;~/.ssh/known_hosts&amp;lt;/tt&amp;gt; file. At times, a hostkey may be changed legitimately; when this happens, you may see such a message. It&amp;#039;s a good idea to verify this with us, you may be able to check the fingerprint yourself by logging into another sharcnet system and running:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub &lt;br /&gt;
&lt;br /&gt;
If the fingerprint is OK, the normal way to fix the problem is to simply remove the old hostkey from your &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. On machines with commandline SSH, you can do this with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -R thehostname&lt;br /&gt;
&lt;br /&gt;
You can use your choice of editor if you&amp;#039;re comfortable doing so (it&amp;#039;s a plain text file, but has long lines). On a unix-compatible machine, you can also use the following very small script (Substitute the line(s) printed in the warning message illustrated above for &amp;#039;42&amp;#039; here.):&lt;br /&gt;
&lt;br /&gt;
 perl -pi -e &amp;#039;undef $_ if (++$line == 42)&amp;#039; ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
Another solution is brute-force: remove the whole &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. This throws away any authentication checking, and afterwards, your first connection to any machine will prompt you to accept a newly discovered host key.&lt;br /&gt;
&lt;br /&gt;
=== Ssh works, but scp doesn&amp;#039;t! ===&lt;br /&gt;
&lt;br /&gt;
If you can &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; to a cluster successfully, but cannot &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to to it, the problem is likely that your login scripts print unexpected messages which confuse &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; is based on the same &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, but assumes that the connection is &amp;quot;clean&amp;quot;: that is, that it does not produce any un-asked-for content. If you have something like:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; will be confused by the salutation. To avoid this, simply ensure that the message is only printed on an interactive login:&lt;br /&gt;
&lt;br /&gt;
 if [ -t 0 ]; then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
or in csh/tcsh syntax:&lt;br /&gt;
&lt;br /&gt;
 if ( -t 0 ) then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
=== How do I edit my program on a cluster? ===&lt;br /&gt;
&lt;br /&gt;
We provide a variety of editors, such as the traditional text-mode &amp;lt;tt&amp;gt;emacs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; (vim), as well as a simpler one called &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;. If you have X on your desktop (and tunneled through SSH), you can use the GUI versions (&amp;lt;tt&amp;gt;xemacs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If your desktop supports FUSE, it&amp;#039;s very convenient to simply mount your home tree like this:&lt;br /&gt;
 mkdir sharcnet&lt;br /&gt;
 sshfs graham.computecanada.ca: sharcnet&lt;br /&gt;
you can then use any local editor of your choice.&lt;br /&gt;
&lt;br /&gt;
If you run emacs on your desktop, you can also edit a remote file from within your local emacs client using [http://www.gnu.org/software/tramp Tramp], opening and saving a file as /username@cluster.computecanada.ca:path/file.&lt;br /&gt;
&lt;br /&gt;
== Research at SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== I have a research project I would like to collaborate on with SHARCNET, who should I talk to? ===&lt;br /&gt;
&lt;br /&gt;
You may contact [mailto:barb@sharcnet.ca SHARCNET head office] or contact members of the [https://www.sharcnet.ca/my/contact/directory#techteam SHARCNET technical staff].&lt;br /&gt;
&lt;br /&gt;
=== How can I contribute compute resources to SHARCNET so that other researchers can share it? ===&lt;br /&gt;
&lt;br /&gt;
Most people&amp;#039;s research is &amp;quot;bursty&amp;quot; - there are usually sparse periods of time when some computation is urgently needed, and other periods when there is less demand. One problem with this is that if you purchase the equipment you need to meet your &amp;quot;burst&amp;quot; needs, it&amp;#039;ll probably sit, underutilized, during other times.&lt;br /&gt;
&lt;br /&gt;
An alternative is to donate control of this equipment to SHARCNET, and let us arrange for other users to use it when you are not. We prefer to be involved in the selection and configuration of such equipment. Our promise to contributors is that as much as possible, they should obtain as much benefit from the cluster as if it were not shared. Owners get preferential access. Naturally, owners are also able to burst to higher peak usage, since their equipment has been pooled with other contributions. (Technically, SHARCNET cannot itself own such equipment — it remains owned by the institution in question, and will be returned to the contributor upon request.) If you think this model will also work for you and you would like to contribute your computational resource to help the research community at SHARCNET, you can contact us for such arrangement.&lt;br /&gt;
&lt;br /&gt;
=== I do not know much about computation, nor is it my research interest. But I am interested in getting my research done faster with the help of the high performance computing technology. In other words, I do not care about the process and mechanism, but only the final results. Can SHARCNET provide this type of help? ===&lt;br /&gt;
&lt;br /&gt;
We will be happy to bring the technology of high performance computing to you to accelerate your research, if at all possible. If you would like to discuss your plan with us, please feel free to contact our [https://www.sharcnet.ca/my/contact/directory#techteam high performance computing specialists]. They will be happy to listen to your needs and are ready to provide appropriate suggestions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET participates in the Compute Canada NRAC (National Resource Allocation Competition) and provides a continual competition for groups that require more than the default level of access to our resources.  Please see [[Dedicated Resources]] for further information.&lt;br /&gt;
&lt;br /&gt;
=== I heard SHARCNET offers fellowships, where can I get more information? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET no longer actively runs a fellowship program.  You may find information regarding past fellowships and other dedicated resource opportunities on the [https://www.sharcnet.ca/my/research/fellowships Research Fellowships page] of the web portal.&lt;br /&gt;
&lt;br /&gt;
=== I would like to do some research at SHARCNET as a visiting scholar, how should I apply? ===&lt;br /&gt;
&lt;br /&gt;
In general, you will need to find a hosting department or a person affiliated with one of the SHARCNET institutions. You may also [http://www.sharcnet.ca/my/contact contact us] directly for more specific information.&lt;br /&gt;
&lt;br /&gt;
=== I would like to send my students to SHARCNET to do some work for me. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
See above.&lt;br /&gt;
&lt;br /&gt;
== Contacting SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for research, academic exchanges, and technical issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for business development, education and other issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact a specific staff member at SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
See [https://www.sharcnet.ca/my/contact/directory staff directory] for contact information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Acknowledge SHARCNET in Publications ==&lt;br /&gt;
&lt;br /&gt;
=== How do I acknowledge SHARCNET in my publications? ===&lt;br /&gt;
&lt;br /&gt;
We recommend one cite the following:&lt;br /&gt;
&lt;br /&gt;
 This work was made possible by the facilities of the Shared Hierarchical &lt;br /&gt;
 Academic Research Computing Network (SHARCNET:www.sharcnet.ca) and Digital Research Alliance of Canada (https://alliancecan.ca/en).&lt;br /&gt;
&lt;br /&gt;
=== I&amp;#039;ve seen different spellings of the name, what is the standard spelling of SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
We suggest the spelling SHARCNET, all in upper case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What types of research programs / support are provided to the research community? ==&lt;br /&gt;
&lt;br /&gt;
Our overall intent is to provide support that can both respond to the range of needs that the user community presents and help to increase the sophistication of the community and enable new and larger-in-scope applications making use of SHARCNET&amp;#039;s HPC facilities. The range of support can perhaps best be understood in terms of a pyramid:&lt;br /&gt;
&lt;br /&gt;
=== Level 1 ===&lt;br /&gt;
&lt;br /&gt;
At the apex of the pyramid, SHARCNET supports a small number of projects with dedicated programmer support. The intent is to enable projects that will have a lasting impact and may lead to a &amp;quot;step change&amp;quot; in the way research is done at SHARCNET. Inter-disciplinary and inter-institutional projects are particularly welcomed. For the latest information about the program, including application guidelines, please see the  [https://www.sharcnet.ca/my/research/programming Programming Competition] page in our web portal.&lt;br /&gt;
&lt;br /&gt;
=== Level 2 ===&lt;br /&gt;
&lt;br /&gt;
The middle layers of support are provided through a number of initiatives.&lt;br /&gt;
&lt;br /&gt;
These include:&lt;br /&gt;
* Programming support of more modest duration (several days to one month engagement, usually part time)&lt;br /&gt;
* Training on a variety of topics through [https://www.sharcnet.ca/help/index.php/Training workshops, seminars and online training materials]&lt;br /&gt;
* Consultation. This may include user-initiated interactions on particular programs, algorithms, techniques, debugging, optimization etc., as well as unsolicited help to ensure effective use of SHARCNET systems&lt;br /&gt;
* Site Leaders play an important role in working with the community to help researchers connect with SHARCNET staff and to obtain appropriate help and support.&lt;br /&gt;
&lt;br /&gt;
=== Level 3 ===&lt;br /&gt;
&lt;br /&gt;
The base level of the pyramid handles the very large number of small requests that are essential to keeping the user community working effectively with the infrastructure on a day-to-day basis. Several of these can be answered by this FAQ; many of the issues are presented through the [https://www.sharcnet.ca/help/index.php/Knowledge_Base#Compute_Canada_Problem_Ticket_System ticketing system]. The support is largely problem oriented with each problem being time limited.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=933</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=933"/>
		<updated>2024-09-17T17:10:21Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* What is SHARCNET? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Sharcnet_logo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== About SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== What is SHARCNET? ===&lt;br /&gt;
SHARCNET stands for Shared Hierarchical Academic Research Computing Network. Established in 2000, SHARCNET is the largest high performance computing consortium in Canada, involving 19 universities and colleges across southern, central and northern Ontario.&lt;br /&gt;
&lt;br /&gt;
SHARCNET is a member consortium in the [https://alliancecan.ca/en Digital Research Alliance of Canada (Alliance)]  national HPC platform.&lt;br /&gt;
&lt;br /&gt;
=== Where is SHARCNET? ===&lt;br /&gt;
The [http://www.sharcnet.ca/my/contact main office] of SHARCNET is located in the Western Science Centre at [http://www.uwo.ca/ The University of Western Ontario].&lt;br /&gt;
&lt;br /&gt;
=== What does SHARCNET have? ===&lt;br /&gt;
The primary SHARCNET compute system is [https://docs.computecanada.ca/wiki/Graham Graham heterogeneous cluster] located at the University of Waterloo.  It is named after Wes Graham, the first director of the Computing Centre at Waterloo.  It consists of 41,548 cores and 520 GPU devices, spread across 1,185 nodes of different configurations.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with SHARCNET? ===&lt;br /&gt;
If you have a program that takes months to run on your PC, you could probably run it within a few hours using hundreds of processors on SHARCNET / the Alliance, provided your program is inherently parallelisable. If you have hundreds or thousands of test cases to run through on your PC or computers in your lab, then with hundreds of processors running those cases independently will significantly reduce your test cycles.&lt;br /&gt;
&lt;br /&gt;
=== Who is running SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
The daily operation and development of SHARCNET computational facilities is managed by a group of highly qualified system administrators. In addition, we have a team of high performance technical computing consultants, who are responsible for technical support on libraries, programming and application analysis.&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET? ===&lt;br /&gt;
For technical inquiries, you may send E-mail to [mailto:support@computecanada.ca support@computecanada.ca] or [mailto:help@sharcnet.ca help@sharcnet.ca], or [https://www.sharcnet.ca/my/contact/directory#techteam contact your local system administrator or HPC specialist]. For general inquiries, you may contact the SHARCNET [http://www.sharcnet.ca/my/contact main office].&lt;br /&gt;
&lt;br /&gt;
== Getting an Account with SHARCNET and Related Issues ==&lt;br /&gt;
&lt;br /&gt;
To use SHARCNET (and any other national facilities in the Alliance) one has to [https://www.alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account apply for an Alliance account].&lt;br /&gt;
&lt;br /&gt;
== Getting Help ==&lt;br /&gt;
&lt;br /&gt;
=== I have encountered a problem while using an Alliance /SHARCNET system and need help, who should I talk to? ===&lt;br /&gt;
We encourage you to use the problem ticketing system (described in detail [[FAQ: Getting Help#Alliance Problem Ticket System|below]]) .  This is the most efficient way of reporting a problem.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the [https://www.sharcnet.ca/my/contact/directory directory] page.&lt;br /&gt;
&lt;br /&gt;
=== How long should I expect to wait for support? ===&lt;br /&gt;
Unfortunately Alliance/SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week.  User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .  &lt;br /&gt;
&lt;br /&gt;
Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.  &lt;br /&gt;
&lt;br /&gt;
=== Alliance Problem Ticket System ===&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;problem ticket system&amp;quot;? ====&lt;br /&gt;
&lt;br /&gt;
This is a system that allows anyone with an Alliance account to start a persistent email thread that is referred to as a &amp;quot;problem ticket&amp;quot;.    When a user submits a new ticket it will be brought to the attention of an appropriate and available Alliance/SHARCNET staff member for resolution.  &lt;br /&gt;
&lt;br /&gt;
You interact with the ticket system entirely via email.&lt;br /&gt;
&lt;br /&gt;
==== What do I need to specify in a ticket ? ====&lt;br /&gt;
&lt;br /&gt;
To help us address your question faster, please try to do the following when submitting a ticket:&lt;br /&gt;
&lt;br /&gt;
#specify which of our systems is involved &lt;br /&gt;
#if the problem pertains to a job, then report the &amp;lt;u&amp;gt;jobid&amp;lt;/u&amp;gt; associated with the job; this is an integer that is returned by the scheduler when you submit the job&lt;br /&gt;
#report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem; if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem&lt;br /&gt;
#if you&amp;#039;d like for a particular staff member to be aware of the ticket, mention them&lt;br /&gt;
&lt;br /&gt;
==== How do I submit a ticket? ====&lt;br /&gt;
&lt;br /&gt;
In general, you can submit a new ticket by emailing  [mailto:support@computecanada.ca support@computecanada.ca]  with the email address associated with your Alliance account.  If you are using another email address, please provide your full name, your Alliance default username (if available) and your university or institution.&lt;br /&gt;
&lt;br /&gt;
If you like, you can also target your inquiry more specifically, by using the following addresses to submit your ticket:&lt;br /&gt;
&lt;br /&gt;
* [mailto:help@sharcnet.ca help@sharcnet.ca] - questions specific to SHARCNET, for example relating to contributed SHARCNET systems&lt;br /&gt;
* [mailto:globus@computecanada.ca globus@computecanada.ca] -- Questions about [[Globus]] file transfer services&lt;br /&gt;
* [mailto:cloud@computecanada.ca cloud@computecanada.ca] -- Questions about using Alliance cloud resources&lt;br /&gt;
* [mailto:accounts@computecanada.ca accounts@computecanada.ca] -- Questions about Alliance accounts&lt;br /&gt;
* [mailto:renewals@computecanada.ca renewals@computecanada.ca] -- Questions about Alliance account renewals&lt;br /&gt;
&lt;br /&gt;
=== I am new to parallel programming, can you help me get started with my project? ===&lt;br /&gt;
Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research. If your programming project would involve a significant staff time, you should consider applying for Dedicated Programming support. (We run the competition annually; see https://www.sharcnet.ca/my/research/programming).&lt;br /&gt;
&lt;br /&gt;
=== Can you install a package on a cluster for me? ===&lt;br /&gt;
Certainly.  We suggest you make the request by sending e-mail to [mailto:support@computecanada.ca support@computecanada.ca] with the specific request.&lt;br /&gt;
&lt;br /&gt;
=== I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that? ===&lt;br /&gt;
If you tell us what you want, we may be able to help you out.&lt;br /&gt;
&lt;br /&gt;
=== Does SHARCNET provide any training on programming and using the systems? ===&lt;br /&gt;
&lt;br /&gt;
Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every summer (usually late May to early June), SHARCNET holds [https://www.sharcnet.ca/help/index.php/Summer_Schools an annual HPC Summer School] with a variety of in-depth, hands-on workshops. &lt;br /&gt;
&lt;br /&gt;
SHARCNET also offers a series of online seminars (so-called &amp;quot;General interest webinars&amp;quot;), typically delivered every second Wednesday at lunch time.  These are announced via the SHARCNET events mailing list and one can see the schedule at the [https://www.sharcnet.ca/my/news/calendar SHARCNET event calendar].  Past seminars are recorded and posted on [http://youtube.sharcnet.ca our youtube channel]. A full listing of the past webinars is available on the [https://helpwiki.sharcnet.ca/wiki/Online_Seminars Online Seminars] page.&lt;br /&gt;
&lt;br /&gt;
=== Attending SHARCNET Webinars ===&lt;br /&gt;
{{:Attending SHARCNET Webinars}}&lt;br /&gt;
&lt;br /&gt;
== Logging in to Systems, Transferring and Editing Files ==&lt;br /&gt;
&lt;br /&gt;
=== How do I login to SHARCNET? ===&lt;br /&gt;
You access the SHARCNET clusters using ssh.  For Graham and other national systems Compute Canada credentials are required.  For the remaining (&amp;quot;Legacy&amp;quot;) systems, you will require SHARCNET credentials (submit a ticket to help@sharcnet.ca if you have questions).&lt;br /&gt;
&lt;br /&gt;
====Unix/Linux/OS X====&lt;br /&gt;
To login to a system, you need to use an [http://www.openssh.com/ Secure Shell (SSH)] connection. If you are logging in from a UNIX-based machine, make sure it has an SSH client (ssh) installed (this is almost always the case on UNIX/Linux/OS X). If you have the same login name on both your local system and SHARCNET, and you want to login to, say, &amp;lt;tt&amp;gt;graham&amp;lt;/tt&amp;gt;, you may use the command:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
If your Compute Canada username is different from the username on your local systems, then you may use either of the following forms:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.computecanada.ca -l username&lt;br /&gt;
 ssh username@graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
If you want to establish an X window connection so that you can use graphics applications such as &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ddt&amp;lt;/tt&amp;gt;, you can add a &amp;lt;tt&amp;gt;-Y&amp;lt;/tt&amp;gt; to the command:&lt;br /&gt;
&lt;br /&gt;
 ssh -Y username@graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
This will automatically set the X DISPLAY variable when you login.&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
If you are logging from a computer running Windows and need some pointers we recommend consulting our [[SSH]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between Login Nodes and Compute Nodes? ===&lt;br /&gt;
====Login Nodes====&lt;br /&gt;
&lt;br /&gt;
Most of our clusters have distinct &amp;#039;&amp;#039;login nodes&amp;#039;&amp;#039; associated with them that you are automatically redirected to when you login to the cluster (some systems are directly logged into, eg. SMPs and smaller specialty systems).  You can use these to do most of your work preparing for jobs (compiling, editing configuration files) and other low-intensity tasks like moving and copying files.  &lt;br /&gt;
&lt;br /&gt;
You can also use them for other quick tasks, like simple post-processing, but any significant work should be submitted as a job to the compute nodes.  On most login nodes, each process is limited to 1 cpu-hour; this will be noticable if you perform anything compute-intensive, and can affect IO-oriented activity as well (such as very large &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; operations.)&lt;br /&gt;
&lt;br /&gt;
=== How can I suspend and resume my session? ===&lt;br /&gt;
&lt;br /&gt;
The program screen can start persistent terminals from which you can detach and reattach.  The simplest use of screen is&lt;br /&gt;
&lt;br /&gt;
 screen -dR&lt;br /&gt;
&lt;br /&gt;
which will either reattach you to any existing session or create a new one if one doesn&amp;#039;t exist.  To terminate the current screen session, type &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;.  To detach manually (you are automatically detached if the connection is lost) press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;d&amp;#039;&amp;#039;, you can the resume later as above (ideal for running background jobs).  Note that &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; is screen&amp;#039;s escape sequence, so you have to do &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;a&amp;#039;&amp;#039; to get the regular effect of pressing &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; inside a screen session (e.g., moving the cursor to the start of the line in a shell).&lt;br /&gt;
&lt;br /&gt;
For a list of other &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; key sequences, press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;?&amp;#039;&amp;#039;.  For further details and  command line options, see the [http://www.gnu.org/software/screen/manual/screen.html screen manual] (or type &amp;lt;tt&amp;gt;man screen&amp;lt;/tt&amp;gt; on any of the clusters).&lt;br /&gt;
&lt;br /&gt;
Other notes:&lt;br /&gt;
* If you want to create additional &amp;quot;text windows&amp;quot;, use Ctrl-A Ctrl-C. Remember to type &amp;quot;exit&amp;quot; to close it. &lt;br /&gt;
* To switch to a &amp;quot;text window&amp;quot; with a certain number, use Ctrl-A # (where # is 0 to 9).&lt;br /&gt;
* To see a list of window numbers use Ctrl-A w&lt;br /&gt;
* To be presented a list of windows and select one to use, use Ctrl-A &amp;quot; (This is handy if you&amp;#039;ve made too many windows.)&lt;br /&gt;
* If the program running in a screen &amp;quot;text window&amp;quot; refuses to die (i.e., it needs to be killed) you can use Ctrl-A K&lt;br /&gt;
* For brief help on keystrokes use Ctrl-A ?&lt;br /&gt;
* For extensive help, run &amp;quot;man screen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What operating systems are supported? ===&lt;br /&gt;
UNIX in general. Currently, Linux is the only operating system used within SHARCNET.&lt;br /&gt;
&lt;br /&gt;
=== What makes a cluster different than my UNIX workstation? ===&lt;br /&gt;
&lt;br /&gt;
If you are familiar with UNIX, then using a cluster is not much different from using a workstation. When you login to a cluster, you in fact only log in to one of the cluster nodes. In most cases, each cluster node is a physical machine, usually a server class machine, with one or several CPUs, that is more or less the same as a workstation you are familiar with. The difference is that these nodes are interconnected with special interconnect devices and the way you run your program is slightly different. Across SHARCNET clusters, you are not expected to run your program interactively. You will have to run your program through a queueing system. That also means where and when your program gets to run is not decided by you, but by the queueing system.&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Those primary programming languages such as C, C++, Fortran, and Python are supported. Other languages, such as Java, Pascal and Ada, are also supported, but with limited technical support from us. &lt;br /&gt;
&lt;br /&gt;
=== How do I organize my files? ===&lt;br /&gt;
[https://docs.computecanada.ca/wiki/Storage_and_file_management#Storage_types Main file systems on our National systems.]&lt;br /&gt;
&lt;br /&gt;
==== How do I transfer files/directories to/from or between cluster? ====&lt;br /&gt;
&lt;br /&gt;
=====Unix/Linux=====&lt;br /&gt;
To transfer files to and from a cluster on a UNIX machine, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt;. For example, if you want to upload file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; to cluster graham from your machine &amp;lt;tt&amp;gt;myhost&amp;lt;/tt&amp;gt;, use the following command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp foo.f graham.computecanada.ca:&lt;br /&gt;
&lt;br /&gt;
assuming that your machine has &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; installed. If you want to transfer a file from Windows or Mac, you need have &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt; for Windows or Mac installed.&lt;br /&gt;
&lt;br /&gt;
If you transfer file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; between Compute Canada clusters, say from your home directory on cedar to your home directory on graham, simply use the following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp foo.f graham:/home/username/&lt;br /&gt;
&lt;br /&gt;
If you are transferring files between a UNIX machine and a cluster, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; command with &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; option. For instance, if you want to download the subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; in the directory &amp;lt;tt&amp;gt;project&amp;lt;/tt&amp;gt; in your home directory on graham to your local UNIX machine, on your local machine, use command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp -rp graham.sharcnet.ca:project/foo .&lt;br /&gt;
&lt;br /&gt;
Similarly, you can transfer the subdirectory between Compute Canada clusters. The following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp -r graham:/home/username/scratch/foo .&lt;br /&gt;
&lt;br /&gt;
will download subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; from your scratch directory on graham to your home directory on cedar (note that the prompt indicates you are currently logged on to cedar).&lt;br /&gt;
&lt;br /&gt;
The use of &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; option above will preserve the time stamp of each file. For Windows and Mac, you need to check the documentation of &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; for features. &amp;#039;&amp;#039;&amp;#039;Do not use -p switch with scp or cp commands on clusters, when the destination is your project space&amp;#039;&amp;#039;&amp;#039;, or you might run into the infamous [https://docs.computecanada.ca/wiki/Frequently_Asked_Questions#Disk_quota_exceeded_error_on_.2Fproject_filesystems Disk quota exceeded issue].&lt;br /&gt;
&lt;br /&gt;
You may also &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; and compress the entire directory and then use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to save bandwidth. In the above example, first you login to graham, then do the following&lt;br /&gt;
&lt;br /&gt;
 [username@gra-login2:~]$ cd project&lt;br /&gt;
 [username@gra-login2:~]$ tar -cvf foo.tar foo&lt;br /&gt;
 [username@gra-login2:~]$ gzip foo.tar&lt;br /&gt;
&lt;br /&gt;
Then on your local machine myhost, use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to copy the tar file&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp graham.computecanada.ca:project/foo.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Note for most Linux distributions, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; has an option &amp;lt;tt&amp;gt;-z&amp;lt;/tt&amp;gt; that will compress the &amp;lt;tt&amp;gt;.tar&amp;lt;/tt&amp;gt; file using &amp;lt;tt&amp;gt;gzip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Windows=====&lt;br /&gt;
You may read the instructions on using an ssh client. [[https://helpwiki.sharcnet.ca/wiki/SSH#Transfering_files_.28Secure_File_Transfer_Client.29]]&lt;br /&gt;
&lt;br /&gt;
====How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect?====&lt;br /&gt;
&lt;br /&gt;
In general, most users should be fine using &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to transfer data to and from SHARCNET systems.  If you need to transfer a lot of files &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; is recommended to ensure that you do not need to restart the transfer from scratch should there be a connection failure.  Although you can use &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to any cluster&amp;#039;s login node(s), it is often best to use gra-dtn1.computecanada.ca - it is dedicated to data transfer. &lt;br /&gt;
&lt;br /&gt;
In general one should expect the following transfer rates with &amp;#039;&amp;#039;scp&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* If you are connecting to SHARCNET through a Research/Education network site (ORION, CANARIE, Internet2) and are on a fast local network (this is the case for most users connecting from academic institutions) then you should be able to attain sustained transfer speeds in excess of 10MB/s.  If your path is all gigabit or better, you should be able to reach rates above 50 MB/s.&lt;br /&gt;
* If you are transferring data over the wider internet, you will not be able to attain these speeds, as all traffic that does not enter/exit SHARCNET via the R&amp;amp;E net is restricted to a limited-bandwidth commercial feed. In this case one will typically see rates on the order of 1MB/s or less.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that filesystems and networks are  shared resources and suffer from contention; if they are busy the above rates may not be attainable&lt;br /&gt;
&lt;br /&gt;
For transferring large amounts of data (many gigabytes) the best approach is to use the online tool [https://docs.computecanada.ca/wiki/Transferring_data#Globus_transfer Globus].&lt;br /&gt;
&lt;br /&gt;
==== How do I access the same file from different subdirectories on the same cluster ? ====&lt;br /&gt;
&lt;br /&gt;
You should not need copy large files on the same cluster (e.g. from one user to another&lt;br /&gt;
or using the same file in different subdirectories).  Instead of using&lt;br /&gt;
scp you might consider issuing a &amp;quot;soft link&amp;quot; command. Assume that you need access&lt;br /&gt;
to the file large_file1 in subdirectory /home/user1/subdir1 and you need it to be in your&lt;br /&gt;
subdirectory /home/my_account/my_dir from where you will invoke it under the name&lt;br /&gt;
my_large_file1.  Then go to that directory and type:&lt;br /&gt;
&lt;br /&gt;
 ln -s /home/user1/subdir1/large_file1    my_large_file1&lt;br /&gt;
&lt;br /&gt;
Another example, assume that in subdirectory /home/my_account/PROJ1 you have several&lt;br /&gt;
subdirectories called CASE1, CASE2, ...  In each subdirectory CASEn you have a slightly&lt;br /&gt;
different code but all of them process the same data file called test_data. Rather than&lt;br /&gt;
copying the test_data file into each CASEn subdirectory, place test_data above i.e.&lt;br /&gt;
in /home/my_account/PROJ1 and then in each CASEn subdirectory issue following &amp;quot;soft link&amp;quot;&lt;br /&gt;
command:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../test_data  test_data&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;soft links&amp;quot; can be removed by using the rm command. For example, to remove the soft link from&lt;br /&gt;
/home/my_account/PROJ1/CASE2 type following command from this subdirectory:&lt;br /&gt;
&lt;br /&gt;
 rm -rf test_data&lt;br /&gt;
&lt;br /&gt;
Typing above command from subdirectory /home/my_account/PROJ1 would remove the actual file and then&lt;br /&gt;
none of the CASEn subdirectories would have access to it.&lt;br /&gt;
&lt;br /&gt;
==== How are files deleted from the /home/userid/scratch filesystems? ====&lt;br /&gt;
&lt;br /&gt;
All files on /home/userid/scratch that are over 2 months old (not old in the common sense, please see below) are automatically deleted. Data needed for long term storage and reference should be kept in either /project, /nearline, or other archival storage areas. The scratch filesystem is checked at the end of the month for files which will be candidates for expiry on the 15th of the following month. On the first day of the month, a login message is posted and a notification e-mail is sent to all users who have at least one file which is a candidate for purging and containing the location of a file which lists all the candidates for purging.  On the 12th of the month, a second scan is run to check for files that will still expire on the 15th, and again, users with candidates for expiry are sent a second warning email.  Lastly, on the 15th, all files which are due for expiry are removed.&lt;br /&gt;
&lt;br /&gt;
An unconventional aspect of this system is that it does not determine the age of a file based on the file&amp;#039;s attributes, e.g., the standard dates reported by the &amp;lt;i&amp;gt;stat&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;find&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;ls&amp;lt;/i&amp;gt;, etc. commands.  (This is known as the &amp;quot;mtime&amp;quot; of the file, for &amp;quot;modification time&amp;quot;, and is frequently inaccurate.) The age of a file is determined based on whether or not its data contents (i.e., the information stored in the file) have changed or been accessed, and this age is stored externally to the file.  Only files where the contents have changed or accessed will have their age counter &amp;quot;reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A list of your candidate files for expiry can be found in /home/scratch_to_delete/$USER  (where $USER is your userid).&lt;br /&gt;
&lt;br /&gt;
===== How do I check the age of a file =====&lt;br /&gt;
We define a file&amp;#039;s age as the most recent of:&lt;br /&gt;
&lt;br /&gt;
 *the access time (atime) and&lt;br /&gt;
 *the change time (ctime)&lt;br /&gt;
&lt;br /&gt;
You can find the ctime of a file using&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lc &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while the atime can be obtained with the command&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lu &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do not use the modify time (mtime) of the file because it can be modified by the user or by other programs to display incorrect information.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, simple use of the atime property would be sufficient, as it is updated by the system in sync with the ctime. However, userspace programs are able to alter atime, potentially to times in the past, which could result in early expiration of a file. The use of ctime as a fallback guards against this undesirable behaviour.&lt;br /&gt;
&lt;br /&gt;
It is also your responsibility to manage your stored data: most of the filesystems are not intended to provide an indefinite archiving service so when a given file or directory is no longer needed, you need to move it to a more appropriate filesystem which may well mean your personal workstation or some other storage system under your control. Moving significant amounts of data between your workstation and a Compute Canada system or between two Compute Canada systems should generally be done using Globus.&lt;br /&gt;
&lt;br /&gt;
==== How to archive my data? ====&lt;br /&gt;
&lt;br /&gt;
===== Use tar to archive files and directories =====&lt;br /&gt;
&lt;br /&gt;
The primary archiving utility on all Linux and Unix-like systems is the [https://www.gnu.org/software/tar/manual/tar.html tar] command. It will bundle a bunch of files or directories together and generate a single file, called an &amp;#039;&amp;#039;archive file&amp;#039;&amp;#039; or &amp;#039;&amp;#039;tar-file&amp;#039;&amp;#039;. By convention an archive file has &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; as the file name extension. When you archive a directory with &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, it will, by default, include all the files and sub-directories contained within it, and sub-sub-directories contained in those, and so on. So the command &amp;lt;code&amp;gt;tar --create --file project1.tar project1&amp;lt;/code&amp;gt; will pack all the content of directory &amp;#039;&amp;#039;project1&amp;#039;&amp;#039; into the file &amp;#039;&amp;#039;project1.tar&amp;#039;&amp;#039;. The original directory will remain unchanged, so this may double the amount of disk space occupied!&lt;br /&gt;
&lt;br /&gt;
You can extract files from an archive using the same command with a different option:&amp;lt;code&amp;gt;tar --extract --file project1.tar&amp;lt;/code&amp;gt;. If there is no directory with the original name, it will be created. If a directory of that name exists and contains files of the same names as in the archive file, they will be overwritten. Another option can be added to specify the destination directory where to extract the archive&amp;#039;s content.   &lt;br /&gt;
&lt;br /&gt;
===== Compress and uncompress tar files =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; archiving utility can compress an archive file at the same time it creates it. There are a number of compression methods to choose from. We recommend either &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;, which can be used as follows:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ tar --create --xz --file project1.tar.xz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --xz --file project1.tar.xz&lt;br /&gt;
 [user_name@localhost]$ tar --create --gzip --file project1.tar.gz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --gzip --file project1.tar.gz&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;code&amp;gt;--xz&amp;lt;/code&amp;gt; will produce a smaller compressed file (a &amp;quot;better compression ratio&amp;quot;) but takes longer and uses more RAM while working. &amp;lt;code&amp;gt;--gzip&amp;lt;/code&amp;gt; does not typically compress as small, but may be used if you encounter difficulties due to insufficient memory or excessive run time during &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt;. A third option, &amp;lt;code&amp;gt;--bzip2&amp;lt;/code&amp;gt;, is also available, that typically does not compress as small as &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; but takes longer than &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt; first without compression and then use the commands &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; in a separate step, although there is rarely a reason to do so. Similarly, you can run &amp;lt;code&amp;gt;xz -d&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip -d&amp;lt;/code&amp;gt; to decompress an archive file before running &amp;lt;code&amp;gt;tar --extract&amp;lt;/code&amp;gt;, but again there is rarely a reason to do so.&lt;br /&gt;
&lt;br /&gt;
The commands &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; can be used to compress any file, not just archive files:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ gzip bigfile&lt;br /&gt;
 [user_name@localhost]$ xz bigfile&lt;br /&gt;
&lt;br /&gt;
These commands will produce the files &amp;lt;code&amp;gt;bigfile.gz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigfile.xz&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
=====Archival Storage=====&lt;br /&gt;
&lt;br /&gt;
On Graham, files copied to ~/nearline will be subsequently moved to offline (tape-based) storage. See [https://docs.computecanada.ca/wiki/Using_nearline_storage this link] for more details.&lt;br /&gt;
&lt;br /&gt;
==== How can I check the hidden files in directory? ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;.&amp;quot; at the beginning of the name means that the file is &amp;quot;hidden&amp;quot;. You have to use the -a option with ls to see it. I.e. &amp;lt;code&amp;gt;ls -a &amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
If you want to display only the hidden files then type:&lt;br /&gt;
 ls -d .*&lt;br /&gt;
&lt;br /&gt;
Note: there is an alias which is loaded from /etc/bashrc (see your .bashrc file). The alias is defined by alias &amp;lt;code&amp;gt; l.=&amp;#039;ls -d .* --color=auto&amp;#039; &amp;lt;/code&amp;gt; and if you type:&lt;br /&gt;
 l.&lt;br /&gt;
you will also display only the hidden files.&lt;br /&gt;
&lt;br /&gt;
==== How can I count the number of files in a directory? ====&lt;br /&gt;
&lt;br /&gt;
One can use the following command to count the number of files in a directory (in this example, your /work directory):&lt;br /&gt;
&lt;br /&gt;
 find /home/$USER -type f   | wc -l&lt;br /&gt;
&lt;br /&gt;
It is always a good idea to [[Knowledge_Base#How_to_archive_my_data.3F|archive]] and/or compress files that are no longer needed on the filesystem (see [https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_to_organize_a_large_number_of_files.3F below]).  This helps minimize one&amp;#039;s footprint on the filesystem and as such the impact they have on other users of the shared resource.&lt;br /&gt;
&lt;br /&gt;
==== How to organize a large number of files? ====&lt;br /&gt;
&lt;br /&gt;
With parallel cluster filesystems, you will get best I/O performance writing data to a small number of large files. Since all metadata operations on each of our parallel filesystems are handled by a single file server, depending on how many files are being accessed the server can become overwhelmed leading to poor overall I/O performance for all users. If your workflow involves storing data in a large number of files, it is best to pack these files into a small number of larger archives, e.g. using tar command&lt;br /&gt;
&lt;br /&gt;
 tar cvf archiveFile.tar directoryToArchive&lt;br /&gt;
&lt;br /&gt;
For better performance with many files inside your archive, we recommend to use DAR (Disk ARchive utility), which is a disk analog of tar (Tape ARchive).  Dar can extract files from anywhere in the archive much faster than tar. The dar command is available by default on sharcnet systems. It can be used to pack files into a dar archive by doing something like: &lt;br /&gt;
&lt;br /&gt;
 dar -s 1G -w -c archiveFile -g directoryToArchive&lt;br /&gt;
&lt;br /&gt;
In this example we split the archive into 1GB chunks, and the archive files will be named archiveFile.1.dar, archiveFile.2.dar, and so on. To list the contents of the archive, you can type:&lt;br /&gt;
&lt;br /&gt;
 dar -l archiveFile&lt;br /&gt;
&lt;br /&gt;
To temporarily extract files for post-processing into current directory, you would type:&lt;br /&gt;
&lt;br /&gt;
 dar -R . -O -x archiveFile -v -g pathToYourFile/fileToExtract&lt;br /&gt;
&lt;br /&gt;
=== I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host ===&lt;br /&gt;
&lt;br /&gt;
The most likely cause of this behaviour is repeated failed login attempts.  Part of our security policies involves blocking the IP address of machines that attempt multiple logins with incorrect passwords over a short period of time---many brute-force attacks on systems do exactly this: looking for poor passwords, badly configured accounts, etc.  Unfortunately, it isn&amp;#039;t uncommon for a user to forget their password and make repeated login attempts with incorrect passwords and end up with that machine blacklisted and unable to connect at all.&lt;br /&gt;
&lt;br /&gt;
A temporary solution is simply to attempt to login from another machine.  If you have access to another machine at your site, you can shell to that machine first, and then shell to the SHARCNET system (as that machine&amp;#039;s IP shouldn&amp;#039;t be blacklisted).  In order to have your machine unblocked, you will have to email to [mailto:support@computecanada.ca support@computecanada.ca] as a system administrator must manually intervene in order to fix it.&lt;br /&gt;
&lt;br /&gt;
NOTE: there are other situations that can produce this message, however they are rarer and more transient.  If you are unable to log in from one machine, but can from another, it is most likely the IP blacklisting that is the problem and the above will provide a temporary work-around while your problem ticket is processed.&lt;br /&gt;
&lt;br /&gt;
=== I am unable to ssh/scp from SHARCNET to my local computer ===&lt;br /&gt;
&lt;br /&gt;
Most campus networks are behind some sort of firewall.  If you can ssh out to SHARCNET, but cannot establish a connection in the other direction, then you are probably behind a firewall and should speak with your local system administrator or campus IT department to determine if there are any exceptions or workarounds in place.&lt;br /&gt;
&lt;br /&gt;
=== SSH tells me SOMEONE IS DOING SOMETHING NASTY!? ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please first read the following:&lt;br /&gt;
&lt;br /&gt;
https://docs.computecanada.ca/wiki/SSH_security_improvements&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suppose you attempt to login to SHARCNET, but instead get an alarming message like this:&lt;br /&gt;
&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that the RSA host key has just been changed.&lt;br /&gt;
 The fingerprint for the RSA key sent by the remote host is&lt;br /&gt;
 fe:65:ab:89:9a:23:34:5a:50:1e:05:d6:bf:ec:da:67.&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending key in /home/user/.ssh/known_hosts:42&lt;br /&gt;
 RSA host key for requin has changed and you have requested strict checking.&lt;br /&gt;
 Host key verification failed. &lt;br /&gt;
&lt;br /&gt;
SSH begins a connection by verifying that the host you&amp;#039;re connecting to is authentic. It does this by caching the hosts&amp;#039;s &amp;quot;hostkey&amp;quot; in your  &amp;lt;tt&amp;gt;~/.ssh/known_hosts&amp;lt;/tt&amp;gt; file. At times, a hostkey may be changed legitimately; when this happens, you may see such a message. It&amp;#039;s a good idea to verify this with us, you may be able to check the fingerprint yourself by logging into another sharcnet system and running:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub &lt;br /&gt;
&lt;br /&gt;
If the fingerprint is OK, the normal way to fix the problem is to simply remove the old hostkey from your &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. On machines with commandline SSH, you can do this with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -R thehostname&lt;br /&gt;
&lt;br /&gt;
You can use your choice of editor if you&amp;#039;re comfortable doing so (it&amp;#039;s a plain text file, but has long lines). On a unix-compatible machine, you can also use the following very small script (Substitute the line(s) printed in the warning message illustrated above for &amp;#039;42&amp;#039; here.):&lt;br /&gt;
&lt;br /&gt;
 perl -pi -e &amp;#039;undef $_ if (++$line == 42)&amp;#039; ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
Another solution is brute-force: remove the whole &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. This throws away any authentication checking, and afterwards, your first connection to any machine will prompt you to accept a newly discovered host key.&lt;br /&gt;
&lt;br /&gt;
=== Ssh works, but scp doesn&amp;#039;t! ===&lt;br /&gt;
&lt;br /&gt;
If you can &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; to a cluster successfully, but cannot &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to to it, the problem is likely that your login scripts print unexpected messages which confuse &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; is based on the same &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, but assumes that the connection is &amp;quot;clean&amp;quot;: that is, that it does not produce any un-asked-for content. If you have something like:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; will be confused by the salutation. To avoid this, simply ensure that the message is only printed on an interactive login:&lt;br /&gt;
&lt;br /&gt;
 if [ -t 0 ]; then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
or in csh/tcsh syntax:&lt;br /&gt;
&lt;br /&gt;
 if ( -t 0 ) then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
=== How do I edit my program on a cluster? ===&lt;br /&gt;
&lt;br /&gt;
We provide a variety of editors, such as the traditional text-mode &amp;lt;tt&amp;gt;emacs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; (vim), as well as a simpler one called &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;. If you have X on your desktop (and tunneled through SSH), you can use the GUI versions (&amp;lt;tt&amp;gt;xemacs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If your desktop supports FUSE, it&amp;#039;s very convenient to simply mount your home tree like this:&lt;br /&gt;
 mkdir sharcnet&lt;br /&gt;
 sshfs graham.computecanada.ca: sharcnet&lt;br /&gt;
you can then use any local editor of your choice.&lt;br /&gt;
&lt;br /&gt;
If you run emacs on your desktop, you can also edit a remote file from within your local emacs client using [http://www.gnu.org/software/tramp Tramp], opening and saving a file as /username@cluster.computecanada.ca:path/file.&lt;br /&gt;
&lt;br /&gt;
== Research at SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== I have a research project I would like to collaborate on with SHARCNET, who should I talk to? ===&lt;br /&gt;
&lt;br /&gt;
You may contact [mailto:barb@sharcnet.ca SHARCNET head office] or contact members of the [https://www.sharcnet.ca/my/contact/directory#techteam SHARCNET technical staff].&lt;br /&gt;
&lt;br /&gt;
=== How can I contribute compute resources to SHARCNET so that other researchers can share it? ===&lt;br /&gt;
&lt;br /&gt;
Most people&amp;#039;s research is &amp;quot;bursty&amp;quot; - there are usually sparse periods of time when some computation is urgently needed, and other periods when there is less demand. One problem with this is that if you purchase the equipment you need to meet your &amp;quot;burst&amp;quot; needs, it&amp;#039;ll probably sit, underutilized, during other times.&lt;br /&gt;
&lt;br /&gt;
An alternative is to donate control of this equipment to SHARCNET, and let us arrange for other users to use it when you are not. We prefer to be involved in the selection and configuration of such equipment. Our promise to contributors is that as much as possible, they should obtain as much benefit from the cluster as if it were not shared. Owners get preferential access. Naturally, owners are also able to burst to higher peak usage, since their equipment has been pooled with other contributions. (Technically, SHARCNET cannot itself own such equipment — it remains owned by the institution in question, and will be returned to the contributor upon request.) If you think this model will also work for you and you would like to contribute your computational resource to help the research community at SHARCNET, you can contact us for such arrangement.&lt;br /&gt;
&lt;br /&gt;
=== I do not know much about computation, nor is it my research interest. But I am interested in getting my research done faster with the help of the high performance computing technology. In other words, I do not care about the process and mechanism, but only the final results. Can SHARCNET provide this type of help? ===&lt;br /&gt;
&lt;br /&gt;
We will be happy to bring the technology of high performance computing to you to accelerate your research, if at all possible. If you would like to discuss your plan with us, please feel free to contact our [https://www.sharcnet.ca/my/contact/directory#techteam high performance computing specialists]. They will be happy to listen to your needs and are ready to provide appropriate suggestions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET participates in the Compute Canada NRAC (National Resource Allocation Competition) and provides a continual competition for groups that require more than the default level of access to our resources.  Please see [[Dedicated Resources]] for further information.&lt;br /&gt;
&lt;br /&gt;
=== I heard SHARCNET offers fellowships, where can I get more information? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET no longer actively runs a fellowship program.  You may find information regarding past fellowships and other dedicated resource opportunities on the [https://www.sharcnet.ca/my/research/fellowships Research Fellowships page] of the web portal.&lt;br /&gt;
&lt;br /&gt;
=== I would like to do some research at SHARCNET as a visiting scholar, how should I apply? ===&lt;br /&gt;
&lt;br /&gt;
In general, you will need to find a hosting department or a person affiliated with one of the SHARCNET institutions. You may also [http://www.sharcnet.ca/my/contact contact us] directly for more specific information.&lt;br /&gt;
&lt;br /&gt;
=== I would like to send my students to SHARCNET to do some work for me. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
See above.&lt;br /&gt;
&lt;br /&gt;
== Contacting SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for research, academic exchanges, and technical issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for business development, education and other issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact a specific staff member at SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
See [https://www.sharcnet.ca/my/contact/directory staff directory] for contact information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Acknowledge SHARCNET in Publications ==&lt;br /&gt;
&lt;br /&gt;
=== How do I acknowledge SHARCNET in my publications? ===&lt;br /&gt;
&lt;br /&gt;
We recommend one cite the following:&lt;br /&gt;
&lt;br /&gt;
 This work was made possible by the facilities of the Shared Hierarchical &lt;br /&gt;
 Academic Research Computing Network (SHARCNET:www.sharcnet.ca) and Digital Research Alliance of Canada (https://alliancecan.ca/en).&lt;br /&gt;
&lt;br /&gt;
=== I&amp;#039;ve seen different spellings of the name, what is the standard spelling of SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
We suggest the spelling SHARCNET, all in upper case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What types of research programs / support are provided to the research community? ==&lt;br /&gt;
&lt;br /&gt;
Our overall intent is to provide support that can both respond to the range of needs that the user community presents and help to increase the sophistication of the community and enable new and larger-in-scope applications making use of SHARCNET&amp;#039;s HPC facilities. The range of support can perhaps best be understood in terms of a pyramid:&lt;br /&gt;
&lt;br /&gt;
=== Level 1 ===&lt;br /&gt;
&lt;br /&gt;
At the apex of the pyramid, SHARCNET supports a small number of projects with dedicated programmer support. The intent is to enable projects that will have a lasting impact and may lead to a &amp;quot;step change&amp;quot; in the way research is done at SHARCNET. Inter-disciplinary and inter-institutional projects are particularly welcomed. For the latest information about the program, including application guidelines, please see the  [https://www.sharcnet.ca/my/research/programming Programming Competition] page in our web portal.&lt;br /&gt;
&lt;br /&gt;
=== Level 2 ===&lt;br /&gt;
&lt;br /&gt;
The middle layers of support are provided through a number of initiatives.&lt;br /&gt;
&lt;br /&gt;
These include:&lt;br /&gt;
* Programming support of more modest duration (several days to one month engagement, usually part time)&lt;br /&gt;
* Training on a variety of topics through [https://www.sharcnet.ca/help/index.php/Training workshops, seminars and online training materials]&lt;br /&gt;
* Consultation. This may include user-initiated interactions on particular programs, algorithms, techniques, debugging, optimization etc., as well as unsolicited help to ensure effective use of SHARCNET systems&lt;br /&gt;
* Site Leaders play an important role in working with the community to help researchers connect with SHARCNET staff and to obtain appropriate help and support.&lt;br /&gt;
&lt;br /&gt;
=== Level 3 ===&lt;br /&gt;
&lt;br /&gt;
The base level of the pyramid handles the very large number of small requests that are essential to keeping the user community working effectively with the infrastructure on a day-to-day basis. Several of these can be answered by this FAQ; many of the issues are presented through the [https://www.sharcnet.ca/help/index.php/Knowledge_Base#Compute_Canada_Problem_Ticket_System ticketing system]. The support is largely problem oriented with each problem being time limited.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=932</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=932"/>
		<updated>2024-09-17T17:09:46Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* Getting Help */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Sharcnet_logo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== About SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== What is SHARCNET? ===&lt;br /&gt;
SHARCNET stands for Shared Hierarchical Academic Research Computing Network. Established in 2000, SHARCNET is the largest high performance computing consortium in Canada, involving 19 universities and colleges across southern, central and northern Ontario.&lt;br /&gt;
&lt;br /&gt;
SHARCNET is a member consortium in the [https://alliancecan.ca/en Digital Research Alliance of Canada (the Alliance)]  national HPC platform.&lt;br /&gt;
&lt;br /&gt;
=== Where is SHARCNET? ===&lt;br /&gt;
The [http://www.sharcnet.ca/my/contact main office] of SHARCNET is located in the Western Science Centre at [http://www.uwo.ca/ The University of Western Ontario].&lt;br /&gt;
&lt;br /&gt;
=== What does SHARCNET have? ===&lt;br /&gt;
The primary SHARCNET compute system is [https://docs.computecanada.ca/wiki/Graham Graham heterogeneous cluster] located at the University of Waterloo.  It is named after Wes Graham, the first director of the Computing Centre at Waterloo.  It consists of 41,548 cores and 520 GPU devices, spread across 1,185 nodes of different configurations.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with SHARCNET? ===&lt;br /&gt;
If you have a program that takes months to run on your PC, you could probably run it within a few hours using hundreds of processors on SHARCNET / the Alliance, provided your program is inherently parallelisable. If you have hundreds or thousands of test cases to run through on your PC or computers in your lab, then with hundreds of processors running those cases independently will significantly reduce your test cycles.&lt;br /&gt;
&lt;br /&gt;
=== Who is running SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
The daily operation and development of SHARCNET computational facilities is managed by a group of highly qualified system administrators. In addition, we have a team of high performance technical computing consultants, who are responsible for technical support on libraries, programming and application analysis.&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET? ===&lt;br /&gt;
For technical inquiries, you may send E-mail to [mailto:support@computecanada.ca support@computecanada.ca] or [mailto:help@sharcnet.ca help@sharcnet.ca], or [https://www.sharcnet.ca/my/contact/directory#techteam contact your local system administrator or HPC specialist]. For general inquiries, you may contact the SHARCNET [http://www.sharcnet.ca/my/contact main office].&lt;br /&gt;
&lt;br /&gt;
== Getting an Account with SHARCNET and Related Issues ==&lt;br /&gt;
&lt;br /&gt;
To use SHARCNET (and any other national facilities in the Alliance) one has to [https://www.alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account apply for an Alliance account].&lt;br /&gt;
&lt;br /&gt;
== Getting Help ==&lt;br /&gt;
&lt;br /&gt;
=== I have encountered a problem while using an Alliance /SHARCNET system and need help, who should I talk to? ===&lt;br /&gt;
We encourage you to use the problem ticketing system (described in detail [[FAQ: Getting Help#Alliance Problem Ticket System|below]]) .  This is the most efficient way of reporting a problem.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the [https://www.sharcnet.ca/my/contact/directory directory] page.&lt;br /&gt;
&lt;br /&gt;
=== How long should I expect to wait for support? ===&lt;br /&gt;
Unfortunately Alliance/SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week.  User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .  &lt;br /&gt;
&lt;br /&gt;
Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.  &lt;br /&gt;
&lt;br /&gt;
=== Alliance Problem Ticket System ===&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;problem ticket system&amp;quot;? ====&lt;br /&gt;
&lt;br /&gt;
This is a system that allows anyone with an Alliance account to start a persistent email thread that is referred to as a &amp;quot;problem ticket&amp;quot;.    When a user submits a new ticket it will be brought to the attention of an appropriate and available Alliance/SHARCNET staff member for resolution.  &lt;br /&gt;
&lt;br /&gt;
You interact with the ticket system entirely via email.&lt;br /&gt;
&lt;br /&gt;
==== What do I need to specify in a ticket ? ====&lt;br /&gt;
&lt;br /&gt;
To help us address your question faster, please try to do the following when submitting a ticket:&lt;br /&gt;
&lt;br /&gt;
#specify which of our systems is involved &lt;br /&gt;
#if the problem pertains to a job, then report the &amp;lt;u&amp;gt;jobid&amp;lt;/u&amp;gt; associated with the job; this is an integer that is returned by the scheduler when you submit the job&lt;br /&gt;
#report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem; if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem&lt;br /&gt;
#if you&amp;#039;d like for a particular staff member to be aware of the ticket, mention them&lt;br /&gt;
&lt;br /&gt;
==== How do I submit a ticket? ====&lt;br /&gt;
&lt;br /&gt;
In general, you can submit a new ticket by emailing  [mailto:support@computecanada.ca support@computecanada.ca]  with the email address associated with your Alliance account.  If you are using another email address, please provide your full name, your Alliance default username (if available) and your university or institution.&lt;br /&gt;
&lt;br /&gt;
If you like, you can also target your inquiry more specifically, by using the following addresses to submit your ticket:&lt;br /&gt;
&lt;br /&gt;
* [mailto:help@sharcnet.ca help@sharcnet.ca] - questions specific to SHARCNET, for example relating to contributed SHARCNET systems&lt;br /&gt;
* [mailto:globus@computecanada.ca globus@computecanada.ca] -- Questions about [[Globus]] file transfer services&lt;br /&gt;
* [mailto:cloud@computecanada.ca cloud@computecanada.ca] -- Questions about using Alliance cloud resources&lt;br /&gt;
* [mailto:accounts@computecanada.ca accounts@computecanada.ca] -- Questions about Alliance accounts&lt;br /&gt;
* [mailto:renewals@computecanada.ca renewals@computecanada.ca] -- Questions about Alliance account renewals&lt;br /&gt;
&lt;br /&gt;
=== I am new to parallel programming, can you help me get started with my project? ===&lt;br /&gt;
Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research. If your programming project would involve a significant staff time, you should consider applying for Dedicated Programming support. (We run the competition annually; see https://www.sharcnet.ca/my/research/programming).&lt;br /&gt;
&lt;br /&gt;
=== Can you install a package on a cluster for me? ===&lt;br /&gt;
Certainly.  We suggest you make the request by sending e-mail to [mailto:support@computecanada.ca support@computecanada.ca] with the specific request.&lt;br /&gt;
&lt;br /&gt;
=== I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that? ===&lt;br /&gt;
If you tell us what you want, we may be able to help you out.&lt;br /&gt;
&lt;br /&gt;
=== Does SHARCNET provide any training on programming and using the systems? ===&lt;br /&gt;
&lt;br /&gt;
Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every summer (usually late May to early June), SHARCNET holds [https://www.sharcnet.ca/help/index.php/Summer_Schools an annual HPC Summer School] with a variety of in-depth, hands-on workshops. &lt;br /&gt;
&lt;br /&gt;
SHARCNET also offers a series of online seminars (so-called &amp;quot;General interest webinars&amp;quot;), typically delivered every second Wednesday at lunch time.  These are announced via the SHARCNET events mailing list and one can see the schedule at the [https://www.sharcnet.ca/my/news/calendar SHARCNET event calendar].  Past seminars are recorded and posted on [http://youtube.sharcnet.ca our youtube channel]. A full listing of the past webinars is available on the [https://helpwiki.sharcnet.ca/wiki/Online_Seminars Online Seminars] page.&lt;br /&gt;
&lt;br /&gt;
=== Attending SHARCNET Webinars ===&lt;br /&gt;
{{:Attending SHARCNET Webinars}}&lt;br /&gt;
&lt;br /&gt;
== Logging in to Systems, Transferring and Editing Files ==&lt;br /&gt;
&lt;br /&gt;
=== How do I login to SHARCNET? ===&lt;br /&gt;
You access the SHARCNET clusters using ssh.  For Graham and other national systems Compute Canada credentials are required.  For the remaining (&amp;quot;Legacy&amp;quot;) systems, you will require SHARCNET credentials (submit a ticket to help@sharcnet.ca if you have questions).&lt;br /&gt;
&lt;br /&gt;
====Unix/Linux/OS X====&lt;br /&gt;
To login to a system, you need to use an [http://www.openssh.com/ Secure Shell (SSH)] connection. If you are logging in from a UNIX-based machine, make sure it has an SSH client (ssh) installed (this is almost always the case on UNIX/Linux/OS X). If you have the same login name on both your local system and SHARCNET, and you want to login to, say, &amp;lt;tt&amp;gt;graham&amp;lt;/tt&amp;gt;, you may use the command:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
If your Compute Canada username is different from the username on your local systems, then you may use either of the following forms:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.computecanada.ca -l username&lt;br /&gt;
 ssh username@graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
If you want to establish an X window connection so that you can use graphics applications such as &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ddt&amp;lt;/tt&amp;gt;, you can add a &amp;lt;tt&amp;gt;-Y&amp;lt;/tt&amp;gt; to the command:&lt;br /&gt;
&lt;br /&gt;
 ssh -Y username@graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
This will automatically set the X DISPLAY variable when you login.&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
If you are logging from a computer running Windows and need some pointers we recommend consulting our [[SSH]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between Login Nodes and Compute Nodes? ===&lt;br /&gt;
====Login Nodes====&lt;br /&gt;
&lt;br /&gt;
Most of our clusters have distinct &amp;#039;&amp;#039;login nodes&amp;#039;&amp;#039; associated with them that you are automatically redirected to when you login to the cluster (some systems are directly logged into, eg. SMPs and smaller specialty systems).  You can use these to do most of your work preparing for jobs (compiling, editing configuration files) and other low-intensity tasks like moving and copying files.  &lt;br /&gt;
&lt;br /&gt;
You can also use them for other quick tasks, like simple post-processing, but any significant work should be submitted as a job to the compute nodes.  On most login nodes, each process is limited to 1 cpu-hour; this will be noticable if you perform anything compute-intensive, and can affect IO-oriented activity as well (such as very large &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; operations.)&lt;br /&gt;
&lt;br /&gt;
=== How can I suspend and resume my session? ===&lt;br /&gt;
&lt;br /&gt;
The program screen can start persistent terminals from which you can detach and reattach.  The simplest use of screen is&lt;br /&gt;
&lt;br /&gt;
 screen -dR&lt;br /&gt;
&lt;br /&gt;
which will either reattach you to any existing session or create a new one if one doesn&amp;#039;t exist.  To terminate the current screen session, type &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;.  To detach manually (you are automatically detached if the connection is lost) press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;d&amp;#039;&amp;#039;, you can the resume later as above (ideal for running background jobs).  Note that &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; is screen&amp;#039;s escape sequence, so you have to do &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;a&amp;#039;&amp;#039; to get the regular effect of pressing &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; inside a screen session (e.g., moving the cursor to the start of the line in a shell).&lt;br /&gt;
&lt;br /&gt;
For a list of other &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; key sequences, press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;?&amp;#039;&amp;#039;.  For further details and  command line options, see the [http://www.gnu.org/software/screen/manual/screen.html screen manual] (or type &amp;lt;tt&amp;gt;man screen&amp;lt;/tt&amp;gt; on any of the clusters).&lt;br /&gt;
&lt;br /&gt;
Other notes:&lt;br /&gt;
* If you want to create additional &amp;quot;text windows&amp;quot;, use Ctrl-A Ctrl-C. Remember to type &amp;quot;exit&amp;quot; to close it. &lt;br /&gt;
* To switch to a &amp;quot;text window&amp;quot; with a certain number, use Ctrl-A # (where # is 0 to 9).&lt;br /&gt;
* To see a list of window numbers use Ctrl-A w&lt;br /&gt;
* To be presented a list of windows and select one to use, use Ctrl-A &amp;quot; (This is handy if you&amp;#039;ve made too many windows.)&lt;br /&gt;
* If the program running in a screen &amp;quot;text window&amp;quot; refuses to die (i.e., it needs to be killed) you can use Ctrl-A K&lt;br /&gt;
* For brief help on keystrokes use Ctrl-A ?&lt;br /&gt;
* For extensive help, run &amp;quot;man screen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What operating systems are supported? ===&lt;br /&gt;
UNIX in general. Currently, Linux is the only operating system used within SHARCNET.&lt;br /&gt;
&lt;br /&gt;
=== What makes a cluster different than my UNIX workstation? ===&lt;br /&gt;
&lt;br /&gt;
If you are familiar with UNIX, then using a cluster is not much different from using a workstation. When you login to a cluster, you in fact only log in to one of the cluster nodes. In most cases, each cluster node is a physical machine, usually a server class machine, with one or several CPUs, that is more or less the same as a workstation you are familiar with. The difference is that these nodes are interconnected with special interconnect devices and the way you run your program is slightly different. Across SHARCNET clusters, you are not expected to run your program interactively. You will have to run your program through a queueing system. That also means where and when your program gets to run is not decided by you, but by the queueing system.&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Those primary programming languages such as C, C++, Fortran, and Python are supported. Other languages, such as Java, Pascal and Ada, are also supported, but with limited technical support from us. &lt;br /&gt;
&lt;br /&gt;
=== How do I organize my files? ===&lt;br /&gt;
[https://docs.computecanada.ca/wiki/Storage_and_file_management#Storage_types Main file systems on our National systems.]&lt;br /&gt;
&lt;br /&gt;
==== How do I transfer files/directories to/from or between cluster? ====&lt;br /&gt;
&lt;br /&gt;
=====Unix/Linux=====&lt;br /&gt;
To transfer files to and from a cluster on a UNIX machine, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt;. For example, if you want to upload file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; to cluster graham from your machine &amp;lt;tt&amp;gt;myhost&amp;lt;/tt&amp;gt;, use the following command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp foo.f graham.computecanada.ca:&lt;br /&gt;
&lt;br /&gt;
assuming that your machine has &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; installed. If you want to transfer a file from Windows or Mac, you need have &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt; for Windows or Mac installed.&lt;br /&gt;
&lt;br /&gt;
If you transfer file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; between Compute Canada clusters, say from your home directory on cedar to your home directory on graham, simply use the following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp foo.f graham:/home/username/&lt;br /&gt;
&lt;br /&gt;
If you are transferring files between a UNIX machine and a cluster, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; command with &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; option. For instance, if you want to download the subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; in the directory &amp;lt;tt&amp;gt;project&amp;lt;/tt&amp;gt; in your home directory on graham to your local UNIX machine, on your local machine, use command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp -rp graham.sharcnet.ca:project/foo .&lt;br /&gt;
&lt;br /&gt;
Similarly, you can transfer the subdirectory between Compute Canada clusters. The following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp -r graham:/home/username/scratch/foo .&lt;br /&gt;
&lt;br /&gt;
will download subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; from your scratch directory on graham to your home directory on cedar (note that the prompt indicates you are currently logged on to cedar).&lt;br /&gt;
&lt;br /&gt;
The use of &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; option above will preserve the time stamp of each file. For Windows and Mac, you need to check the documentation of &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; for features. &amp;#039;&amp;#039;&amp;#039;Do not use -p switch with scp or cp commands on clusters, when the destination is your project space&amp;#039;&amp;#039;&amp;#039;, or you might run into the infamous [https://docs.computecanada.ca/wiki/Frequently_Asked_Questions#Disk_quota_exceeded_error_on_.2Fproject_filesystems Disk quota exceeded issue].&lt;br /&gt;
&lt;br /&gt;
You may also &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; and compress the entire directory and then use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to save bandwidth. In the above example, first you login to graham, then do the following&lt;br /&gt;
&lt;br /&gt;
 [username@gra-login2:~]$ cd project&lt;br /&gt;
 [username@gra-login2:~]$ tar -cvf foo.tar foo&lt;br /&gt;
 [username@gra-login2:~]$ gzip foo.tar&lt;br /&gt;
&lt;br /&gt;
Then on your local machine myhost, use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to copy the tar file&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp graham.computecanada.ca:project/foo.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Note for most Linux distributions, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; has an option &amp;lt;tt&amp;gt;-z&amp;lt;/tt&amp;gt; that will compress the &amp;lt;tt&amp;gt;.tar&amp;lt;/tt&amp;gt; file using &amp;lt;tt&amp;gt;gzip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Windows=====&lt;br /&gt;
You may read the instructions on using an ssh client. [[https://helpwiki.sharcnet.ca/wiki/SSH#Transfering_files_.28Secure_File_Transfer_Client.29]]&lt;br /&gt;
&lt;br /&gt;
====How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect?====&lt;br /&gt;
&lt;br /&gt;
In general, most users should be fine using &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to transfer data to and from SHARCNET systems.  If you need to transfer a lot of files &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; is recommended to ensure that you do not need to restart the transfer from scratch should there be a connection failure.  Although you can use &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to any cluster&amp;#039;s login node(s), it is often best to use gra-dtn1.computecanada.ca - it is dedicated to data transfer. &lt;br /&gt;
&lt;br /&gt;
In general one should expect the following transfer rates with &amp;#039;&amp;#039;scp&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* If you are connecting to SHARCNET through a Research/Education network site (ORION, CANARIE, Internet2) and are on a fast local network (this is the case for most users connecting from academic institutions) then you should be able to attain sustained transfer speeds in excess of 10MB/s.  If your path is all gigabit or better, you should be able to reach rates above 50 MB/s.&lt;br /&gt;
* If you are transferring data over the wider internet, you will not be able to attain these speeds, as all traffic that does not enter/exit SHARCNET via the R&amp;amp;E net is restricted to a limited-bandwidth commercial feed. In this case one will typically see rates on the order of 1MB/s or less.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that filesystems and networks are  shared resources and suffer from contention; if they are busy the above rates may not be attainable&lt;br /&gt;
&lt;br /&gt;
For transferring large amounts of data (many gigabytes) the best approach is to use the online tool [https://docs.computecanada.ca/wiki/Transferring_data#Globus_transfer Globus].&lt;br /&gt;
&lt;br /&gt;
==== How do I access the same file from different subdirectories on the same cluster ? ====&lt;br /&gt;
&lt;br /&gt;
You should not need copy large files on the same cluster (e.g. from one user to another&lt;br /&gt;
or using the same file in different subdirectories).  Instead of using&lt;br /&gt;
scp you might consider issuing a &amp;quot;soft link&amp;quot; command. Assume that you need access&lt;br /&gt;
to the file large_file1 in subdirectory /home/user1/subdir1 and you need it to be in your&lt;br /&gt;
subdirectory /home/my_account/my_dir from where you will invoke it under the name&lt;br /&gt;
my_large_file1.  Then go to that directory and type:&lt;br /&gt;
&lt;br /&gt;
 ln -s /home/user1/subdir1/large_file1    my_large_file1&lt;br /&gt;
&lt;br /&gt;
Another example, assume that in subdirectory /home/my_account/PROJ1 you have several&lt;br /&gt;
subdirectories called CASE1, CASE2, ...  In each subdirectory CASEn you have a slightly&lt;br /&gt;
different code but all of them process the same data file called test_data. Rather than&lt;br /&gt;
copying the test_data file into each CASEn subdirectory, place test_data above i.e.&lt;br /&gt;
in /home/my_account/PROJ1 and then in each CASEn subdirectory issue following &amp;quot;soft link&amp;quot;&lt;br /&gt;
command:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../test_data  test_data&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;soft links&amp;quot; can be removed by using the rm command. For example, to remove the soft link from&lt;br /&gt;
/home/my_account/PROJ1/CASE2 type following command from this subdirectory:&lt;br /&gt;
&lt;br /&gt;
 rm -rf test_data&lt;br /&gt;
&lt;br /&gt;
Typing above command from subdirectory /home/my_account/PROJ1 would remove the actual file and then&lt;br /&gt;
none of the CASEn subdirectories would have access to it.&lt;br /&gt;
&lt;br /&gt;
==== How are files deleted from the /home/userid/scratch filesystems? ====&lt;br /&gt;
&lt;br /&gt;
All files on /home/userid/scratch that are over 2 months old (not old in the common sense, please see below) are automatically deleted. Data needed for long term storage and reference should be kept in either /project, /nearline, or other archival storage areas. The scratch filesystem is checked at the end of the month for files which will be candidates for expiry on the 15th of the following month. On the first day of the month, a login message is posted and a notification e-mail is sent to all users who have at least one file which is a candidate for purging and containing the location of a file which lists all the candidates for purging.  On the 12th of the month, a second scan is run to check for files that will still expire on the 15th, and again, users with candidates for expiry are sent a second warning email.  Lastly, on the 15th, all files which are due for expiry are removed.&lt;br /&gt;
&lt;br /&gt;
An unconventional aspect of this system is that it does not determine the age of a file based on the file&amp;#039;s attributes, e.g., the standard dates reported by the &amp;lt;i&amp;gt;stat&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;find&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;ls&amp;lt;/i&amp;gt;, etc. commands.  (This is known as the &amp;quot;mtime&amp;quot; of the file, for &amp;quot;modification time&amp;quot;, and is frequently inaccurate.) The age of a file is determined based on whether or not its data contents (i.e., the information stored in the file) have changed or been accessed, and this age is stored externally to the file.  Only files where the contents have changed or accessed will have their age counter &amp;quot;reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A list of your candidate files for expiry can be found in /home/scratch_to_delete/$USER  (where $USER is your userid).&lt;br /&gt;
&lt;br /&gt;
===== How do I check the age of a file =====&lt;br /&gt;
We define a file&amp;#039;s age as the most recent of:&lt;br /&gt;
&lt;br /&gt;
 *the access time (atime) and&lt;br /&gt;
 *the change time (ctime)&lt;br /&gt;
&lt;br /&gt;
You can find the ctime of a file using&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lc &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while the atime can be obtained with the command&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lu &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do not use the modify time (mtime) of the file because it can be modified by the user or by other programs to display incorrect information.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, simple use of the atime property would be sufficient, as it is updated by the system in sync with the ctime. However, userspace programs are able to alter atime, potentially to times in the past, which could result in early expiration of a file. The use of ctime as a fallback guards against this undesirable behaviour.&lt;br /&gt;
&lt;br /&gt;
It is also your responsibility to manage your stored data: most of the filesystems are not intended to provide an indefinite archiving service so when a given file or directory is no longer needed, you need to move it to a more appropriate filesystem which may well mean your personal workstation or some other storage system under your control. Moving significant amounts of data between your workstation and a Compute Canada system or between two Compute Canada systems should generally be done using Globus.&lt;br /&gt;
&lt;br /&gt;
==== How to archive my data? ====&lt;br /&gt;
&lt;br /&gt;
===== Use tar to archive files and directories =====&lt;br /&gt;
&lt;br /&gt;
The primary archiving utility on all Linux and Unix-like systems is the [https://www.gnu.org/software/tar/manual/tar.html tar] command. It will bundle a bunch of files or directories together and generate a single file, called an &amp;#039;&amp;#039;archive file&amp;#039;&amp;#039; or &amp;#039;&amp;#039;tar-file&amp;#039;&amp;#039;. By convention an archive file has &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; as the file name extension. When you archive a directory with &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, it will, by default, include all the files and sub-directories contained within it, and sub-sub-directories contained in those, and so on. So the command &amp;lt;code&amp;gt;tar --create --file project1.tar project1&amp;lt;/code&amp;gt; will pack all the content of directory &amp;#039;&amp;#039;project1&amp;#039;&amp;#039; into the file &amp;#039;&amp;#039;project1.tar&amp;#039;&amp;#039;. The original directory will remain unchanged, so this may double the amount of disk space occupied!&lt;br /&gt;
&lt;br /&gt;
You can extract files from an archive using the same command with a different option:&amp;lt;code&amp;gt;tar --extract --file project1.tar&amp;lt;/code&amp;gt;. If there is no directory with the original name, it will be created. If a directory of that name exists and contains files of the same names as in the archive file, they will be overwritten. Another option can be added to specify the destination directory where to extract the archive&amp;#039;s content.   &lt;br /&gt;
&lt;br /&gt;
===== Compress and uncompress tar files =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; archiving utility can compress an archive file at the same time it creates it. There are a number of compression methods to choose from. We recommend either &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;, which can be used as follows:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ tar --create --xz --file project1.tar.xz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --xz --file project1.tar.xz&lt;br /&gt;
 [user_name@localhost]$ tar --create --gzip --file project1.tar.gz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --gzip --file project1.tar.gz&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;code&amp;gt;--xz&amp;lt;/code&amp;gt; will produce a smaller compressed file (a &amp;quot;better compression ratio&amp;quot;) but takes longer and uses more RAM while working. &amp;lt;code&amp;gt;--gzip&amp;lt;/code&amp;gt; does not typically compress as small, but may be used if you encounter difficulties due to insufficient memory or excessive run time during &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt;. A third option, &amp;lt;code&amp;gt;--bzip2&amp;lt;/code&amp;gt;, is also available, that typically does not compress as small as &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; but takes longer than &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt; first without compression and then use the commands &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; in a separate step, although there is rarely a reason to do so. Similarly, you can run &amp;lt;code&amp;gt;xz -d&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip -d&amp;lt;/code&amp;gt; to decompress an archive file before running &amp;lt;code&amp;gt;tar --extract&amp;lt;/code&amp;gt;, but again there is rarely a reason to do so.&lt;br /&gt;
&lt;br /&gt;
The commands &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; can be used to compress any file, not just archive files:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ gzip bigfile&lt;br /&gt;
 [user_name@localhost]$ xz bigfile&lt;br /&gt;
&lt;br /&gt;
These commands will produce the files &amp;lt;code&amp;gt;bigfile.gz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigfile.xz&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
=====Archival Storage=====&lt;br /&gt;
&lt;br /&gt;
On Graham, files copied to ~/nearline will be subsequently moved to offline (tape-based) storage. See [https://docs.computecanada.ca/wiki/Using_nearline_storage this link] for more details.&lt;br /&gt;
&lt;br /&gt;
==== How can I check the hidden files in directory? ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;.&amp;quot; at the beginning of the name means that the file is &amp;quot;hidden&amp;quot;. You have to use the -a option with ls to see it. I.e. &amp;lt;code&amp;gt;ls -a &amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
If you want to display only the hidden files then type:&lt;br /&gt;
 ls -d .*&lt;br /&gt;
&lt;br /&gt;
Note: there is an alias which is loaded from /etc/bashrc (see your .bashrc file). The alias is defined by alias &amp;lt;code&amp;gt; l.=&amp;#039;ls -d .* --color=auto&amp;#039; &amp;lt;/code&amp;gt; and if you type:&lt;br /&gt;
 l.&lt;br /&gt;
you will also display only the hidden files.&lt;br /&gt;
&lt;br /&gt;
==== How can I count the number of files in a directory? ====&lt;br /&gt;
&lt;br /&gt;
One can use the following command to count the number of files in a directory (in this example, your /work directory):&lt;br /&gt;
&lt;br /&gt;
 find /home/$USER -type f   | wc -l&lt;br /&gt;
&lt;br /&gt;
It is always a good idea to [[Knowledge_Base#How_to_archive_my_data.3F|archive]] and/or compress files that are no longer needed on the filesystem (see [https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_to_organize_a_large_number_of_files.3F below]).  This helps minimize one&amp;#039;s footprint on the filesystem and as such the impact they have on other users of the shared resource.&lt;br /&gt;
&lt;br /&gt;
==== How to organize a large number of files? ====&lt;br /&gt;
&lt;br /&gt;
With parallel cluster filesystems, you will get best I/O performance writing data to a small number of large files. Since all metadata operations on each of our parallel filesystems are handled by a single file server, depending on how many files are being accessed the server can become overwhelmed leading to poor overall I/O performance for all users. If your workflow involves storing data in a large number of files, it is best to pack these files into a small number of larger archives, e.g. using tar command&lt;br /&gt;
&lt;br /&gt;
 tar cvf archiveFile.tar directoryToArchive&lt;br /&gt;
&lt;br /&gt;
For better performance with many files inside your archive, we recommend to use DAR (Disk ARchive utility), which is a disk analog of tar (Tape ARchive).  Dar can extract files from anywhere in the archive much faster than tar. The dar command is available by default on sharcnet systems. It can be used to pack files into a dar archive by doing something like: &lt;br /&gt;
&lt;br /&gt;
 dar -s 1G -w -c archiveFile -g directoryToArchive&lt;br /&gt;
&lt;br /&gt;
In this example we split the archive into 1GB chunks, and the archive files will be named archiveFile.1.dar, archiveFile.2.dar, and so on. To list the contents of the archive, you can type:&lt;br /&gt;
&lt;br /&gt;
 dar -l archiveFile&lt;br /&gt;
&lt;br /&gt;
To temporarily extract files for post-processing into current directory, you would type:&lt;br /&gt;
&lt;br /&gt;
 dar -R . -O -x archiveFile -v -g pathToYourFile/fileToExtract&lt;br /&gt;
&lt;br /&gt;
=== I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host ===&lt;br /&gt;
&lt;br /&gt;
The most likely cause of this behaviour is repeated failed login attempts.  Part of our security policies involves blocking the IP address of machines that attempt multiple logins with incorrect passwords over a short period of time---many brute-force attacks on systems do exactly this: looking for poor passwords, badly configured accounts, etc.  Unfortunately, it isn&amp;#039;t uncommon for a user to forget their password and make repeated login attempts with incorrect passwords and end up with that machine blacklisted and unable to connect at all.&lt;br /&gt;
&lt;br /&gt;
A temporary solution is simply to attempt to login from another machine.  If you have access to another machine at your site, you can shell to that machine first, and then shell to the SHARCNET system (as that machine&amp;#039;s IP shouldn&amp;#039;t be blacklisted).  In order to have your machine unblocked, you will have to email to [mailto:support@computecanada.ca support@computecanada.ca] as a system administrator must manually intervene in order to fix it.&lt;br /&gt;
&lt;br /&gt;
NOTE: there are other situations that can produce this message, however they are rarer and more transient.  If you are unable to log in from one machine, but can from another, it is most likely the IP blacklisting that is the problem and the above will provide a temporary work-around while your problem ticket is processed.&lt;br /&gt;
&lt;br /&gt;
=== I am unable to ssh/scp from SHARCNET to my local computer ===&lt;br /&gt;
&lt;br /&gt;
Most campus networks are behind some sort of firewall.  If you can ssh out to SHARCNET, but cannot establish a connection in the other direction, then you are probably behind a firewall and should speak with your local system administrator or campus IT department to determine if there are any exceptions or workarounds in place.&lt;br /&gt;
&lt;br /&gt;
=== SSH tells me SOMEONE IS DOING SOMETHING NASTY!? ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please first read the following:&lt;br /&gt;
&lt;br /&gt;
https://docs.computecanada.ca/wiki/SSH_security_improvements&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suppose you attempt to login to SHARCNET, but instead get an alarming message like this:&lt;br /&gt;
&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that the RSA host key has just been changed.&lt;br /&gt;
 The fingerprint for the RSA key sent by the remote host is&lt;br /&gt;
 fe:65:ab:89:9a:23:34:5a:50:1e:05:d6:bf:ec:da:67.&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending key in /home/user/.ssh/known_hosts:42&lt;br /&gt;
 RSA host key for requin has changed and you have requested strict checking.&lt;br /&gt;
 Host key verification failed. &lt;br /&gt;
&lt;br /&gt;
SSH begins a connection by verifying that the host you&amp;#039;re connecting to is authentic. It does this by caching the hosts&amp;#039;s &amp;quot;hostkey&amp;quot; in your  &amp;lt;tt&amp;gt;~/.ssh/known_hosts&amp;lt;/tt&amp;gt; file. At times, a hostkey may be changed legitimately; when this happens, you may see such a message. It&amp;#039;s a good idea to verify this with us, you may be able to check the fingerprint yourself by logging into another sharcnet system and running:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub &lt;br /&gt;
&lt;br /&gt;
If the fingerprint is OK, the normal way to fix the problem is to simply remove the old hostkey from your &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. On machines with commandline SSH, you can do this with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -R thehostname&lt;br /&gt;
&lt;br /&gt;
You can use your choice of editor if you&amp;#039;re comfortable doing so (it&amp;#039;s a plain text file, but has long lines). On a unix-compatible machine, you can also use the following very small script (Substitute the line(s) printed in the warning message illustrated above for &amp;#039;42&amp;#039; here.):&lt;br /&gt;
&lt;br /&gt;
 perl -pi -e &amp;#039;undef $_ if (++$line == 42)&amp;#039; ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
Another solution is brute-force: remove the whole &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. This throws away any authentication checking, and afterwards, your first connection to any machine will prompt you to accept a newly discovered host key.&lt;br /&gt;
&lt;br /&gt;
=== Ssh works, but scp doesn&amp;#039;t! ===&lt;br /&gt;
&lt;br /&gt;
If you can &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; to a cluster successfully, but cannot &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to to it, the problem is likely that your login scripts print unexpected messages which confuse &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; is based on the same &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, but assumes that the connection is &amp;quot;clean&amp;quot;: that is, that it does not produce any un-asked-for content. If you have something like:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; will be confused by the salutation. To avoid this, simply ensure that the message is only printed on an interactive login:&lt;br /&gt;
&lt;br /&gt;
 if [ -t 0 ]; then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
or in csh/tcsh syntax:&lt;br /&gt;
&lt;br /&gt;
 if ( -t 0 ) then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
=== How do I edit my program on a cluster? ===&lt;br /&gt;
&lt;br /&gt;
We provide a variety of editors, such as the traditional text-mode &amp;lt;tt&amp;gt;emacs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; (vim), as well as a simpler one called &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;. If you have X on your desktop (and tunneled through SSH), you can use the GUI versions (&amp;lt;tt&amp;gt;xemacs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If your desktop supports FUSE, it&amp;#039;s very convenient to simply mount your home tree like this:&lt;br /&gt;
 mkdir sharcnet&lt;br /&gt;
 sshfs graham.computecanada.ca: sharcnet&lt;br /&gt;
you can then use any local editor of your choice.&lt;br /&gt;
&lt;br /&gt;
If you run emacs on your desktop, you can also edit a remote file from within your local emacs client using [http://www.gnu.org/software/tramp Tramp], opening and saving a file as /username@cluster.computecanada.ca:path/file.&lt;br /&gt;
&lt;br /&gt;
== Research at SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== I have a research project I would like to collaborate on with SHARCNET, who should I talk to? ===&lt;br /&gt;
&lt;br /&gt;
You may contact [mailto:barb@sharcnet.ca SHARCNET head office] or contact members of the [https://www.sharcnet.ca/my/contact/directory#techteam SHARCNET technical staff].&lt;br /&gt;
&lt;br /&gt;
=== How can I contribute compute resources to SHARCNET so that other researchers can share it? ===&lt;br /&gt;
&lt;br /&gt;
Most people&amp;#039;s research is &amp;quot;bursty&amp;quot; - there are usually sparse periods of time when some computation is urgently needed, and other periods when there is less demand. One problem with this is that if you purchase the equipment you need to meet your &amp;quot;burst&amp;quot; needs, it&amp;#039;ll probably sit, underutilized, during other times.&lt;br /&gt;
&lt;br /&gt;
An alternative is to donate control of this equipment to SHARCNET, and let us arrange for other users to use it when you are not. We prefer to be involved in the selection and configuration of such equipment. Our promise to contributors is that as much as possible, they should obtain as much benefit from the cluster as if it were not shared. Owners get preferential access. Naturally, owners are also able to burst to higher peak usage, since their equipment has been pooled with other contributions. (Technically, SHARCNET cannot itself own such equipment — it remains owned by the institution in question, and will be returned to the contributor upon request.) If you think this model will also work for you and you would like to contribute your computational resource to help the research community at SHARCNET, you can contact us for such arrangement.&lt;br /&gt;
&lt;br /&gt;
=== I do not know much about computation, nor is it my research interest. But I am interested in getting my research done faster with the help of the high performance computing technology. In other words, I do not care about the process and mechanism, but only the final results. Can SHARCNET provide this type of help? ===&lt;br /&gt;
&lt;br /&gt;
We will be happy to bring the technology of high performance computing to you to accelerate your research, if at all possible. If you would like to discuss your plan with us, please feel free to contact our [https://www.sharcnet.ca/my/contact/directory#techteam high performance computing specialists]. They will be happy to listen to your needs and are ready to provide appropriate suggestions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET participates in the Compute Canada NRAC (National Resource Allocation Competition) and provides a continual competition for groups that require more than the default level of access to our resources.  Please see [[Dedicated Resources]] for further information.&lt;br /&gt;
&lt;br /&gt;
=== I heard SHARCNET offers fellowships, where can I get more information? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET no longer actively runs a fellowship program.  You may find information regarding past fellowships and other dedicated resource opportunities on the [https://www.sharcnet.ca/my/research/fellowships Research Fellowships page] of the web portal.&lt;br /&gt;
&lt;br /&gt;
=== I would like to do some research at SHARCNET as a visiting scholar, how should I apply? ===&lt;br /&gt;
&lt;br /&gt;
In general, you will need to find a hosting department or a person affiliated with one of the SHARCNET institutions. You may also [http://www.sharcnet.ca/my/contact contact us] directly for more specific information.&lt;br /&gt;
&lt;br /&gt;
=== I would like to send my students to SHARCNET to do some work for me. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
See above.&lt;br /&gt;
&lt;br /&gt;
== Contacting SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for research, academic exchanges, and technical issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for business development, education and other issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact a specific staff member at SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
See [https://www.sharcnet.ca/my/contact/directory staff directory] for contact information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Acknowledge SHARCNET in Publications ==&lt;br /&gt;
&lt;br /&gt;
=== How do I acknowledge SHARCNET in my publications? ===&lt;br /&gt;
&lt;br /&gt;
We recommend one cite the following:&lt;br /&gt;
&lt;br /&gt;
 This work was made possible by the facilities of the Shared Hierarchical &lt;br /&gt;
 Academic Research Computing Network (SHARCNET:www.sharcnet.ca) and Digital Research Alliance of Canada (https://alliancecan.ca/en).&lt;br /&gt;
&lt;br /&gt;
=== I&amp;#039;ve seen different spellings of the name, what is the standard spelling of SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
We suggest the spelling SHARCNET, all in upper case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What types of research programs / support are provided to the research community? ==&lt;br /&gt;
&lt;br /&gt;
Our overall intent is to provide support that can both respond to the range of needs that the user community presents and help to increase the sophistication of the community and enable new and larger-in-scope applications making use of SHARCNET&amp;#039;s HPC facilities. The range of support can perhaps best be understood in terms of a pyramid:&lt;br /&gt;
&lt;br /&gt;
=== Level 1 ===&lt;br /&gt;
&lt;br /&gt;
At the apex of the pyramid, SHARCNET supports a small number of projects with dedicated programmer support. The intent is to enable projects that will have a lasting impact and may lead to a &amp;quot;step change&amp;quot; in the way research is done at SHARCNET. Inter-disciplinary and inter-institutional projects are particularly welcomed. For the latest information about the program, including application guidelines, please see the  [https://www.sharcnet.ca/my/research/programming Programming Competition] page in our web portal.&lt;br /&gt;
&lt;br /&gt;
=== Level 2 ===&lt;br /&gt;
&lt;br /&gt;
The middle layers of support are provided through a number of initiatives.&lt;br /&gt;
&lt;br /&gt;
These include:&lt;br /&gt;
* Programming support of more modest duration (several days to one month engagement, usually part time)&lt;br /&gt;
* Training on a variety of topics through [https://www.sharcnet.ca/help/index.php/Training workshops, seminars and online training materials]&lt;br /&gt;
* Consultation. This may include user-initiated interactions on particular programs, algorithms, techniques, debugging, optimization etc., as well as unsolicited help to ensure effective use of SHARCNET systems&lt;br /&gt;
* Site Leaders play an important role in working with the community to help researchers connect with SHARCNET staff and to obtain appropriate help and support.&lt;br /&gt;
&lt;br /&gt;
=== Level 3 ===&lt;br /&gt;
&lt;br /&gt;
The base level of the pyramid handles the very large number of small requests that are essential to keeping the user community working effectively with the infrastructure on a day-to-day basis. Several of these can be answered by this FAQ; many of the issues are presented through the [https://www.sharcnet.ca/help/index.php/Knowledge_Base#Compute_Canada_Problem_Ticket_System ticketing system]. The support is largely problem oriented with each problem being time limited.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=931</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=931"/>
		<updated>2024-09-17T17:06:56Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* Getting an Account with SHARCNET and Related Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Sharcnet_logo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== About SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== What is SHARCNET? ===&lt;br /&gt;
SHARCNET stands for Shared Hierarchical Academic Research Computing Network. Established in 2000, SHARCNET is the largest high performance computing consortium in Canada, involving 19 universities and colleges across southern, central and northern Ontario.&lt;br /&gt;
&lt;br /&gt;
SHARCNET is a member consortium in the [https://alliancecan.ca/en Digital Research Alliance of Canada (the Alliance)]  national HPC platform.&lt;br /&gt;
&lt;br /&gt;
=== Where is SHARCNET? ===&lt;br /&gt;
The [http://www.sharcnet.ca/my/contact main office] of SHARCNET is located in the Western Science Centre at [http://www.uwo.ca/ The University of Western Ontario].&lt;br /&gt;
&lt;br /&gt;
=== What does SHARCNET have? ===&lt;br /&gt;
The primary SHARCNET compute system is [https://docs.computecanada.ca/wiki/Graham Graham heterogeneous cluster] located at the University of Waterloo.  It is named after Wes Graham, the first director of the Computing Centre at Waterloo.  It consists of 41,548 cores and 520 GPU devices, spread across 1,185 nodes of different configurations.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with SHARCNET? ===&lt;br /&gt;
If you have a program that takes months to run on your PC, you could probably run it within a few hours using hundreds of processors on SHARCNET / the Alliance, provided your program is inherently parallelisable. If you have hundreds or thousands of test cases to run through on your PC or computers in your lab, then with hundreds of processors running those cases independently will significantly reduce your test cycles.&lt;br /&gt;
&lt;br /&gt;
=== Who is running SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
The daily operation and development of SHARCNET computational facilities is managed by a group of highly qualified system administrators. In addition, we have a team of high performance technical computing consultants, who are responsible for technical support on libraries, programming and application analysis.&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET? ===&lt;br /&gt;
For technical inquiries, you may send E-mail to [mailto:support@computecanada.ca support@computecanada.ca] or [mailto:help@sharcnet.ca help@sharcnet.ca], or [https://www.sharcnet.ca/my/contact/directory#techteam contact your local system administrator or HPC specialist]. For general inquiries, you may contact the SHARCNET [http://www.sharcnet.ca/my/contact main office].&lt;br /&gt;
&lt;br /&gt;
== Getting an Account with SHARCNET and Related Issues ==&lt;br /&gt;
&lt;br /&gt;
To use SHARCNET (and any other national facilities in the Alliance) one has to [https://www.alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account apply for an Alliance account].&lt;br /&gt;
&lt;br /&gt;
== Getting Help ==&lt;br /&gt;
&lt;br /&gt;
=== I have encountered a problem while using a Compute Canada/SHARCNET system and need help, who should I talk to? ===&lt;br /&gt;
We encourage you to use the problem ticketing system (described in detail [[FAQ: Getting Help#Compute Canada Problem Ticket System|below]]) .  This is the most efficient way of reporting a problem.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the [https://www.sharcnet.ca/my/contact/directory directory] page.&lt;br /&gt;
&lt;br /&gt;
=== How long should I expect to wait for support? ===&lt;br /&gt;
Unfortunately Compute Canada/SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week.  User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .  &lt;br /&gt;
&lt;br /&gt;
Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.  &lt;br /&gt;
&lt;br /&gt;
=== Compute Canada Problem Ticket System ===&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;problem ticket system&amp;quot;? ====&lt;br /&gt;
&lt;br /&gt;
This is a system that allows anyone with a Compute Canada account to start a persistent email thread that is referred to as a &amp;quot;problem ticket&amp;quot;.    When a user submits a new ticket it will be brought to the attention of an appropriate and available Compute Canada/SHARCNET staff member for resolution.  &lt;br /&gt;
&lt;br /&gt;
You interact with the ticket system entirely via email.&lt;br /&gt;
&lt;br /&gt;
==== What do I need to specify in a ticket ? ====&lt;br /&gt;
&lt;br /&gt;
To help us address your question faster, please try to do the following when submitting a ticket:&lt;br /&gt;
&lt;br /&gt;
#specify which of our systems is involved &lt;br /&gt;
#if the problem pertains to a job, then report the &amp;lt;u&amp;gt;jobid&amp;lt;/u&amp;gt; associated with the job; this is an integer that is returned by the scheduler when you submit the job&lt;br /&gt;
#report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem; if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem&lt;br /&gt;
#if you&amp;#039;d like for a particular staff member to be aware of the ticket, mention them&lt;br /&gt;
&lt;br /&gt;
==== How do I submit a ticket? ====&lt;br /&gt;
&lt;br /&gt;
In general, you can submit a new ticket by emailing  [mailto:support@computecanada.ca support@computecanada.ca]  with the email address associated with your Compute Canada account.  If you are using another email address, please provide your full name, your Compute Canada default username (if available) and your university or institution.&lt;br /&gt;
&lt;br /&gt;
If you like, you can also target your inquiry more specifically, by using the following addresses to submit your ticket:&lt;br /&gt;
&lt;br /&gt;
* [mailto:help@sharcnet.ca help@sharcnet.ca] - questions specific to SHARCNET, for example relating to contributed SHARCNET systems&lt;br /&gt;
* [mailto:globus@computecanada.ca globus@computecanada.ca] -- Questions about [[Globus]] file transfer services&lt;br /&gt;
* [mailto:cloud@computecanada.ca cloud@computecanada.ca] -- Questions about using Compute Canada cloud resources&lt;br /&gt;
* [mailto:accounts@computecanada.ca accounts@computecanada.ca] -- Questions about Compute Canada accounts&lt;br /&gt;
* [mailto:renewals@computecanada.ca renewals@computecanada.ca] -- Questions about Compute Canada account renewals&lt;br /&gt;
&lt;br /&gt;
=== I am new to parallel programming, can you help me get started with my project? ===&lt;br /&gt;
Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research. If your programming project would involve a significant staff time, you should consider applying for Dedicated Programming support. (We run the competition annually; see https://www.sharcnet.ca/my/research/programming).&lt;br /&gt;
&lt;br /&gt;
=== Can you install a package on a cluster for me? ===&lt;br /&gt;
Certainly.  We suggest you make the request by sending e-mail to [mailto:support@computecanada.ca support@computecanada.ca] with the specific request.&lt;br /&gt;
&lt;br /&gt;
=== I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that? ===&lt;br /&gt;
If you tell us what you want, we may be able to help you out.&lt;br /&gt;
&lt;br /&gt;
=== Does SHARCNET provide any training on programming and using the systems? ===&lt;br /&gt;
&lt;br /&gt;
Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every summer (usually late May to early June), SHARCNET holds [https://www.sharcnet.ca/help/index.php/Summer_Schools an annual HPC Summer School] with a variety of in-depth, hands-on workshops. &lt;br /&gt;
&lt;br /&gt;
SHARCNET also offers a series of online seminars (so-called &amp;quot;General interest webinars&amp;quot;), typically delivered every second Wednesday at lunch time.  These are announced via the SHARCNET events mailing list and one can see the schedule at the [https://www.sharcnet.ca/my/news/calendar SHARCNET event calendar].  Past seminars are recorded and posted on [http://youtube.sharcnet.ca our youtube channel]. A full listing of the past webinars is available on the [https://helpwiki.sharcnet.ca/wiki/Online_Seminars Online Seminars] page.&lt;br /&gt;
&lt;br /&gt;
=== Attending SHARCNET Webinars ===&lt;br /&gt;
{{:Attending SHARCNET Webinars}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logging in to Systems, Transferring and Editing Files ==&lt;br /&gt;
&lt;br /&gt;
=== How do I login to SHARCNET? ===&lt;br /&gt;
You access the SHARCNET clusters using ssh.  For Graham and other national systems Compute Canada credentials are required.  For the remaining (&amp;quot;Legacy&amp;quot;) systems, you will require SHARCNET credentials (submit a ticket to help@sharcnet.ca if you have questions).&lt;br /&gt;
&lt;br /&gt;
====Unix/Linux/OS X====&lt;br /&gt;
To login to a system, you need to use an [http://www.openssh.com/ Secure Shell (SSH)] connection. If you are logging in from a UNIX-based machine, make sure it has an SSH client (ssh) installed (this is almost always the case on UNIX/Linux/OS X). If you have the same login name on both your local system and SHARCNET, and you want to login to, say, &amp;lt;tt&amp;gt;graham&amp;lt;/tt&amp;gt;, you may use the command:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
If your Compute Canada username is different from the username on your local systems, then you may use either of the following forms:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.computecanada.ca -l username&lt;br /&gt;
 ssh username@graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
If you want to establish an X window connection so that you can use graphics applications such as &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ddt&amp;lt;/tt&amp;gt;, you can add a &amp;lt;tt&amp;gt;-Y&amp;lt;/tt&amp;gt; to the command:&lt;br /&gt;
&lt;br /&gt;
 ssh -Y username@graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
This will automatically set the X DISPLAY variable when you login.&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
If you are logging from a computer running Windows and need some pointers we recommend consulting our [[SSH]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between Login Nodes and Compute Nodes? ===&lt;br /&gt;
====Login Nodes====&lt;br /&gt;
&lt;br /&gt;
Most of our clusters have distinct &amp;#039;&amp;#039;login nodes&amp;#039;&amp;#039; associated with them that you are automatically redirected to when you login to the cluster (some systems are directly logged into, eg. SMPs and smaller specialty systems).  You can use these to do most of your work preparing for jobs (compiling, editing configuration files) and other low-intensity tasks like moving and copying files.  &lt;br /&gt;
&lt;br /&gt;
You can also use them for other quick tasks, like simple post-processing, but any significant work should be submitted as a job to the compute nodes.  On most login nodes, each process is limited to 1 cpu-hour; this will be noticable if you perform anything compute-intensive, and can affect IO-oriented activity as well (such as very large &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; operations.)&lt;br /&gt;
&lt;br /&gt;
=== How can I suspend and resume my session? ===&lt;br /&gt;
&lt;br /&gt;
The program screen can start persistent terminals from which you can detach and reattach.  The simplest use of screen is&lt;br /&gt;
&lt;br /&gt;
 screen -dR&lt;br /&gt;
&lt;br /&gt;
which will either reattach you to any existing session or create a new one if one doesn&amp;#039;t exist.  To terminate the current screen session, type &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;.  To detach manually (you are automatically detached if the connection is lost) press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;d&amp;#039;&amp;#039;, you can the resume later as above (ideal for running background jobs).  Note that &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; is screen&amp;#039;s escape sequence, so you have to do &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;a&amp;#039;&amp;#039; to get the regular effect of pressing &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; inside a screen session (e.g., moving the cursor to the start of the line in a shell).&lt;br /&gt;
&lt;br /&gt;
For a list of other &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; key sequences, press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;?&amp;#039;&amp;#039;.  For further details and  command line options, see the [http://www.gnu.org/software/screen/manual/screen.html screen manual] (or type &amp;lt;tt&amp;gt;man screen&amp;lt;/tt&amp;gt; on any of the clusters).&lt;br /&gt;
&lt;br /&gt;
Other notes:&lt;br /&gt;
* If you want to create additional &amp;quot;text windows&amp;quot;, use Ctrl-A Ctrl-C. Remember to type &amp;quot;exit&amp;quot; to close it. &lt;br /&gt;
* To switch to a &amp;quot;text window&amp;quot; with a certain number, use Ctrl-A # (where # is 0 to 9).&lt;br /&gt;
* To see a list of window numbers use Ctrl-A w&lt;br /&gt;
* To be presented a list of windows and select one to use, use Ctrl-A &amp;quot; (This is handy if you&amp;#039;ve made too many windows.)&lt;br /&gt;
* If the program running in a screen &amp;quot;text window&amp;quot; refuses to die (i.e., it needs to be killed) you can use Ctrl-A K&lt;br /&gt;
* For brief help on keystrokes use Ctrl-A ?&lt;br /&gt;
* For extensive help, run &amp;quot;man screen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What operating systems are supported? ===&lt;br /&gt;
UNIX in general. Currently, Linux is the only operating system used within SHARCNET.&lt;br /&gt;
&lt;br /&gt;
=== What makes a cluster different than my UNIX workstation? ===&lt;br /&gt;
&lt;br /&gt;
If you are familiar with UNIX, then using a cluster is not much different from using a workstation. When you login to a cluster, you in fact only log in to one of the cluster nodes. In most cases, each cluster node is a physical machine, usually a server class machine, with one or several CPUs, that is more or less the same as a workstation you are familiar with. The difference is that these nodes are interconnected with special interconnect devices and the way you run your program is slightly different. Across SHARCNET clusters, you are not expected to run your program interactively. You will have to run your program through a queueing system. That also means where and when your program gets to run is not decided by you, but by the queueing system.&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Those primary programming languages such as C, C++, Fortran, and Python are supported. Other languages, such as Java, Pascal and Ada, are also supported, but with limited technical support from us. &lt;br /&gt;
&lt;br /&gt;
=== How do I organize my files? ===&lt;br /&gt;
[https://docs.computecanada.ca/wiki/Storage_and_file_management#Storage_types Main file systems on our National systems.]&lt;br /&gt;
&lt;br /&gt;
==== How do I transfer files/directories to/from or between cluster? ====&lt;br /&gt;
&lt;br /&gt;
=====Unix/Linux=====&lt;br /&gt;
To transfer files to and from a cluster on a UNIX machine, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt;. For example, if you want to upload file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; to cluster graham from your machine &amp;lt;tt&amp;gt;myhost&amp;lt;/tt&amp;gt;, use the following command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp foo.f graham.computecanada.ca:&lt;br /&gt;
&lt;br /&gt;
assuming that your machine has &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; installed. If you want to transfer a file from Windows or Mac, you need have &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt; for Windows or Mac installed.&lt;br /&gt;
&lt;br /&gt;
If you transfer file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; between Compute Canada clusters, say from your home directory on cedar to your home directory on graham, simply use the following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp foo.f graham:/home/username/&lt;br /&gt;
&lt;br /&gt;
If you are transferring files between a UNIX machine and a cluster, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; command with &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; option. For instance, if you want to download the subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; in the directory &amp;lt;tt&amp;gt;project&amp;lt;/tt&amp;gt; in your home directory on graham to your local UNIX machine, on your local machine, use command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp -rp graham.sharcnet.ca:project/foo .&lt;br /&gt;
&lt;br /&gt;
Similarly, you can transfer the subdirectory between Compute Canada clusters. The following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp -r graham:/home/username/scratch/foo .&lt;br /&gt;
&lt;br /&gt;
will download subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; from your scratch directory on graham to your home directory on cedar (note that the prompt indicates you are currently logged on to cedar).&lt;br /&gt;
&lt;br /&gt;
The use of &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; option above will preserve the time stamp of each file. For Windows and Mac, you need to check the documentation of &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; for features. &amp;#039;&amp;#039;&amp;#039;Do not use -p switch with scp or cp commands on clusters, when the destination is your project space&amp;#039;&amp;#039;&amp;#039;, or you might run into the infamous [https://docs.computecanada.ca/wiki/Frequently_Asked_Questions#Disk_quota_exceeded_error_on_.2Fproject_filesystems Disk quota exceeded issue].&lt;br /&gt;
&lt;br /&gt;
You may also &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; and compress the entire directory and then use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to save bandwidth. In the above example, first you login to graham, then do the following&lt;br /&gt;
&lt;br /&gt;
 [username@gra-login2:~]$ cd project&lt;br /&gt;
 [username@gra-login2:~]$ tar -cvf foo.tar foo&lt;br /&gt;
 [username@gra-login2:~]$ gzip foo.tar&lt;br /&gt;
&lt;br /&gt;
Then on your local machine myhost, use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to copy the tar file&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp graham.computecanada.ca:project/foo.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Note for most Linux distributions, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; has an option &amp;lt;tt&amp;gt;-z&amp;lt;/tt&amp;gt; that will compress the &amp;lt;tt&amp;gt;.tar&amp;lt;/tt&amp;gt; file using &amp;lt;tt&amp;gt;gzip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Windows=====&lt;br /&gt;
You may read the instructions on using an ssh client. [[https://helpwiki.sharcnet.ca/wiki/SSH#Transfering_files_.28Secure_File_Transfer_Client.29]]&lt;br /&gt;
&lt;br /&gt;
====How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect?====&lt;br /&gt;
&lt;br /&gt;
In general, most users should be fine using &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to transfer data to and from SHARCNET systems.  If you need to transfer a lot of files &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; is recommended to ensure that you do not need to restart the transfer from scratch should there be a connection failure.  Although you can use &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to any cluster&amp;#039;s login node(s), it is often best to use gra-dtn1.computecanada.ca - it is dedicated to data transfer. &lt;br /&gt;
&lt;br /&gt;
In general one should expect the following transfer rates with &amp;#039;&amp;#039;scp&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* If you are connecting to SHARCNET through a Research/Education network site (ORION, CANARIE, Internet2) and are on a fast local network (this is the case for most users connecting from academic institutions) then you should be able to attain sustained transfer speeds in excess of 10MB/s.  If your path is all gigabit or better, you should be able to reach rates above 50 MB/s.&lt;br /&gt;
* If you are transferring data over the wider internet, you will not be able to attain these speeds, as all traffic that does not enter/exit SHARCNET via the R&amp;amp;E net is restricted to a limited-bandwidth commercial feed. In this case one will typically see rates on the order of 1MB/s or less.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that filesystems and networks are  shared resources and suffer from contention; if they are busy the above rates may not be attainable&lt;br /&gt;
&lt;br /&gt;
For transferring large amounts of data (many gigabytes) the best approach is to use the online tool [https://docs.computecanada.ca/wiki/Transferring_data#Globus_transfer Globus].&lt;br /&gt;
&lt;br /&gt;
==== How do I access the same file from different subdirectories on the same cluster ? ====&lt;br /&gt;
&lt;br /&gt;
You should not need copy large files on the same cluster (e.g. from one user to another&lt;br /&gt;
or using the same file in different subdirectories).  Instead of using&lt;br /&gt;
scp you might consider issuing a &amp;quot;soft link&amp;quot; command. Assume that you need access&lt;br /&gt;
to the file large_file1 in subdirectory /home/user1/subdir1 and you need it to be in your&lt;br /&gt;
subdirectory /home/my_account/my_dir from where you will invoke it under the name&lt;br /&gt;
my_large_file1.  Then go to that directory and type:&lt;br /&gt;
&lt;br /&gt;
 ln -s /home/user1/subdir1/large_file1    my_large_file1&lt;br /&gt;
&lt;br /&gt;
Another example, assume that in subdirectory /home/my_account/PROJ1 you have several&lt;br /&gt;
subdirectories called CASE1, CASE2, ...  In each subdirectory CASEn you have a slightly&lt;br /&gt;
different code but all of them process the same data file called test_data. Rather than&lt;br /&gt;
copying the test_data file into each CASEn subdirectory, place test_data above i.e.&lt;br /&gt;
in /home/my_account/PROJ1 and then in each CASEn subdirectory issue following &amp;quot;soft link&amp;quot;&lt;br /&gt;
command:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../test_data  test_data&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;soft links&amp;quot; can be removed by using the rm command. For example, to remove the soft link from&lt;br /&gt;
/home/my_account/PROJ1/CASE2 type following command from this subdirectory:&lt;br /&gt;
&lt;br /&gt;
 rm -rf test_data&lt;br /&gt;
&lt;br /&gt;
Typing above command from subdirectory /home/my_account/PROJ1 would remove the actual file and then&lt;br /&gt;
none of the CASEn subdirectories would have access to it.&lt;br /&gt;
&lt;br /&gt;
==== How are files deleted from the /home/userid/scratch filesystems? ====&lt;br /&gt;
&lt;br /&gt;
All files on /home/userid/scratch that are over 2 months old (not old in the common sense, please see below) are automatically deleted. Data needed for long term storage and reference should be kept in either /project, /nearline, or other archival storage areas. The scratch filesystem is checked at the end of the month for files which will be candidates for expiry on the 15th of the following month. On the first day of the month, a login message is posted and a notification e-mail is sent to all users who have at least one file which is a candidate for purging and containing the location of a file which lists all the candidates for purging.  On the 12th of the month, a second scan is run to check for files that will still expire on the 15th, and again, users with candidates for expiry are sent a second warning email.  Lastly, on the 15th, all files which are due for expiry are removed.&lt;br /&gt;
&lt;br /&gt;
An unconventional aspect of this system is that it does not determine the age of a file based on the file&amp;#039;s attributes, e.g., the standard dates reported by the &amp;lt;i&amp;gt;stat&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;find&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;ls&amp;lt;/i&amp;gt;, etc. commands.  (This is known as the &amp;quot;mtime&amp;quot; of the file, for &amp;quot;modification time&amp;quot;, and is frequently inaccurate.) The age of a file is determined based on whether or not its data contents (i.e., the information stored in the file) have changed or been accessed, and this age is stored externally to the file.  Only files where the contents have changed or accessed will have their age counter &amp;quot;reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A list of your candidate files for expiry can be found in /home/scratch_to_delete/$USER  (where $USER is your userid).&lt;br /&gt;
&lt;br /&gt;
===== How do I check the age of a file =====&lt;br /&gt;
We define a file&amp;#039;s age as the most recent of:&lt;br /&gt;
&lt;br /&gt;
 *the access time (atime) and&lt;br /&gt;
 *the change time (ctime)&lt;br /&gt;
&lt;br /&gt;
You can find the ctime of a file using&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lc &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while the atime can be obtained with the command&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lu &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do not use the modify time (mtime) of the file because it can be modified by the user or by other programs to display incorrect information.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, simple use of the atime property would be sufficient, as it is updated by the system in sync with the ctime. However, userspace programs are able to alter atime, potentially to times in the past, which could result in early expiration of a file. The use of ctime as a fallback guards against this undesirable behaviour.&lt;br /&gt;
&lt;br /&gt;
It is also your responsibility to manage your stored data: most of the filesystems are not intended to provide an indefinite archiving service so when a given file or directory is no longer needed, you need to move it to a more appropriate filesystem which may well mean your personal workstation or some other storage system under your control. Moving significant amounts of data between your workstation and a Compute Canada system or between two Compute Canada systems should generally be done using Globus.&lt;br /&gt;
&lt;br /&gt;
==== How to archive my data? ====&lt;br /&gt;
&lt;br /&gt;
===== Use tar to archive files and directories =====&lt;br /&gt;
&lt;br /&gt;
The primary archiving utility on all Linux and Unix-like systems is the [https://www.gnu.org/software/tar/manual/tar.html tar] command. It will bundle a bunch of files or directories together and generate a single file, called an &amp;#039;&amp;#039;archive file&amp;#039;&amp;#039; or &amp;#039;&amp;#039;tar-file&amp;#039;&amp;#039;. By convention an archive file has &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; as the file name extension. When you archive a directory with &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, it will, by default, include all the files and sub-directories contained within it, and sub-sub-directories contained in those, and so on. So the command &amp;lt;code&amp;gt;tar --create --file project1.tar project1&amp;lt;/code&amp;gt; will pack all the content of directory &amp;#039;&amp;#039;project1&amp;#039;&amp;#039; into the file &amp;#039;&amp;#039;project1.tar&amp;#039;&amp;#039;. The original directory will remain unchanged, so this may double the amount of disk space occupied!&lt;br /&gt;
&lt;br /&gt;
You can extract files from an archive using the same command with a different option:&amp;lt;code&amp;gt;tar --extract --file project1.tar&amp;lt;/code&amp;gt;. If there is no directory with the original name, it will be created. If a directory of that name exists and contains files of the same names as in the archive file, they will be overwritten. Another option can be added to specify the destination directory where to extract the archive&amp;#039;s content.   &lt;br /&gt;
&lt;br /&gt;
===== Compress and uncompress tar files =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; archiving utility can compress an archive file at the same time it creates it. There are a number of compression methods to choose from. We recommend either &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;, which can be used as follows:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ tar --create --xz --file project1.tar.xz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --xz --file project1.tar.xz&lt;br /&gt;
 [user_name@localhost]$ tar --create --gzip --file project1.tar.gz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --gzip --file project1.tar.gz&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;code&amp;gt;--xz&amp;lt;/code&amp;gt; will produce a smaller compressed file (a &amp;quot;better compression ratio&amp;quot;) but takes longer and uses more RAM while working. &amp;lt;code&amp;gt;--gzip&amp;lt;/code&amp;gt; does not typically compress as small, but may be used if you encounter difficulties due to insufficient memory or excessive run time during &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt;. A third option, &amp;lt;code&amp;gt;--bzip2&amp;lt;/code&amp;gt;, is also available, that typically does not compress as small as &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; but takes longer than &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt; first without compression and then use the commands &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; in a separate step, although there is rarely a reason to do so. Similarly, you can run &amp;lt;code&amp;gt;xz -d&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip -d&amp;lt;/code&amp;gt; to decompress an archive file before running &amp;lt;code&amp;gt;tar --extract&amp;lt;/code&amp;gt;, but again there is rarely a reason to do so.&lt;br /&gt;
&lt;br /&gt;
The commands &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; can be used to compress any file, not just archive files:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ gzip bigfile&lt;br /&gt;
 [user_name@localhost]$ xz bigfile&lt;br /&gt;
&lt;br /&gt;
These commands will produce the files &amp;lt;code&amp;gt;bigfile.gz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigfile.xz&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
=====Archival Storage=====&lt;br /&gt;
&lt;br /&gt;
On Graham, files copied to ~/nearline will be subsequently moved to offline (tape-based) storage. See [https://docs.computecanada.ca/wiki/Using_nearline_storage this link] for more details.&lt;br /&gt;
&lt;br /&gt;
==== How can I check the hidden files in directory? ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;.&amp;quot; at the beginning of the name means that the file is &amp;quot;hidden&amp;quot;. You have to use the -a option with ls to see it. I.e. &amp;lt;code&amp;gt;ls -a &amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
If you want to display only the hidden files then type:&lt;br /&gt;
 ls -d .*&lt;br /&gt;
&lt;br /&gt;
Note: there is an alias which is loaded from /etc/bashrc (see your .bashrc file). The alias is defined by alias &amp;lt;code&amp;gt; l.=&amp;#039;ls -d .* --color=auto&amp;#039; &amp;lt;/code&amp;gt; and if you type:&lt;br /&gt;
 l.&lt;br /&gt;
you will also display only the hidden files.&lt;br /&gt;
&lt;br /&gt;
==== How can I count the number of files in a directory? ====&lt;br /&gt;
&lt;br /&gt;
One can use the following command to count the number of files in a directory (in this example, your /work directory):&lt;br /&gt;
&lt;br /&gt;
 find /home/$USER -type f   | wc -l&lt;br /&gt;
&lt;br /&gt;
It is always a good idea to [[Knowledge_Base#How_to_archive_my_data.3F|archive]] and/or compress files that are no longer needed on the filesystem (see [https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_to_organize_a_large_number_of_files.3F below]).  This helps minimize one&amp;#039;s footprint on the filesystem and as such the impact they have on other users of the shared resource.&lt;br /&gt;
&lt;br /&gt;
==== How to organize a large number of files? ====&lt;br /&gt;
&lt;br /&gt;
With parallel cluster filesystems, you will get best I/O performance writing data to a small number of large files. Since all metadata operations on each of our parallel filesystems are handled by a single file server, depending on how many files are being accessed the server can become overwhelmed leading to poor overall I/O performance for all users. If your workflow involves storing data in a large number of files, it is best to pack these files into a small number of larger archives, e.g. using tar command&lt;br /&gt;
&lt;br /&gt;
 tar cvf archiveFile.tar directoryToArchive&lt;br /&gt;
&lt;br /&gt;
For better performance with many files inside your archive, we recommend to use DAR (Disk ARchive utility), which is a disk analog of tar (Tape ARchive).  Dar can extract files from anywhere in the archive much faster than tar. The dar command is available by default on sharcnet systems. It can be used to pack files into a dar archive by doing something like: &lt;br /&gt;
&lt;br /&gt;
 dar -s 1G -w -c archiveFile -g directoryToArchive&lt;br /&gt;
&lt;br /&gt;
In this example we split the archive into 1GB chunks, and the archive files will be named archiveFile.1.dar, archiveFile.2.dar, and so on. To list the contents of the archive, you can type:&lt;br /&gt;
&lt;br /&gt;
 dar -l archiveFile&lt;br /&gt;
&lt;br /&gt;
To temporarily extract files for post-processing into current directory, you would type:&lt;br /&gt;
&lt;br /&gt;
 dar -R . -O -x archiveFile -v -g pathToYourFile/fileToExtract&lt;br /&gt;
&lt;br /&gt;
=== I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host ===&lt;br /&gt;
&lt;br /&gt;
The most likely cause of this behaviour is repeated failed login attempts.  Part of our security policies involves blocking the IP address of machines that attempt multiple logins with incorrect passwords over a short period of time---many brute-force attacks on systems do exactly this: looking for poor passwords, badly configured accounts, etc.  Unfortunately, it isn&amp;#039;t uncommon for a user to forget their password and make repeated login attempts with incorrect passwords and end up with that machine blacklisted and unable to connect at all.&lt;br /&gt;
&lt;br /&gt;
A temporary solution is simply to attempt to login from another machine.  If you have access to another machine at your site, you can shell to that machine first, and then shell to the SHARCNET system (as that machine&amp;#039;s IP shouldn&amp;#039;t be blacklisted).  In order to have your machine unblocked, you will have to email to [mailto:support@computecanada.ca support@computecanada.ca] as a system administrator must manually intervene in order to fix it.&lt;br /&gt;
&lt;br /&gt;
NOTE: there are other situations that can produce this message, however they are rarer and more transient.  If you are unable to log in from one machine, but can from another, it is most likely the IP blacklisting that is the problem and the above will provide a temporary work-around while your problem ticket is processed.&lt;br /&gt;
&lt;br /&gt;
=== I am unable to ssh/scp from SHARCNET to my local computer ===&lt;br /&gt;
&lt;br /&gt;
Most campus networks are behind some sort of firewall.  If you can ssh out to SHARCNET, but cannot establish a connection in the other direction, then you are probably behind a firewall and should speak with your local system administrator or campus IT department to determine if there are any exceptions or workarounds in place.&lt;br /&gt;
&lt;br /&gt;
=== SSH tells me SOMEONE IS DOING SOMETHING NASTY!? ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please first read the following:&lt;br /&gt;
&lt;br /&gt;
https://docs.computecanada.ca/wiki/SSH_security_improvements&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suppose you attempt to login to SHARCNET, but instead get an alarming message like this:&lt;br /&gt;
&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that the RSA host key has just been changed.&lt;br /&gt;
 The fingerprint for the RSA key sent by the remote host is&lt;br /&gt;
 fe:65:ab:89:9a:23:34:5a:50:1e:05:d6:bf:ec:da:67.&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending key in /home/user/.ssh/known_hosts:42&lt;br /&gt;
 RSA host key for requin has changed and you have requested strict checking.&lt;br /&gt;
 Host key verification failed. &lt;br /&gt;
&lt;br /&gt;
SSH begins a connection by verifying that the host you&amp;#039;re connecting to is authentic. It does this by caching the hosts&amp;#039;s &amp;quot;hostkey&amp;quot; in your  &amp;lt;tt&amp;gt;~/.ssh/known_hosts&amp;lt;/tt&amp;gt; file. At times, a hostkey may be changed legitimately; when this happens, you may see such a message. It&amp;#039;s a good idea to verify this with us, you may be able to check the fingerprint yourself by logging into another sharcnet system and running:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub &lt;br /&gt;
&lt;br /&gt;
If the fingerprint is OK, the normal way to fix the problem is to simply remove the old hostkey from your &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. On machines with commandline SSH, you can do this with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -R thehostname&lt;br /&gt;
&lt;br /&gt;
You can use your choice of editor if you&amp;#039;re comfortable doing so (it&amp;#039;s a plain text file, but has long lines). On a unix-compatible machine, you can also use the following very small script (Substitute the line(s) printed in the warning message illustrated above for &amp;#039;42&amp;#039; here.):&lt;br /&gt;
&lt;br /&gt;
 perl -pi -e &amp;#039;undef $_ if (++$line == 42)&amp;#039; ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
Another solution is brute-force: remove the whole &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. This throws away any authentication checking, and afterwards, your first connection to any machine will prompt you to accept a newly discovered host key.&lt;br /&gt;
&lt;br /&gt;
=== Ssh works, but scp doesn&amp;#039;t! ===&lt;br /&gt;
&lt;br /&gt;
If you can &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; to a cluster successfully, but cannot &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to to it, the problem is likely that your login scripts print unexpected messages which confuse &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; is based on the same &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, but assumes that the connection is &amp;quot;clean&amp;quot;: that is, that it does not produce any un-asked-for content. If you have something like:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; will be confused by the salutation. To avoid this, simply ensure that the message is only printed on an interactive login:&lt;br /&gt;
&lt;br /&gt;
 if [ -t 0 ]; then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
or in csh/tcsh syntax:&lt;br /&gt;
&lt;br /&gt;
 if ( -t 0 ) then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
=== How do I edit my program on a cluster? ===&lt;br /&gt;
&lt;br /&gt;
We provide a variety of editors, such as the traditional text-mode &amp;lt;tt&amp;gt;emacs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; (vim), as well as a simpler one called &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;. If you have X on your desktop (and tunneled through SSH), you can use the GUI versions (&amp;lt;tt&amp;gt;xemacs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If your desktop supports FUSE, it&amp;#039;s very convenient to simply mount your home tree like this:&lt;br /&gt;
 mkdir sharcnet&lt;br /&gt;
 sshfs graham.computecanada.ca: sharcnet&lt;br /&gt;
you can then use any local editor of your choice.&lt;br /&gt;
&lt;br /&gt;
If you run emacs on your desktop, you can also edit a remote file from within your local emacs client using [http://www.gnu.org/software/tramp Tramp], opening and saving a file as /username@cluster.computecanada.ca:path/file.&lt;br /&gt;
&lt;br /&gt;
== Research at SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== I have a research project I would like to collaborate on with SHARCNET, who should I talk to? ===&lt;br /&gt;
&lt;br /&gt;
You may contact [mailto:barb@sharcnet.ca SHARCNET head office] or contact members of the [https://www.sharcnet.ca/my/contact/directory#techteam SHARCNET technical staff].&lt;br /&gt;
&lt;br /&gt;
=== How can I contribute compute resources to SHARCNET so that other researchers can share it? ===&lt;br /&gt;
&lt;br /&gt;
Most people&amp;#039;s research is &amp;quot;bursty&amp;quot; - there are usually sparse periods of time when some computation is urgently needed, and other periods when there is less demand. One problem with this is that if you purchase the equipment you need to meet your &amp;quot;burst&amp;quot; needs, it&amp;#039;ll probably sit, underutilized, during other times.&lt;br /&gt;
&lt;br /&gt;
An alternative is to donate control of this equipment to SHARCNET, and let us arrange for other users to use it when you are not. We prefer to be involved in the selection and configuration of such equipment. Our promise to contributors is that as much as possible, they should obtain as much benefit from the cluster as if it were not shared. Owners get preferential access. Naturally, owners are also able to burst to higher peak usage, since their equipment has been pooled with other contributions. (Technically, SHARCNET cannot itself own such equipment — it remains owned by the institution in question, and will be returned to the contributor upon request.) If you think this model will also work for you and you would like to contribute your computational resource to help the research community at SHARCNET, you can contact us for such arrangement.&lt;br /&gt;
&lt;br /&gt;
=== I do not know much about computation, nor is it my research interest. But I am interested in getting my research done faster with the help of the high performance computing technology. In other words, I do not care about the process and mechanism, but only the final results. Can SHARCNET provide this type of help? ===&lt;br /&gt;
&lt;br /&gt;
We will be happy to bring the technology of high performance computing to you to accelerate your research, if at all possible. If you would like to discuss your plan with us, please feel free to contact our [https://www.sharcnet.ca/my/contact/directory#techteam high performance computing specialists]. They will be happy to listen to your needs and are ready to provide appropriate suggestions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET participates in the Compute Canada NRAC (National Resource Allocation Competition) and provides a continual competition for groups that require more than the default level of access to our resources.  Please see [[Dedicated Resources]] for further information.&lt;br /&gt;
&lt;br /&gt;
=== I heard SHARCNET offers fellowships, where can I get more information? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET no longer actively runs a fellowship program.  You may find information regarding past fellowships and other dedicated resource opportunities on the [https://www.sharcnet.ca/my/research/fellowships Research Fellowships page] of the web portal.&lt;br /&gt;
&lt;br /&gt;
=== I would like to do some research at SHARCNET as a visiting scholar, how should I apply? ===&lt;br /&gt;
&lt;br /&gt;
In general, you will need to find a hosting department or a person affiliated with one of the SHARCNET institutions. You may also [http://www.sharcnet.ca/my/contact contact us] directly for more specific information.&lt;br /&gt;
&lt;br /&gt;
=== I would like to send my students to SHARCNET to do some work for me. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
See above.&lt;br /&gt;
&lt;br /&gt;
== Contacting SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for research, academic exchanges, and technical issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for business development, education and other issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact a specific staff member at SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
See [https://www.sharcnet.ca/my/contact/directory staff directory] for contact information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Acknowledge SHARCNET in Publications ==&lt;br /&gt;
&lt;br /&gt;
=== How do I acknowledge SHARCNET in my publications? ===&lt;br /&gt;
&lt;br /&gt;
We recommend one cite the following:&lt;br /&gt;
&lt;br /&gt;
 This work was made possible by the facilities of the Shared Hierarchical &lt;br /&gt;
 Academic Research Computing Network (SHARCNET:www.sharcnet.ca) and Digital Research Alliance of Canada (https://alliancecan.ca/en).&lt;br /&gt;
&lt;br /&gt;
=== I&amp;#039;ve seen different spellings of the name, what is the standard spelling of SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
We suggest the spelling SHARCNET, all in upper case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What types of research programs / support are provided to the research community? ==&lt;br /&gt;
&lt;br /&gt;
Our overall intent is to provide support that can both respond to the range of needs that the user community presents and help to increase the sophistication of the community and enable new and larger-in-scope applications making use of SHARCNET&amp;#039;s HPC facilities. The range of support can perhaps best be understood in terms of a pyramid:&lt;br /&gt;
&lt;br /&gt;
=== Level 1 ===&lt;br /&gt;
&lt;br /&gt;
At the apex of the pyramid, SHARCNET supports a small number of projects with dedicated programmer support. The intent is to enable projects that will have a lasting impact and may lead to a &amp;quot;step change&amp;quot; in the way research is done at SHARCNET. Inter-disciplinary and inter-institutional projects are particularly welcomed. For the latest information about the program, including application guidelines, please see the  [https://www.sharcnet.ca/my/research/programming Programming Competition] page in our web portal.&lt;br /&gt;
&lt;br /&gt;
=== Level 2 ===&lt;br /&gt;
&lt;br /&gt;
The middle layers of support are provided through a number of initiatives.&lt;br /&gt;
&lt;br /&gt;
These include:&lt;br /&gt;
* Programming support of more modest duration (several days to one month engagement, usually part time)&lt;br /&gt;
* Training on a variety of topics through [https://www.sharcnet.ca/help/index.php/Training workshops, seminars and online training materials]&lt;br /&gt;
* Consultation. This may include user-initiated interactions on particular programs, algorithms, techniques, debugging, optimization etc., as well as unsolicited help to ensure effective use of SHARCNET systems&lt;br /&gt;
* Site Leaders play an important role in working with the community to help researchers connect with SHARCNET staff and to obtain appropriate help and support.&lt;br /&gt;
&lt;br /&gt;
=== Level 3 ===&lt;br /&gt;
&lt;br /&gt;
The base level of the pyramid handles the very large number of small requests that are essential to keeping the user community working effectively with the infrastructure on a day-to-day basis. Several of these can be answered by this FAQ; many of the issues are presented through the [https://www.sharcnet.ca/help/index.php/Knowledge_Base#Compute_Canada_Problem_Ticket_System ticketing system]. The support is largely problem oriented with each problem being time limited.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=930</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=930"/>
		<updated>2024-09-17T17:03:42Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* What can I do with SHARCNET? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Sharcnet_logo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== About SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== What is SHARCNET? ===&lt;br /&gt;
SHARCNET stands for Shared Hierarchical Academic Research Computing Network. Established in 2000, SHARCNET is the largest high performance computing consortium in Canada, involving 19 universities and colleges across southern, central and northern Ontario.&lt;br /&gt;
&lt;br /&gt;
SHARCNET is a member consortium in the [https://alliancecan.ca/en Digital Research Alliance of Canada (the Alliance)]  national HPC platform.&lt;br /&gt;
&lt;br /&gt;
=== Where is SHARCNET? ===&lt;br /&gt;
The [http://www.sharcnet.ca/my/contact main office] of SHARCNET is located in the Western Science Centre at [http://www.uwo.ca/ The University of Western Ontario].&lt;br /&gt;
&lt;br /&gt;
=== What does SHARCNET have? ===&lt;br /&gt;
The primary SHARCNET compute system is [https://docs.computecanada.ca/wiki/Graham Graham heterogeneous cluster] located at the University of Waterloo.  It is named after Wes Graham, the first director of the Computing Centre at Waterloo.  It consists of 41,548 cores and 520 GPU devices, spread across 1,185 nodes of different configurations.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with SHARCNET? ===&lt;br /&gt;
If you have a program that takes months to run on your PC, you could probably run it within a few hours using hundreds of processors on SHARCNET / the Alliance, provided your program is inherently parallelisable. If you have hundreds or thousands of test cases to run through on your PC or computers in your lab, then with hundreds of processors running those cases independently will significantly reduce your test cycles.&lt;br /&gt;
&lt;br /&gt;
=== Who is running SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
The daily operation and development of SHARCNET computational facilities is managed by a group of highly qualified system administrators. In addition, we have a team of high performance technical computing consultants, who are responsible for technical support on libraries, programming and application analysis.&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET? ===&lt;br /&gt;
For technical inquiries, you may send E-mail to [mailto:support@computecanada.ca support@computecanada.ca] or [mailto:help@sharcnet.ca help@sharcnet.ca], or [https://www.sharcnet.ca/my/contact/directory#techteam contact your local system administrator or HPC specialist]. For general inquiries, you may contact the SHARCNET [http://www.sharcnet.ca/my/contact main office].&lt;br /&gt;
&lt;br /&gt;
== Getting an Account with SHARCNET and Related Issues ==&lt;br /&gt;
&lt;br /&gt;
To use SHARCNET (and any other national Compute Canada) facilities one has to [https://www.alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account apply for an Alliance account].&lt;br /&gt;
&lt;br /&gt;
== Getting Help ==&lt;br /&gt;
&lt;br /&gt;
=== I have encountered a problem while using a Compute Canada/SHARCNET system and need help, who should I talk to? ===&lt;br /&gt;
We encourage you to use the problem ticketing system (described in detail [[FAQ: Getting Help#Compute Canada Problem Ticket System|below]]) .  This is the most efficient way of reporting a problem.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the [https://www.sharcnet.ca/my/contact/directory directory] page.&lt;br /&gt;
&lt;br /&gt;
=== How long should I expect to wait for support? ===&lt;br /&gt;
Unfortunately Compute Canada/SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week.  User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .  &lt;br /&gt;
&lt;br /&gt;
Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.  &lt;br /&gt;
&lt;br /&gt;
=== Compute Canada Problem Ticket System ===&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;problem ticket system&amp;quot;? ====&lt;br /&gt;
&lt;br /&gt;
This is a system that allows anyone with a Compute Canada account to start a persistent email thread that is referred to as a &amp;quot;problem ticket&amp;quot;.    When a user submits a new ticket it will be brought to the attention of an appropriate and available Compute Canada/SHARCNET staff member for resolution.  &lt;br /&gt;
&lt;br /&gt;
You interact with the ticket system entirely via email.&lt;br /&gt;
&lt;br /&gt;
==== What do I need to specify in a ticket ? ====&lt;br /&gt;
&lt;br /&gt;
To help us address your question faster, please try to do the following when submitting a ticket:&lt;br /&gt;
&lt;br /&gt;
#specify which of our systems is involved &lt;br /&gt;
#if the problem pertains to a job, then report the &amp;lt;u&amp;gt;jobid&amp;lt;/u&amp;gt; associated with the job; this is an integer that is returned by the scheduler when you submit the job&lt;br /&gt;
#report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem; if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem&lt;br /&gt;
#if you&amp;#039;d like for a particular staff member to be aware of the ticket, mention them&lt;br /&gt;
&lt;br /&gt;
==== How do I submit a ticket? ====&lt;br /&gt;
&lt;br /&gt;
In general, you can submit a new ticket by emailing  [mailto:support@computecanada.ca support@computecanada.ca]  with the email address associated with your Compute Canada account.  If you are using another email address, please provide your full name, your Compute Canada default username (if available) and your university or institution.&lt;br /&gt;
&lt;br /&gt;
If you like, you can also target your inquiry more specifically, by using the following addresses to submit your ticket:&lt;br /&gt;
&lt;br /&gt;
* [mailto:help@sharcnet.ca help@sharcnet.ca] - questions specific to SHARCNET, for example relating to contributed SHARCNET systems&lt;br /&gt;
* [mailto:globus@computecanada.ca globus@computecanada.ca] -- Questions about [[Globus]] file transfer services&lt;br /&gt;
* [mailto:cloud@computecanada.ca cloud@computecanada.ca] -- Questions about using Compute Canada cloud resources&lt;br /&gt;
* [mailto:accounts@computecanada.ca accounts@computecanada.ca] -- Questions about Compute Canada accounts&lt;br /&gt;
* [mailto:renewals@computecanada.ca renewals@computecanada.ca] -- Questions about Compute Canada account renewals&lt;br /&gt;
&lt;br /&gt;
=== I am new to parallel programming, can you help me get started with my project? ===&lt;br /&gt;
Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research. If your programming project would involve a significant staff time, you should consider applying for Dedicated Programming support. (We run the competition annually; see https://www.sharcnet.ca/my/research/programming).&lt;br /&gt;
&lt;br /&gt;
=== Can you install a package on a cluster for me? ===&lt;br /&gt;
Certainly.  We suggest you make the request by sending e-mail to [mailto:support@computecanada.ca support@computecanada.ca] with the specific request.&lt;br /&gt;
&lt;br /&gt;
=== I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that? ===&lt;br /&gt;
If you tell us what you want, we may be able to help you out.&lt;br /&gt;
&lt;br /&gt;
=== Does SHARCNET provide any training on programming and using the systems? ===&lt;br /&gt;
&lt;br /&gt;
Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every summer (usually late May to early June), SHARCNET holds [https://www.sharcnet.ca/help/index.php/Summer_Schools an annual HPC Summer School] with a variety of in-depth, hands-on workshops. &lt;br /&gt;
&lt;br /&gt;
SHARCNET also offers a series of online seminars (so-called &amp;quot;General interest webinars&amp;quot;), typically delivered every second Wednesday at lunch time.  These are announced via the SHARCNET events mailing list and one can see the schedule at the [https://www.sharcnet.ca/my/news/calendar SHARCNET event calendar].  Past seminars are recorded and posted on [http://youtube.sharcnet.ca our youtube channel]. A full listing of the past webinars is available on the [https://helpwiki.sharcnet.ca/wiki/Online_Seminars Online Seminars] page.&lt;br /&gt;
&lt;br /&gt;
=== Attending SHARCNET Webinars ===&lt;br /&gt;
{{:Attending SHARCNET Webinars}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logging in to Systems, Transferring and Editing Files ==&lt;br /&gt;
&lt;br /&gt;
=== How do I login to SHARCNET? ===&lt;br /&gt;
You access the SHARCNET clusters using ssh.  For Graham and other national systems Compute Canada credentials are required.  For the remaining (&amp;quot;Legacy&amp;quot;) systems, you will require SHARCNET credentials (submit a ticket to help@sharcnet.ca if you have questions).&lt;br /&gt;
&lt;br /&gt;
====Unix/Linux/OS X====&lt;br /&gt;
To login to a system, you need to use an [http://www.openssh.com/ Secure Shell (SSH)] connection. If you are logging in from a UNIX-based machine, make sure it has an SSH client (ssh) installed (this is almost always the case on UNIX/Linux/OS X). If you have the same login name on both your local system and SHARCNET, and you want to login to, say, &amp;lt;tt&amp;gt;graham&amp;lt;/tt&amp;gt;, you may use the command:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
If your Compute Canada username is different from the username on your local systems, then you may use either of the following forms:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.computecanada.ca -l username&lt;br /&gt;
 ssh username@graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
If you want to establish an X window connection so that you can use graphics applications such as &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ddt&amp;lt;/tt&amp;gt;, you can add a &amp;lt;tt&amp;gt;-Y&amp;lt;/tt&amp;gt; to the command:&lt;br /&gt;
&lt;br /&gt;
 ssh -Y username@graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
This will automatically set the X DISPLAY variable when you login.&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
If you are logging from a computer running Windows and need some pointers we recommend consulting our [[SSH]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between Login Nodes and Compute Nodes? ===&lt;br /&gt;
====Login Nodes====&lt;br /&gt;
&lt;br /&gt;
Most of our clusters have distinct &amp;#039;&amp;#039;login nodes&amp;#039;&amp;#039; associated with them that you are automatically redirected to when you login to the cluster (some systems are directly logged into, eg. SMPs and smaller specialty systems).  You can use these to do most of your work preparing for jobs (compiling, editing configuration files) and other low-intensity tasks like moving and copying files.  &lt;br /&gt;
&lt;br /&gt;
You can also use them for other quick tasks, like simple post-processing, but any significant work should be submitted as a job to the compute nodes.  On most login nodes, each process is limited to 1 cpu-hour; this will be noticable if you perform anything compute-intensive, and can affect IO-oriented activity as well (such as very large &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; operations.)&lt;br /&gt;
&lt;br /&gt;
=== How can I suspend and resume my session? ===&lt;br /&gt;
&lt;br /&gt;
The program screen can start persistent terminals from which you can detach and reattach.  The simplest use of screen is&lt;br /&gt;
&lt;br /&gt;
 screen -dR&lt;br /&gt;
&lt;br /&gt;
which will either reattach you to any existing session or create a new one if one doesn&amp;#039;t exist.  To terminate the current screen session, type &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;.  To detach manually (you are automatically detached if the connection is lost) press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;d&amp;#039;&amp;#039;, you can the resume later as above (ideal for running background jobs).  Note that &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; is screen&amp;#039;s escape sequence, so you have to do &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;a&amp;#039;&amp;#039; to get the regular effect of pressing &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; inside a screen session (e.g., moving the cursor to the start of the line in a shell).&lt;br /&gt;
&lt;br /&gt;
For a list of other &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; key sequences, press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;?&amp;#039;&amp;#039;.  For further details and  command line options, see the [http://www.gnu.org/software/screen/manual/screen.html screen manual] (or type &amp;lt;tt&amp;gt;man screen&amp;lt;/tt&amp;gt; on any of the clusters).&lt;br /&gt;
&lt;br /&gt;
Other notes:&lt;br /&gt;
* If you want to create additional &amp;quot;text windows&amp;quot;, use Ctrl-A Ctrl-C. Remember to type &amp;quot;exit&amp;quot; to close it. &lt;br /&gt;
* To switch to a &amp;quot;text window&amp;quot; with a certain number, use Ctrl-A # (where # is 0 to 9).&lt;br /&gt;
* To see a list of window numbers use Ctrl-A w&lt;br /&gt;
* To be presented a list of windows and select one to use, use Ctrl-A &amp;quot; (This is handy if you&amp;#039;ve made too many windows.)&lt;br /&gt;
* If the program running in a screen &amp;quot;text window&amp;quot; refuses to die (i.e., it needs to be killed) you can use Ctrl-A K&lt;br /&gt;
* For brief help on keystrokes use Ctrl-A ?&lt;br /&gt;
* For extensive help, run &amp;quot;man screen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What operating systems are supported? ===&lt;br /&gt;
UNIX in general. Currently, Linux is the only operating system used within SHARCNET.&lt;br /&gt;
&lt;br /&gt;
=== What makes a cluster different than my UNIX workstation? ===&lt;br /&gt;
&lt;br /&gt;
If you are familiar with UNIX, then using a cluster is not much different from using a workstation. When you login to a cluster, you in fact only log in to one of the cluster nodes. In most cases, each cluster node is a physical machine, usually a server class machine, with one or several CPUs, that is more or less the same as a workstation you are familiar with. The difference is that these nodes are interconnected with special interconnect devices and the way you run your program is slightly different. Across SHARCNET clusters, you are not expected to run your program interactively. You will have to run your program through a queueing system. That also means where and when your program gets to run is not decided by you, but by the queueing system.&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Those primary programming languages such as C, C++, Fortran, and Python are supported. Other languages, such as Java, Pascal and Ada, are also supported, but with limited technical support from us. &lt;br /&gt;
&lt;br /&gt;
=== How do I organize my files? ===&lt;br /&gt;
[https://docs.computecanada.ca/wiki/Storage_and_file_management#Storage_types Main file systems on our National systems.]&lt;br /&gt;
&lt;br /&gt;
==== How do I transfer files/directories to/from or between cluster? ====&lt;br /&gt;
&lt;br /&gt;
=====Unix/Linux=====&lt;br /&gt;
To transfer files to and from a cluster on a UNIX machine, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt;. For example, if you want to upload file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; to cluster graham from your machine &amp;lt;tt&amp;gt;myhost&amp;lt;/tt&amp;gt;, use the following command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp foo.f graham.computecanada.ca:&lt;br /&gt;
&lt;br /&gt;
assuming that your machine has &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; installed. If you want to transfer a file from Windows or Mac, you need have &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt; for Windows or Mac installed.&lt;br /&gt;
&lt;br /&gt;
If you transfer file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; between Compute Canada clusters, say from your home directory on cedar to your home directory on graham, simply use the following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp foo.f graham:/home/username/&lt;br /&gt;
&lt;br /&gt;
If you are transferring files between a UNIX machine and a cluster, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; command with &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; option. For instance, if you want to download the subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; in the directory &amp;lt;tt&amp;gt;project&amp;lt;/tt&amp;gt; in your home directory on graham to your local UNIX machine, on your local machine, use command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp -rp graham.sharcnet.ca:project/foo .&lt;br /&gt;
&lt;br /&gt;
Similarly, you can transfer the subdirectory between Compute Canada clusters. The following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp -r graham:/home/username/scratch/foo .&lt;br /&gt;
&lt;br /&gt;
will download subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; from your scratch directory on graham to your home directory on cedar (note that the prompt indicates you are currently logged on to cedar).&lt;br /&gt;
&lt;br /&gt;
The use of &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; option above will preserve the time stamp of each file. For Windows and Mac, you need to check the documentation of &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; for features. &amp;#039;&amp;#039;&amp;#039;Do not use -p switch with scp or cp commands on clusters, when the destination is your project space&amp;#039;&amp;#039;&amp;#039;, or you might run into the infamous [https://docs.computecanada.ca/wiki/Frequently_Asked_Questions#Disk_quota_exceeded_error_on_.2Fproject_filesystems Disk quota exceeded issue].&lt;br /&gt;
&lt;br /&gt;
You may also &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; and compress the entire directory and then use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to save bandwidth. In the above example, first you login to graham, then do the following&lt;br /&gt;
&lt;br /&gt;
 [username@gra-login2:~]$ cd project&lt;br /&gt;
 [username@gra-login2:~]$ tar -cvf foo.tar foo&lt;br /&gt;
 [username@gra-login2:~]$ gzip foo.tar&lt;br /&gt;
&lt;br /&gt;
Then on your local machine myhost, use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to copy the tar file&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp graham.computecanada.ca:project/foo.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Note for most Linux distributions, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; has an option &amp;lt;tt&amp;gt;-z&amp;lt;/tt&amp;gt; that will compress the &amp;lt;tt&amp;gt;.tar&amp;lt;/tt&amp;gt; file using &amp;lt;tt&amp;gt;gzip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Windows=====&lt;br /&gt;
You may read the instructions on using an ssh client. [[https://helpwiki.sharcnet.ca/wiki/SSH#Transfering_files_.28Secure_File_Transfer_Client.29]]&lt;br /&gt;
&lt;br /&gt;
====How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect?====&lt;br /&gt;
&lt;br /&gt;
In general, most users should be fine using &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to transfer data to and from SHARCNET systems.  If you need to transfer a lot of files &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; is recommended to ensure that you do not need to restart the transfer from scratch should there be a connection failure.  Although you can use &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to any cluster&amp;#039;s login node(s), it is often best to use gra-dtn1.computecanada.ca - it is dedicated to data transfer. &lt;br /&gt;
&lt;br /&gt;
In general one should expect the following transfer rates with &amp;#039;&amp;#039;scp&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* If you are connecting to SHARCNET through a Research/Education network site (ORION, CANARIE, Internet2) and are on a fast local network (this is the case for most users connecting from academic institutions) then you should be able to attain sustained transfer speeds in excess of 10MB/s.  If your path is all gigabit or better, you should be able to reach rates above 50 MB/s.&lt;br /&gt;
* If you are transferring data over the wider internet, you will not be able to attain these speeds, as all traffic that does not enter/exit SHARCNET via the R&amp;amp;E net is restricted to a limited-bandwidth commercial feed. In this case one will typically see rates on the order of 1MB/s or less.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that filesystems and networks are  shared resources and suffer from contention; if they are busy the above rates may not be attainable&lt;br /&gt;
&lt;br /&gt;
For transferring large amounts of data (many gigabytes) the best approach is to use the online tool [https://docs.computecanada.ca/wiki/Transferring_data#Globus_transfer Globus].&lt;br /&gt;
&lt;br /&gt;
==== How do I access the same file from different subdirectories on the same cluster ? ====&lt;br /&gt;
&lt;br /&gt;
You should not need copy large files on the same cluster (e.g. from one user to another&lt;br /&gt;
or using the same file in different subdirectories).  Instead of using&lt;br /&gt;
scp you might consider issuing a &amp;quot;soft link&amp;quot; command. Assume that you need access&lt;br /&gt;
to the file large_file1 in subdirectory /home/user1/subdir1 and you need it to be in your&lt;br /&gt;
subdirectory /home/my_account/my_dir from where you will invoke it under the name&lt;br /&gt;
my_large_file1.  Then go to that directory and type:&lt;br /&gt;
&lt;br /&gt;
 ln -s /home/user1/subdir1/large_file1    my_large_file1&lt;br /&gt;
&lt;br /&gt;
Another example, assume that in subdirectory /home/my_account/PROJ1 you have several&lt;br /&gt;
subdirectories called CASE1, CASE2, ...  In each subdirectory CASEn you have a slightly&lt;br /&gt;
different code but all of them process the same data file called test_data. Rather than&lt;br /&gt;
copying the test_data file into each CASEn subdirectory, place test_data above i.e.&lt;br /&gt;
in /home/my_account/PROJ1 and then in each CASEn subdirectory issue following &amp;quot;soft link&amp;quot;&lt;br /&gt;
command:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../test_data  test_data&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;soft links&amp;quot; can be removed by using the rm command. For example, to remove the soft link from&lt;br /&gt;
/home/my_account/PROJ1/CASE2 type following command from this subdirectory:&lt;br /&gt;
&lt;br /&gt;
 rm -rf test_data&lt;br /&gt;
&lt;br /&gt;
Typing above command from subdirectory /home/my_account/PROJ1 would remove the actual file and then&lt;br /&gt;
none of the CASEn subdirectories would have access to it.&lt;br /&gt;
&lt;br /&gt;
==== How are files deleted from the /home/userid/scratch filesystems? ====&lt;br /&gt;
&lt;br /&gt;
All files on /home/userid/scratch that are over 2 months old (not old in the common sense, please see below) are automatically deleted. Data needed for long term storage and reference should be kept in either /project, /nearline, or other archival storage areas. The scratch filesystem is checked at the end of the month for files which will be candidates for expiry on the 15th of the following month. On the first day of the month, a login message is posted and a notification e-mail is sent to all users who have at least one file which is a candidate for purging and containing the location of a file which lists all the candidates for purging.  On the 12th of the month, a second scan is run to check for files that will still expire on the 15th, and again, users with candidates for expiry are sent a second warning email.  Lastly, on the 15th, all files which are due for expiry are removed.&lt;br /&gt;
&lt;br /&gt;
An unconventional aspect of this system is that it does not determine the age of a file based on the file&amp;#039;s attributes, e.g., the standard dates reported by the &amp;lt;i&amp;gt;stat&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;find&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;ls&amp;lt;/i&amp;gt;, etc. commands.  (This is known as the &amp;quot;mtime&amp;quot; of the file, for &amp;quot;modification time&amp;quot;, and is frequently inaccurate.) The age of a file is determined based on whether or not its data contents (i.e., the information stored in the file) have changed or been accessed, and this age is stored externally to the file.  Only files where the contents have changed or accessed will have their age counter &amp;quot;reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A list of your candidate files for expiry can be found in /home/scratch_to_delete/$USER  (where $USER is your userid).&lt;br /&gt;
&lt;br /&gt;
===== How do I check the age of a file =====&lt;br /&gt;
We define a file&amp;#039;s age as the most recent of:&lt;br /&gt;
&lt;br /&gt;
 *the access time (atime) and&lt;br /&gt;
 *the change time (ctime)&lt;br /&gt;
&lt;br /&gt;
You can find the ctime of a file using&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lc &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while the atime can be obtained with the command&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lu &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do not use the modify time (mtime) of the file because it can be modified by the user or by other programs to display incorrect information.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, simple use of the atime property would be sufficient, as it is updated by the system in sync with the ctime. However, userspace programs are able to alter atime, potentially to times in the past, which could result in early expiration of a file. The use of ctime as a fallback guards against this undesirable behaviour.&lt;br /&gt;
&lt;br /&gt;
It is also your responsibility to manage your stored data: most of the filesystems are not intended to provide an indefinite archiving service so when a given file or directory is no longer needed, you need to move it to a more appropriate filesystem which may well mean your personal workstation or some other storage system under your control. Moving significant amounts of data between your workstation and a Compute Canada system or between two Compute Canada systems should generally be done using Globus.&lt;br /&gt;
&lt;br /&gt;
==== How to archive my data? ====&lt;br /&gt;
&lt;br /&gt;
===== Use tar to archive files and directories =====&lt;br /&gt;
&lt;br /&gt;
The primary archiving utility on all Linux and Unix-like systems is the [https://www.gnu.org/software/tar/manual/tar.html tar] command. It will bundle a bunch of files or directories together and generate a single file, called an &amp;#039;&amp;#039;archive file&amp;#039;&amp;#039; or &amp;#039;&amp;#039;tar-file&amp;#039;&amp;#039;. By convention an archive file has &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; as the file name extension. When you archive a directory with &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, it will, by default, include all the files and sub-directories contained within it, and sub-sub-directories contained in those, and so on. So the command &amp;lt;code&amp;gt;tar --create --file project1.tar project1&amp;lt;/code&amp;gt; will pack all the content of directory &amp;#039;&amp;#039;project1&amp;#039;&amp;#039; into the file &amp;#039;&amp;#039;project1.tar&amp;#039;&amp;#039;. The original directory will remain unchanged, so this may double the amount of disk space occupied!&lt;br /&gt;
&lt;br /&gt;
You can extract files from an archive using the same command with a different option:&amp;lt;code&amp;gt;tar --extract --file project1.tar&amp;lt;/code&amp;gt;. If there is no directory with the original name, it will be created. If a directory of that name exists and contains files of the same names as in the archive file, they will be overwritten. Another option can be added to specify the destination directory where to extract the archive&amp;#039;s content.   &lt;br /&gt;
&lt;br /&gt;
===== Compress and uncompress tar files =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; archiving utility can compress an archive file at the same time it creates it. There are a number of compression methods to choose from. We recommend either &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;, which can be used as follows:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ tar --create --xz --file project1.tar.xz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --xz --file project1.tar.xz&lt;br /&gt;
 [user_name@localhost]$ tar --create --gzip --file project1.tar.gz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --gzip --file project1.tar.gz&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;code&amp;gt;--xz&amp;lt;/code&amp;gt; will produce a smaller compressed file (a &amp;quot;better compression ratio&amp;quot;) but takes longer and uses more RAM while working. &amp;lt;code&amp;gt;--gzip&amp;lt;/code&amp;gt; does not typically compress as small, but may be used if you encounter difficulties due to insufficient memory or excessive run time during &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt;. A third option, &amp;lt;code&amp;gt;--bzip2&amp;lt;/code&amp;gt;, is also available, that typically does not compress as small as &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; but takes longer than &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt; first without compression and then use the commands &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; in a separate step, although there is rarely a reason to do so. Similarly, you can run &amp;lt;code&amp;gt;xz -d&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip -d&amp;lt;/code&amp;gt; to decompress an archive file before running &amp;lt;code&amp;gt;tar --extract&amp;lt;/code&amp;gt;, but again there is rarely a reason to do so.&lt;br /&gt;
&lt;br /&gt;
The commands &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; can be used to compress any file, not just archive files:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ gzip bigfile&lt;br /&gt;
 [user_name@localhost]$ xz bigfile&lt;br /&gt;
&lt;br /&gt;
These commands will produce the files &amp;lt;code&amp;gt;bigfile.gz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigfile.xz&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
=====Archival Storage=====&lt;br /&gt;
&lt;br /&gt;
On Graham, files copied to ~/nearline will be subsequently moved to offline (tape-based) storage. See [https://docs.computecanada.ca/wiki/Using_nearline_storage this link] for more details.&lt;br /&gt;
&lt;br /&gt;
==== How can I check the hidden files in directory? ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;.&amp;quot; at the beginning of the name means that the file is &amp;quot;hidden&amp;quot;. You have to use the -a option with ls to see it. I.e. &amp;lt;code&amp;gt;ls -a &amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
If you want to display only the hidden files then type:&lt;br /&gt;
 ls -d .*&lt;br /&gt;
&lt;br /&gt;
Note: there is an alias which is loaded from /etc/bashrc (see your .bashrc file). The alias is defined by alias &amp;lt;code&amp;gt; l.=&amp;#039;ls -d .* --color=auto&amp;#039; &amp;lt;/code&amp;gt; and if you type:&lt;br /&gt;
 l.&lt;br /&gt;
you will also display only the hidden files.&lt;br /&gt;
&lt;br /&gt;
==== How can I count the number of files in a directory? ====&lt;br /&gt;
&lt;br /&gt;
One can use the following command to count the number of files in a directory (in this example, your /work directory):&lt;br /&gt;
&lt;br /&gt;
 find /home/$USER -type f   | wc -l&lt;br /&gt;
&lt;br /&gt;
It is always a good idea to [[Knowledge_Base#How_to_archive_my_data.3F|archive]] and/or compress files that are no longer needed on the filesystem (see [https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_to_organize_a_large_number_of_files.3F below]).  This helps minimize one&amp;#039;s footprint on the filesystem and as such the impact they have on other users of the shared resource.&lt;br /&gt;
&lt;br /&gt;
==== How to organize a large number of files? ====&lt;br /&gt;
&lt;br /&gt;
With parallel cluster filesystems, you will get best I/O performance writing data to a small number of large files. Since all metadata operations on each of our parallel filesystems are handled by a single file server, depending on how many files are being accessed the server can become overwhelmed leading to poor overall I/O performance for all users. If your workflow involves storing data in a large number of files, it is best to pack these files into a small number of larger archives, e.g. using tar command&lt;br /&gt;
&lt;br /&gt;
 tar cvf archiveFile.tar directoryToArchive&lt;br /&gt;
&lt;br /&gt;
For better performance with many files inside your archive, we recommend to use DAR (Disk ARchive utility), which is a disk analog of tar (Tape ARchive).  Dar can extract files from anywhere in the archive much faster than tar. The dar command is available by default on sharcnet systems. It can be used to pack files into a dar archive by doing something like: &lt;br /&gt;
&lt;br /&gt;
 dar -s 1G -w -c archiveFile -g directoryToArchive&lt;br /&gt;
&lt;br /&gt;
In this example we split the archive into 1GB chunks, and the archive files will be named archiveFile.1.dar, archiveFile.2.dar, and so on. To list the contents of the archive, you can type:&lt;br /&gt;
&lt;br /&gt;
 dar -l archiveFile&lt;br /&gt;
&lt;br /&gt;
To temporarily extract files for post-processing into current directory, you would type:&lt;br /&gt;
&lt;br /&gt;
 dar -R . -O -x archiveFile -v -g pathToYourFile/fileToExtract&lt;br /&gt;
&lt;br /&gt;
=== I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host ===&lt;br /&gt;
&lt;br /&gt;
The most likely cause of this behaviour is repeated failed login attempts.  Part of our security policies involves blocking the IP address of machines that attempt multiple logins with incorrect passwords over a short period of time---many brute-force attacks on systems do exactly this: looking for poor passwords, badly configured accounts, etc.  Unfortunately, it isn&amp;#039;t uncommon for a user to forget their password and make repeated login attempts with incorrect passwords and end up with that machine blacklisted and unable to connect at all.&lt;br /&gt;
&lt;br /&gt;
A temporary solution is simply to attempt to login from another machine.  If you have access to another machine at your site, you can shell to that machine first, and then shell to the SHARCNET system (as that machine&amp;#039;s IP shouldn&amp;#039;t be blacklisted).  In order to have your machine unblocked, you will have to email to [mailto:support@computecanada.ca support@computecanada.ca] as a system administrator must manually intervene in order to fix it.&lt;br /&gt;
&lt;br /&gt;
NOTE: there are other situations that can produce this message, however they are rarer and more transient.  If you are unable to log in from one machine, but can from another, it is most likely the IP blacklisting that is the problem and the above will provide a temporary work-around while your problem ticket is processed.&lt;br /&gt;
&lt;br /&gt;
=== I am unable to ssh/scp from SHARCNET to my local computer ===&lt;br /&gt;
&lt;br /&gt;
Most campus networks are behind some sort of firewall.  If you can ssh out to SHARCNET, but cannot establish a connection in the other direction, then you are probably behind a firewall and should speak with your local system administrator or campus IT department to determine if there are any exceptions or workarounds in place.&lt;br /&gt;
&lt;br /&gt;
=== SSH tells me SOMEONE IS DOING SOMETHING NASTY!? ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please first read the following:&lt;br /&gt;
&lt;br /&gt;
https://docs.computecanada.ca/wiki/SSH_security_improvements&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suppose you attempt to login to SHARCNET, but instead get an alarming message like this:&lt;br /&gt;
&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that the RSA host key has just been changed.&lt;br /&gt;
 The fingerprint for the RSA key sent by the remote host is&lt;br /&gt;
 fe:65:ab:89:9a:23:34:5a:50:1e:05:d6:bf:ec:da:67.&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending key in /home/user/.ssh/known_hosts:42&lt;br /&gt;
 RSA host key for requin has changed and you have requested strict checking.&lt;br /&gt;
 Host key verification failed. &lt;br /&gt;
&lt;br /&gt;
SSH begins a connection by verifying that the host you&amp;#039;re connecting to is authentic. It does this by caching the hosts&amp;#039;s &amp;quot;hostkey&amp;quot; in your  &amp;lt;tt&amp;gt;~/.ssh/known_hosts&amp;lt;/tt&amp;gt; file. At times, a hostkey may be changed legitimately; when this happens, you may see such a message. It&amp;#039;s a good idea to verify this with us, you may be able to check the fingerprint yourself by logging into another sharcnet system and running:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub &lt;br /&gt;
&lt;br /&gt;
If the fingerprint is OK, the normal way to fix the problem is to simply remove the old hostkey from your &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. On machines with commandline SSH, you can do this with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -R thehostname&lt;br /&gt;
&lt;br /&gt;
You can use your choice of editor if you&amp;#039;re comfortable doing so (it&amp;#039;s a plain text file, but has long lines). On a unix-compatible machine, you can also use the following very small script (Substitute the line(s) printed in the warning message illustrated above for &amp;#039;42&amp;#039; here.):&lt;br /&gt;
&lt;br /&gt;
 perl -pi -e &amp;#039;undef $_ if (++$line == 42)&amp;#039; ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
Another solution is brute-force: remove the whole &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. This throws away any authentication checking, and afterwards, your first connection to any machine will prompt you to accept a newly discovered host key.&lt;br /&gt;
&lt;br /&gt;
=== Ssh works, but scp doesn&amp;#039;t! ===&lt;br /&gt;
&lt;br /&gt;
If you can &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; to a cluster successfully, but cannot &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to to it, the problem is likely that your login scripts print unexpected messages which confuse &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; is based on the same &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, but assumes that the connection is &amp;quot;clean&amp;quot;: that is, that it does not produce any un-asked-for content. If you have something like:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; will be confused by the salutation. To avoid this, simply ensure that the message is only printed on an interactive login:&lt;br /&gt;
&lt;br /&gt;
 if [ -t 0 ]; then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
or in csh/tcsh syntax:&lt;br /&gt;
&lt;br /&gt;
 if ( -t 0 ) then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
=== How do I edit my program on a cluster? ===&lt;br /&gt;
&lt;br /&gt;
We provide a variety of editors, such as the traditional text-mode &amp;lt;tt&amp;gt;emacs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; (vim), as well as a simpler one called &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;. If you have X on your desktop (and tunneled through SSH), you can use the GUI versions (&amp;lt;tt&amp;gt;xemacs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If your desktop supports FUSE, it&amp;#039;s very convenient to simply mount your home tree like this:&lt;br /&gt;
 mkdir sharcnet&lt;br /&gt;
 sshfs graham.computecanada.ca: sharcnet&lt;br /&gt;
you can then use any local editor of your choice.&lt;br /&gt;
&lt;br /&gt;
If you run emacs on your desktop, you can also edit a remote file from within your local emacs client using [http://www.gnu.org/software/tramp Tramp], opening and saving a file as /username@cluster.computecanada.ca:path/file.&lt;br /&gt;
&lt;br /&gt;
== Research at SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== I have a research project I would like to collaborate on with SHARCNET, who should I talk to? ===&lt;br /&gt;
&lt;br /&gt;
You may contact [mailto:barb@sharcnet.ca SHARCNET head office] or contact members of the [https://www.sharcnet.ca/my/contact/directory#techteam SHARCNET technical staff].&lt;br /&gt;
&lt;br /&gt;
=== How can I contribute compute resources to SHARCNET so that other researchers can share it? ===&lt;br /&gt;
&lt;br /&gt;
Most people&amp;#039;s research is &amp;quot;bursty&amp;quot; - there are usually sparse periods of time when some computation is urgently needed, and other periods when there is less demand. One problem with this is that if you purchase the equipment you need to meet your &amp;quot;burst&amp;quot; needs, it&amp;#039;ll probably sit, underutilized, during other times.&lt;br /&gt;
&lt;br /&gt;
An alternative is to donate control of this equipment to SHARCNET, and let us arrange for other users to use it when you are not. We prefer to be involved in the selection and configuration of such equipment. Our promise to contributors is that as much as possible, they should obtain as much benefit from the cluster as if it were not shared. Owners get preferential access. Naturally, owners are also able to burst to higher peak usage, since their equipment has been pooled with other contributions. (Technically, SHARCNET cannot itself own such equipment — it remains owned by the institution in question, and will be returned to the contributor upon request.) If you think this model will also work for you and you would like to contribute your computational resource to help the research community at SHARCNET, you can contact us for such arrangement.&lt;br /&gt;
&lt;br /&gt;
=== I do not know much about computation, nor is it my research interest. But I am interested in getting my research done faster with the help of the high performance computing technology. In other words, I do not care about the process and mechanism, but only the final results. Can SHARCNET provide this type of help? ===&lt;br /&gt;
&lt;br /&gt;
We will be happy to bring the technology of high performance computing to you to accelerate your research, if at all possible. If you would like to discuss your plan with us, please feel free to contact our [https://www.sharcnet.ca/my/contact/directory#techteam high performance computing specialists]. They will be happy to listen to your needs and are ready to provide appropriate suggestions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET participates in the Compute Canada NRAC (National Resource Allocation Competition) and provides a continual competition for groups that require more than the default level of access to our resources.  Please see [[Dedicated Resources]] for further information.&lt;br /&gt;
&lt;br /&gt;
=== I heard SHARCNET offers fellowships, where can I get more information? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET no longer actively runs a fellowship program.  You may find information regarding past fellowships and other dedicated resource opportunities on the [https://www.sharcnet.ca/my/research/fellowships Research Fellowships page] of the web portal.&lt;br /&gt;
&lt;br /&gt;
=== I would like to do some research at SHARCNET as a visiting scholar, how should I apply? ===&lt;br /&gt;
&lt;br /&gt;
In general, you will need to find a hosting department or a person affiliated with one of the SHARCNET institutions. You may also [http://www.sharcnet.ca/my/contact contact us] directly for more specific information.&lt;br /&gt;
&lt;br /&gt;
=== I would like to send my students to SHARCNET to do some work for me. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
See above.&lt;br /&gt;
&lt;br /&gt;
== Contacting SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for research, academic exchanges, and technical issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for business development, education and other issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact a specific staff member at SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
See [https://www.sharcnet.ca/my/contact/directory staff directory] for contact information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Acknowledge SHARCNET in Publications ==&lt;br /&gt;
&lt;br /&gt;
=== How do I acknowledge SHARCNET in my publications? ===&lt;br /&gt;
&lt;br /&gt;
We recommend one cite the following:&lt;br /&gt;
&lt;br /&gt;
 This work was made possible by the facilities of the Shared Hierarchical &lt;br /&gt;
 Academic Research Computing Network (SHARCNET:www.sharcnet.ca) and Digital Research Alliance of Canada (https://alliancecan.ca/en).&lt;br /&gt;
&lt;br /&gt;
=== I&amp;#039;ve seen different spellings of the name, what is the standard spelling of SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
We suggest the spelling SHARCNET, all in upper case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What types of research programs / support are provided to the research community? ==&lt;br /&gt;
&lt;br /&gt;
Our overall intent is to provide support that can both respond to the range of needs that the user community presents and help to increase the sophistication of the community and enable new and larger-in-scope applications making use of SHARCNET&amp;#039;s HPC facilities. The range of support can perhaps best be understood in terms of a pyramid:&lt;br /&gt;
&lt;br /&gt;
=== Level 1 ===&lt;br /&gt;
&lt;br /&gt;
At the apex of the pyramid, SHARCNET supports a small number of projects with dedicated programmer support. The intent is to enable projects that will have a lasting impact and may lead to a &amp;quot;step change&amp;quot; in the way research is done at SHARCNET. Inter-disciplinary and inter-institutional projects are particularly welcomed. For the latest information about the program, including application guidelines, please see the  [https://www.sharcnet.ca/my/research/programming Programming Competition] page in our web portal.&lt;br /&gt;
&lt;br /&gt;
=== Level 2 ===&lt;br /&gt;
&lt;br /&gt;
The middle layers of support are provided through a number of initiatives.&lt;br /&gt;
&lt;br /&gt;
These include:&lt;br /&gt;
* Programming support of more modest duration (several days to one month engagement, usually part time)&lt;br /&gt;
* Training on a variety of topics through [https://www.sharcnet.ca/help/index.php/Training workshops, seminars and online training materials]&lt;br /&gt;
* Consultation. This may include user-initiated interactions on particular programs, algorithms, techniques, debugging, optimization etc., as well as unsolicited help to ensure effective use of SHARCNET systems&lt;br /&gt;
* Site Leaders play an important role in working with the community to help researchers connect with SHARCNET staff and to obtain appropriate help and support.&lt;br /&gt;
&lt;br /&gt;
=== Level 3 ===&lt;br /&gt;
&lt;br /&gt;
The base level of the pyramid handles the very large number of small requests that are essential to keeping the user community working effectively with the infrastructure on a day-to-day basis. Several of these can be answered by this FAQ; many of the issues are presented through the [https://www.sharcnet.ca/help/index.php/Knowledge_Base#Compute_Canada_Problem_Ticket_System ticketing system]. The support is largely problem oriented with each problem being time limited.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=929</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=929"/>
		<updated>2024-09-17T17:02:57Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* What is SHARCNET? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Sharcnet_logo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== About SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== What is SHARCNET? ===&lt;br /&gt;
SHARCNET stands for Shared Hierarchical Academic Research Computing Network. Established in 2000, SHARCNET is the largest high performance computing consortium in Canada, involving 19 universities and colleges across southern, central and northern Ontario.&lt;br /&gt;
&lt;br /&gt;
SHARCNET is a member consortium in the [https://alliancecan.ca/en Digital Research Alliance of Canada (the Alliance)]  national HPC platform.&lt;br /&gt;
&lt;br /&gt;
=== Where is SHARCNET? ===&lt;br /&gt;
The [http://www.sharcnet.ca/my/contact main office] of SHARCNET is located in the Western Science Centre at [http://www.uwo.ca/ The University of Western Ontario].&lt;br /&gt;
&lt;br /&gt;
=== What does SHARCNET have? ===&lt;br /&gt;
The primary SHARCNET compute system is [https://docs.computecanada.ca/wiki/Graham Graham heterogeneous cluster] located at the University of Waterloo.  It is named after Wes Graham, the first director of the Computing Centre at Waterloo.  It consists of 41,548 cores and 520 GPU devices, spread across 1,185 nodes of different configurations.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with SHARCNET? ===&lt;br /&gt;
If you have a program that takes months to run on your PC, you could probably run it within a few hours using hundreds of processors on SHARCNET / Compute Canada clusters, provided your program is inherently parallelisable. If you have hundreds or thousands of test cases to run through on your PC or computers in your lab, then with hundreds of processors running those cases independently will significantly reduce your test cycles.&lt;br /&gt;
&lt;br /&gt;
=== Who is running SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
The daily operation and development of SHARCNET computational facilities is managed by a group of highly qualified system administrators. In addition, we have a team of high performance technical computing consultants, who are responsible for technical support on libraries, programming and application analysis.&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET? ===&lt;br /&gt;
For technical inquiries, you may send E-mail to [mailto:support@computecanada.ca support@computecanada.ca] or [mailto:help@sharcnet.ca help@sharcnet.ca], or [https://www.sharcnet.ca/my/contact/directory#techteam contact your local system administrator or HPC specialist]. For general inquiries, you may contact the SHARCNET [http://www.sharcnet.ca/my/contact main office].&lt;br /&gt;
&lt;br /&gt;
== Getting an Account with SHARCNET and Related Issues ==&lt;br /&gt;
&lt;br /&gt;
To use SHARCNET (and any other national Compute Canada) facilities one has to [https://www.alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account apply for an Alliance account].&lt;br /&gt;
&lt;br /&gt;
== Getting Help ==&lt;br /&gt;
&lt;br /&gt;
=== I have encountered a problem while using a Compute Canada/SHARCNET system and need help, who should I talk to? ===&lt;br /&gt;
We encourage you to use the problem ticketing system (described in detail [[FAQ: Getting Help#Compute Canada Problem Ticket System|below]]) .  This is the most efficient way of reporting a problem.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the [https://www.sharcnet.ca/my/contact/directory directory] page.&lt;br /&gt;
&lt;br /&gt;
=== How long should I expect to wait for support? ===&lt;br /&gt;
Unfortunately Compute Canada/SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week.  User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .  &lt;br /&gt;
&lt;br /&gt;
Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.  &lt;br /&gt;
&lt;br /&gt;
=== Compute Canada Problem Ticket System ===&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;problem ticket system&amp;quot;? ====&lt;br /&gt;
&lt;br /&gt;
This is a system that allows anyone with a Compute Canada account to start a persistent email thread that is referred to as a &amp;quot;problem ticket&amp;quot;.    When a user submits a new ticket it will be brought to the attention of an appropriate and available Compute Canada/SHARCNET staff member for resolution.  &lt;br /&gt;
&lt;br /&gt;
You interact with the ticket system entirely via email.&lt;br /&gt;
&lt;br /&gt;
==== What do I need to specify in a ticket ? ====&lt;br /&gt;
&lt;br /&gt;
To help us address your question faster, please try to do the following when submitting a ticket:&lt;br /&gt;
&lt;br /&gt;
#specify which of our systems is involved &lt;br /&gt;
#if the problem pertains to a job, then report the &amp;lt;u&amp;gt;jobid&amp;lt;/u&amp;gt; associated with the job; this is an integer that is returned by the scheduler when you submit the job&lt;br /&gt;
#report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem; if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem&lt;br /&gt;
#if you&amp;#039;d like for a particular staff member to be aware of the ticket, mention them&lt;br /&gt;
&lt;br /&gt;
==== How do I submit a ticket? ====&lt;br /&gt;
&lt;br /&gt;
In general, you can submit a new ticket by emailing  [mailto:support@computecanada.ca support@computecanada.ca]  with the email address associated with your Compute Canada account.  If you are using another email address, please provide your full name, your Compute Canada default username (if available) and your university or institution.&lt;br /&gt;
&lt;br /&gt;
If you like, you can also target your inquiry more specifically, by using the following addresses to submit your ticket:&lt;br /&gt;
&lt;br /&gt;
* [mailto:help@sharcnet.ca help@sharcnet.ca] - questions specific to SHARCNET, for example relating to contributed SHARCNET systems&lt;br /&gt;
* [mailto:globus@computecanada.ca globus@computecanada.ca] -- Questions about [[Globus]] file transfer services&lt;br /&gt;
* [mailto:cloud@computecanada.ca cloud@computecanada.ca] -- Questions about using Compute Canada cloud resources&lt;br /&gt;
* [mailto:accounts@computecanada.ca accounts@computecanada.ca] -- Questions about Compute Canada accounts&lt;br /&gt;
* [mailto:renewals@computecanada.ca renewals@computecanada.ca] -- Questions about Compute Canada account renewals&lt;br /&gt;
&lt;br /&gt;
=== I am new to parallel programming, can you help me get started with my project? ===&lt;br /&gt;
Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research. If your programming project would involve a significant staff time, you should consider applying for Dedicated Programming support. (We run the competition annually; see https://www.sharcnet.ca/my/research/programming).&lt;br /&gt;
&lt;br /&gt;
=== Can you install a package on a cluster for me? ===&lt;br /&gt;
Certainly.  We suggest you make the request by sending e-mail to [mailto:support@computecanada.ca support@computecanada.ca] with the specific request.&lt;br /&gt;
&lt;br /&gt;
=== I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that? ===&lt;br /&gt;
If you tell us what you want, we may be able to help you out.&lt;br /&gt;
&lt;br /&gt;
=== Does SHARCNET provide any training on programming and using the systems? ===&lt;br /&gt;
&lt;br /&gt;
Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every summer (usually late May to early June), SHARCNET holds [https://www.sharcnet.ca/help/index.php/Summer_Schools an annual HPC Summer School] with a variety of in-depth, hands-on workshops. &lt;br /&gt;
&lt;br /&gt;
SHARCNET also offers a series of online seminars (so-called &amp;quot;General interest webinars&amp;quot;), typically delivered every second Wednesday at lunch time.  These are announced via the SHARCNET events mailing list and one can see the schedule at the [https://www.sharcnet.ca/my/news/calendar SHARCNET event calendar].  Past seminars are recorded and posted on [http://youtube.sharcnet.ca our youtube channel]. A full listing of the past webinars is available on the [https://helpwiki.sharcnet.ca/wiki/Online_Seminars Online Seminars] page.&lt;br /&gt;
&lt;br /&gt;
=== Attending SHARCNET Webinars ===&lt;br /&gt;
{{:Attending SHARCNET Webinars}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logging in to Systems, Transferring and Editing Files ==&lt;br /&gt;
&lt;br /&gt;
=== How do I login to SHARCNET? ===&lt;br /&gt;
You access the SHARCNET clusters using ssh.  For Graham and other national systems Compute Canada credentials are required.  For the remaining (&amp;quot;Legacy&amp;quot;) systems, you will require SHARCNET credentials (submit a ticket to help@sharcnet.ca if you have questions).&lt;br /&gt;
&lt;br /&gt;
====Unix/Linux/OS X====&lt;br /&gt;
To login to a system, you need to use an [http://www.openssh.com/ Secure Shell (SSH)] connection. If you are logging in from a UNIX-based machine, make sure it has an SSH client (ssh) installed (this is almost always the case on UNIX/Linux/OS X). If you have the same login name on both your local system and SHARCNET, and you want to login to, say, &amp;lt;tt&amp;gt;graham&amp;lt;/tt&amp;gt;, you may use the command:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
If your Compute Canada username is different from the username on your local systems, then you may use either of the following forms:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.computecanada.ca -l username&lt;br /&gt;
 ssh username@graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
If you want to establish an X window connection so that you can use graphics applications such as &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ddt&amp;lt;/tt&amp;gt;, you can add a &amp;lt;tt&amp;gt;-Y&amp;lt;/tt&amp;gt; to the command:&lt;br /&gt;
&lt;br /&gt;
 ssh -Y username@graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
This will automatically set the X DISPLAY variable when you login.&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
If you are logging from a computer running Windows and need some pointers we recommend consulting our [[SSH]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between Login Nodes and Compute Nodes? ===&lt;br /&gt;
====Login Nodes====&lt;br /&gt;
&lt;br /&gt;
Most of our clusters have distinct &amp;#039;&amp;#039;login nodes&amp;#039;&amp;#039; associated with them that you are automatically redirected to when you login to the cluster (some systems are directly logged into, eg. SMPs and smaller specialty systems).  You can use these to do most of your work preparing for jobs (compiling, editing configuration files) and other low-intensity tasks like moving and copying files.  &lt;br /&gt;
&lt;br /&gt;
You can also use them for other quick tasks, like simple post-processing, but any significant work should be submitted as a job to the compute nodes.  On most login nodes, each process is limited to 1 cpu-hour; this will be noticable if you perform anything compute-intensive, and can affect IO-oriented activity as well (such as very large &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; operations.)&lt;br /&gt;
&lt;br /&gt;
=== How can I suspend and resume my session? ===&lt;br /&gt;
&lt;br /&gt;
The program screen can start persistent terminals from which you can detach and reattach.  The simplest use of screen is&lt;br /&gt;
&lt;br /&gt;
 screen -dR&lt;br /&gt;
&lt;br /&gt;
which will either reattach you to any existing session or create a new one if one doesn&amp;#039;t exist.  To terminate the current screen session, type &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;.  To detach manually (you are automatically detached if the connection is lost) press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;d&amp;#039;&amp;#039;, you can the resume later as above (ideal for running background jobs).  Note that &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; is screen&amp;#039;s escape sequence, so you have to do &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;a&amp;#039;&amp;#039; to get the regular effect of pressing &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; inside a screen session (e.g., moving the cursor to the start of the line in a shell).&lt;br /&gt;
&lt;br /&gt;
For a list of other &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; key sequences, press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;?&amp;#039;&amp;#039;.  For further details and  command line options, see the [http://www.gnu.org/software/screen/manual/screen.html screen manual] (or type &amp;lt;tt&amp;gt;man screen&amp;lt;/tt&amp;gt; on any of the clusters).&lt;br /&gt;
&lt;br /&gt;
Other notes:&lt;br /&gt;
* If you want to create additional &amp;quot;text windows&amp;quot;, use Ctrl-A Ctrl-C. Remember to type &amp;quot;exit&amp;quot; to close it. &lt;br /&gt;
* To switch to a &amp;quot;text window&amp;quot; with a certain number, use Ctrl-A # (where # is 0 to 9).&lt;br /&gt;
* To see a list of window numbers use Ctrl-A w&lt;br /&gt;
* To be presented a list of windows and select one to use, use Ctrl-A &amp;quot; (This is handy if you&amp;#039;ve made too many windows.)&lt;br /&gt;
* If the program running in a screen &amp;quot;text window&amp;quot; refuses to die (i.e., it needs to be killed) you can use Ctrl-A K&lt;br /&gt;
* For brief help on keystrokes use Ctrl-A ?&lt;br /&gt;
* For extensive help, run &amp;quot;man screen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What operating systems are supported? ===&lt;br /&gt;
UNIX in general. Currently, Linux is the only operating system used within SHARCNET.&lt;br /&gt;
&lt;br /&gt;
=== What makes a cluster different than my UNIX workstation? ===&lt;br /&gt;
&lt;br /&gt;
If you are familiar with UNIX, then using a cluster is not much different from using a workstation. When you login to a cluster, you in fact only log in to one of the cluster nodes. In most cases, each cluster node is a physical machine, usually a server class machine, with one or several CPUs, that is more or less the same as a workstation you are familiar with. The difference is that these nodes are interconnected with special interconnect devices and the way you run your program is slightly different. Across SHARCNET clusters, you are not expected to run your program interactively. You will have to run your program through a queueing system. That also means where and when your program gets to run is not decided by you, but by the queueing system.&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Those primary programming languages such as C, C++, Fortran, and Python are supported. Other languages, such as Java, Pascal and Ada, are also supported, but with limited technical support from us. &lt;br /&gt;
&lt;br /&gt;
=== How do I organize my files? ===&lt;br /&gt;
[https://docs.computecanada.ca/wiki/Storage_and_file_management#Storage_types Main file systems on our National systems.]&lt;br /&gt;
&lt;br /&gt;
==== How do I transfer files/directories to/from or between cluster? ====&lt;br /&gt;
&lt;br /&gt;
=====Unix/Linux=====&lt;br /&gt;
To transfer files to and from a cluster on a UNIX machine, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt;. For example, if you want to upload file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; to cluster graham from your machine &amp;lt;tt&amp;gt;myhost&amp;lt;/tt&amp;gt;, use the following command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp foo.f graham.computecanada.ca:&lt;br /&gt;
&lt;br /&gt;
assuming that your machine has &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; installed. If you want to transfer a file from Windows or Mac, you need have &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt; for Windows or Mac installed.&lt;br /&gt;
&lt;br /&gt;
If you transfer file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; between Compute Canada clusters, say from your home directory on cedar to your home directory on graham, simply use the following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp foo.f graham:/home/username/&lt;br /&gt;
&lt;br /&gt;
If you are transferring files between a UNIX machine and a cluster, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; command with &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; option. For instance, if you want to download the subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; in the directory &amp;lt;tt&amp;gt;project&amp;lt;/tt&amp;gt; in your home directory on graham to your local UNIX machine, on your local machine, use command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp -rp graham.sharcnet.ca:project/foo .&lt;br /&gt;
&lt;br /&gt;
Similarly, you can transfer the subdirectory between Compute Canada clusters. The following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp -r graham:/home/username/scratch/foo .&lt;br /&gt;
&lt;br /&gt;
will download subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; from your scratch directory on graham to your home directory on cedar (note that the prompt indicates you are currently logged on to cedar).&lt;br /&gt;
&lt;br /&gt;
The use of &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; option above will preserve the time stamp of each file. For Windows and Mac, you need to check the documentation of &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; for features. &amp;#039;&amp;#039;&amp;#039;Do not use -p switch with scp or cp commands on clusters, when the destination is your project space&amp;#039;&amp;#039;&amp;#039;, or you might run into the infamous [https://docs.computecanada.ca/wiki/Frequently_Asked_Questions#Disk_quota_exceeded_error_on_.2Fproject_filesystems Disk quota exceeded issue].&lt;br /&gt;
&lt;br /&gt;
You may also &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; and compress the entire directory and then use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to save bandwidth. In the above example, first you login to graham, then do the following&lt;br /&gt;
&lt;br /&gt;
 [username@gra-login2:~]$ cd project&lt;br /&gt;
 [username@gra-login2:~]$ tar -cvf foo.tar foo&lt;br /&gt;
 [username@gra-login2:~]$ gzip foo.tar&lt;br /&gt;
&lt;br /&gt;
Then on your local machine myhost, use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to copy the tar file&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp graham.computecanada.ca:project/foo.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Note for most Linux distributions, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; has an option &amp;lt;tt&amp;gt;-z&amp;lt;/tt&amp;gt; that will compress the &amp;lt;tt&amp;gt;.tar&amp;lt;/tt&amp;gt; file using &amp;lt;tt&amp;gt;gzip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Windows=====&lt;br /&gt;
You may read the instructions on using an ssh client. [[https://helpwiki.sharcnet.ca/wiki/SSH#Transfering_files_.28Secure_File_Transfer_Client.29]]&lt;br /&gt;
&lt;br /&gt;
====How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect?====&lt;br /&gt;
&lt;br /&gt;
In general, most users should be fine using &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to transfer data to and from SHARCNET systems.  If you need to transfer a lot of files &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; is recommended to ensure that you do not need to restart the transfer from scratch should there be a connection failure.  Although you can use &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to any cluster&amp;#039;s login node(s), it is often best to use gra-dtn1.computecanada.ca - it is dedicated to data transfer. &lt;br /&gt;
&lt;br /&gt;
In general one should expect the following transfer rates with &amp;#039;&amp;#039;scp&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* If you are connecting to SHARCNET through a Research/Education network site (ORION, CANARIE, Internet2) and are on a fast local network (this is the case for most users connecting from academic institutions) then you should be able to attain sustained transfer speeds in excess of 10MB/s.  If your path is all gigabit or better, you should be able to reach rates above 50 MB/s.&lt;br /&gt;
* If you are transferring data over the wider internet, you will not be able to attain these speeds, as all traffic that does not enter/exit SHARCNET via the R&amp;amp;E net is restricted to a limited-bandwidth commercial feed. In this case one will typically see rates on the order of 1MB/s or less.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that filesystems and networks are  shared resources and suffer from contention; if they are busy the above rates may not be attainable&lt;br /&gt;
&lt;br /&gt;
For transferring large amounts of data (many gigabytes) the best approach is to use the online tool [https://docs.computecanada.ca/wiki/Transferring_data#Globus_transfer Globus].&lt;br /&gt;
&lt;br /&gt;
==== How do I access the same file from different subdirectories on the same cluster ? ====&lt;br /&gt;
&lt;br /&gt;
You should not need copy large files on the same cluster (e.g. from one user to another&lt;br /&gt;
or using the same file in different subdirectories).  Instead of using&lt;br /&gt;
scp you might consider issuing a &amp;quot;soft link&amp;quot; command. Assume that you need access&lt;br /&gt;
to the file large_file1 in subdirectory /home/user1/subdir1 and you need it to be in your&lt;br /&gt;
subdirectory /home/my_account/my_dir from where you will invoke it under the name&lt;br /&gt;
my_large_file1.  Then go to that directory and type:&lt;br /&gt;
&lt;br /&gt;
 ln -s /home/user1/subdir1/large_file1    my_large_file1&lt;br /&gt;
&lt;br /&gt;
Another example, assume that in subdirectory /home/my_account/PROJ1 you have several&lt;br /&gt;
subdirectories called CASE1, CASE2, ...  In each subdirectory CASEn you have a slightly&lt;br /&gt;
different code but all of them process the same data file called test_data. Rather than&lt;br /&gt;
copying the test_data file into each CASEn subdirectory, place test_data above i.e.&lt;br /&gt;
in /home/my_account/PROJ1 and then in each CASEn subdirectory issue following &amp;quot;soft link&amp;quot;&lt;br /&gt;
command:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../test_data  test_data&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;soft links&amp;quot; can be removed by using the rm command. For example, to remove the soft link from&lt;br /&gt;
/home/my_account/PROJ1/CASE2 type following command from this subdirectory:&lt;br /&gt;
&lt;br /&gt;
 rm -rf test_data&lt;br /&gt;
&lt;br /&gt;
Typing above command from subdirectory /home/my_account/PROJ1 would remove the actual file and then&lt;br /&gt;
none of the CASEn subdirectories would have access to it.&lt;br /&gt;
&lt;br /&gt;
==== How are files deleted from the /home/userid/scratch filesystems? ====&lt;br /&gt;
&lt;br /&gt;
All files on /home/userid/scratch that are over 2 months old (not old in the common sense, please see below) are automatically deleted. Data needed for long term storage and reference should be kept in either /project, /nearline, or other archival storage areas. The scratch filesystem is checked at the end of the month for files which will be candidates for expiry on the 15th of the following month. On the first day of the month, a login message is posted and a notification e-mail is sent to all users who have at least one file which is a candidate for purging and containing the location of a file which lists all the candidates for purging.  On the 12th of the month, a second scan is run to check for files that will still expire on the 15th, and again, users with candidates for expiry are sent a second warning email.  Lastly, on the 15th, all files which are due for expiry are removed.&lt;br /&gt;
&lt;br /&gt;
An unconventional aspect of this system is that it does not determine the age of a file based on the file&amp;#039;s attributes, e.g., the standard dates reported by the &amp;lt;i&amp;gt;stat&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;find&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;ls&amp;lt;/i&amp;gt;, etc. commands.  (This is known as the &amp;quot;mtime&amp;quot; of the file, for &amp;quot;modification time&amp;quot;, and is frequently inaccurate.) The age of a file is determined based on whether or not its data contents (i.e., the information stored in the file) have changed or been accessed, and this age is stored externally to the file.  Only files where the contents have changed or accessed will have their age counter &amp;quot;reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A list of your candidate files for expiry can be found in /home/scratch_to_delete/$USER  (where $USER is your userid).&lt;br /&gt;
&lt;br /&gt;
===== How do I check the age of a file =====&lt;br /&gt;
We define a file&amp;#039;s age as the most recent of:&lt;br /&gt;
&lt;br /&gt;
 *the access time (atime) and&lt;br /&gt;
 *the change time (ctime)&lt;br /&gt;
&lt;br /&gt;
You can find the ctime of a file using&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lc &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while the atime can be obtained with the command&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lu &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do not use the modify time (mtime) of the file because it can be modified by the user or by other programs to display incorrect information.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, simple use of the atime property would be sufficient, as it is updated by the system in sync with the ctime. However, userspace programs are able to alter atime, potentially to times in the past, which could result in early expiration of a file. The use of ctime as a fallback guards against this undesirable behaviour.&lt;br /&gt;
&lt;br /&gt;
It is also your responsibility to manage your stored data: most of the filesystems are not intended to provide an indefinite archiving service so when a given file or directory is no longer needed, you need to move it to a more appropriate filesystem which may well mean your personal workstation or some other storage system under your control. Moving significant amounts of data between your workstation and a Compute Canada system or between two Compute Canada systems should generally be done using Globus.&lt;br /&gt;
&lt;br /&gt;
==== How to archive my data? ====&lt;br /&gt;
&lt;br /&gt;
===== Use tar to archive files and directories =====&lt;br /&gt;
&lt;br /&gt;
The primary archiving utility on all Linux and Unix-like systems is the [https://www.gnu.org/software/tar/manual/tar.html tar] command. It will bundle a bunch of files or directories together and generate a single file, called an &amp;#039;&amp;#039;archive file&amp;#039;&amp;#039; or &amp;#039;&amp;#039;tar-file&amp;#039;&amp;#039;. By convention an archive file has &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; as the file name extension. When you archive a directory with &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, it will, by default, include all the files and sub-directories contained within it, and sub-sub-directories contained in those, and so on. So the command &amp;lt;code&amp;gt;tar --create --file project1.tar project1&amp;lt;/code&amp;gt; will pack all the content of directory &amp;#039;&amp;#039;project1&amp;#039;&amp;#039; into the file &amp;#039;&amp;#039;project1.tar&amp;#039;&amp;#039;. The original directory will remain unchanged, so this may double the amount of disk space occupied!&lt;br /&gt;
&lt;br /&gt;
You can extract files from an archive using the same command with a different option:&amp;lt;code&amp;gt;tar --extract --file project1.tar&amp;lt;/code&amp;gt;. If there is no directory with the original name, it will be created. If a directory of that name exists and contains files of the same names as in the archive file, they will be overwritten. Another option can be added to specify the destination directory where to extract the archive&amp;#039;s content.   &lt;br /&gt;
&lt;br /&gt;
===== Compress and uncompress tar files =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; archiving utility can compress an archive file at the same time it creates it. There are a number of compression methods to choose from. We recommend either &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;, which can be used as follows:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ tar --create --xz --file project1.tar.xz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --xz --file project1.tar.xz&lt;br /&gt;
 [user_name@localhost]$ tar --create --gzip --file project1.tar.gz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --gzip --file project1.tar.gz&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;code&amp;gt;--xz&amp;lt;/code&amp;gt; will produce a smaller compressed file (a &amp;quot;better compression ratio&amp;quot;) but takes longer and uses more RAM while working. &amp;lt;code&amp;gt;--gzip&amp;lt;/code&amp;gt; does not typically compress as small, but may be used if you encounter difficulties due to insufficient memory or excessive run time during &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt;. A third option, &amp;lt;code&amp;gt;--bzip2&amp;lt;/code&amp;gt;, is also available, that typically does not compress as small as &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; but takes longer than &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt; first without compression and then use the commands &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; in a separate step, although there is rarely a reason to do so. Similarly, you can run &amp;lt;code&amp;gt;xz -d&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip -d&amp;lt;/code&amp;gt; to decompress an archive file before running &amp;lt;code&amp;gt;tar --extract&amp;lt;/code&amp;gt;, but again there is rarely a reason to do so.&lt;br /&gt;
&lt;br /&gt;
The commands &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; can be used to compress any file, not just archive files:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ gzip bigfile&lt;br /&gt;
 [user_name@localhost]$ xz bigfile&lt;br /&gt;
&lt;br /&gt;
These commands will produce the files &amp;lt;code&amp;gt;bigfile.gz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigfile.xz&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
=====Archival Storage=====&lt;br /&gt;
&lt;br /&gt;
On Graham, files copied to ~/nearline will be subsequently moved to offline (tape-based) storage. See [https://docs.computecanada.ca/wiki/Using_nearline_storage this link] for more details.&lt;br /&gt;
&lt;br /&gt;
==== How can I check the hidden files in directory? ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;.&amp;quot; at the beginning of the name means that the file is &amp;quot;hidden&amp;quot;. You have to use the -a option with ls to see it. I.e. &amp;lt;code&amp;gt;ls -a &amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
If you want to display only the hidden files then type:&lt;br /&gt;
 ls -d .*&lt;br /&gt;
&lt;br /&gt;
Note: there is an alias which is loaded from /etc/bashrc (see your .bashrc file). The alias is defined by alias &amp;lt;code&amp;gt; l.=&amp;#039;ls -d .* --color=auto&amp;#039; &amp;lt;/code&amp;gt; and if you type:&lt;br /&gt;
 l.&lt;br /&gt;
you will also display only the hidden files.&lt;br /&gt;
&lt;br /&gt;
==== How can I count the number of files in a directory? ====&lt;br /&gt;
&lt;br /&gt;
One can use the following command to count the number of files in a directory (in this example, your /work directory):&lt;br /&gt;
&lt;br /&gt;
 find /home/$USER -type f   | wc -l&lt;br /&gt;
&lt;br /&gt;
It is always a good idea to [[Knowledge_Base#How_to_archive_my_data.3F|archive]] and/or compress files that are no longer needed on the filesystem (see [https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_to_organize_a_large_number_of_files.3F below]).  This helps minimize one&amp;#039;s footprint on the filesystem and as such the impact they have on other users of the shared resource.&lt;br /&gt;
&lt;br /&gt;
==== How to organize a large number of files? ====&lt;br /&gt;
&lt;br /&gt;
With parallel cluster filesystems, you will get best I/O performance writing data to a small number of large files. Since all metadata operations on each of our parallel filesystems are handled by a single file server, depending on how many files are being accessed the server can become overwhelmed leading to poor overall I/O performance for all users. If your workflow involves storing data in a large number of files, it is best to pack these files into a small number of larger archives, e.g. using tar command&lt;br /&gt;
&lt;br /&gt;
 tar cvf archiveFile.tar directoryToArchive&lt;br /&gt;
&lt;br /&gt;
For better performance with many files inside your archive, we recommend to use DAR (Disk ARchive utility), which is a disk analog of tar (Tape ARchive).  Dar can extract files from anywhere in the archive much faster than tar. The dar command is available by default on sharcnet systems. It can be used to pack files into a dar archive by doing something like: &lt;br /&gt;
&lt;br /&gt;
 dar -s 1G -w -c archiveFile -g directoryToArchive&lt;br /&gt;
&lt;br /&gt;
In this example we split the archive into 1GB chunks, and the archive files will be named archiveFile.1.dar, archiveFile.2.dar, and so on. To list the contents of the archive, you can type:&lt;br /&gt;
&lt;br /&gt;
 dar -l archiveFile&lt;br /&gt;
&lt;br /&gt;
To temporarily extract files for post-processing into current directory, you would type:&lt;br /&gt;
&lt;br /&gt;
 dar -R . -O -x archiveFile -v -g pathToYourFile/fileToExtract&lt;br /&gt;
&lt;br /&gt;
=== I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host ===&lt;br /&gt;
&lt;br /&gt;
The most likely cause of this behaviour is repeated failed login attempts.  Part of our security policies involves blocking the IP address of machines that attempt multiple logins with incorrect passwords over a short period of time---many brute-force attacks on systems do exactly this: looking for poor passwords, badly configured accounts, etc.  Unfortunately, it isn&amp;#039;t uncommon for a user to forget their password and make repeated login attempts with incorrect passwords and end up with that machine blacklisted and unable to connect at all.&lt;br /&gt;
&lt;br /&gt;
A temporary solution is simply to attempt to login from another machine.  If you have access to another machine at your site, you can shell to that machine first, and then shell to the SHARCNET system (as that machine&amp;#039;s IP shouldn&amp;#039;t be blacklisted).  In order to have your machine unblocked, you will have to email to [mailto:support@computecanada.ca support@computecanada.ca] as a system administrator must manually intervene in order to fix it.&lt;br /&gt;
&lt;br /&gt;
NOTE: there are other situations that can produce this message, however they are rarer and more transient.  If you are unable to log in from one machine, but can from another, it is most likely the IP blacklisting that is the problem and the above will provide a temporary work-around while your problem ticket is processed.&lt;br /&gt;
&lt;br /&gt;
=== I am unable to ssh/scp from SHARCNET to my local computer ===&lt;br /&gt;
&lt;br /&gt;
Most campus networks are behind some sort of firewall.  If you can ssh out to SHARCNET, but cannot establish a connection in the other direction, then you are probably behind a firewall and should speak with your local system administrator or campus IT department to determine if there are any exceptions or workarounds in place.&lt;br /&gt;
&lt;br /&gt;
=== SSH tells me SOMEONE IS DOING SOMETHING NASTY!? ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please first read the following:&lt;br /&gt;
&lt;br /&gt;
https://docs.computecanada.ca/wiki/SSH_security_improvements&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suppose you attempt to login to SHARCNET, but instead get an alarming message like this:&lt;br /&gt;
&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that the RSA host key has just been changed.&lt;br /&gt;
 The fingerprint for the RSA key sent by the remote host is&lt;br /&gt;
 fe:65:ab:89:9a:23:34:5a:50:1e:05:d6:bf:ec:da:67.&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending key in /home/user/.ssh/known_hosts:42&lt;br /&gt;
 RSA host key for requin has changed and you have requested strict checking.&lt;br /&gt;
 Host key verification failed. &lt;br /&gt;
&lt;br /&gt;
SSH begins a connection by verifying that the host you&amp;#039;re connecting to is authentic. It does this by caching the hosts&amp;#039;s &amp;quot;hostkey&amp;quot; in your  &amp;lt;tt&amp;gt;~/.ssh/known_hosts&amp;lt;/tt&amp;gt; file. At times, a hostkey may be changed legitimately; when this happens, you may see such a message. It&amp;#039;s a good idea to verify this with us, you may be able to check the fingerprint yourself by logging into another sharcnet system and running:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub &lt;br /&gt;
&lt;br /&gt;
If the fingerprint is OK, the normal way to fix the problem is to simply remove the old hostkey from your &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. On machines with commandline SSH, you can do this with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -R thehostname&lt;br /&gt;
&lt;br /&gt;
You can use your choice of editor if you&amp;#039;re comfortable doing so (it&amp;#039;s a plain text file, but has long lines). On a unix-compatible machine, you can also use the following very small script (Substitute the line(s) printed in the warning message illustrated above for &amp;#039;42&amp;#039; here.):&lt;br /&gt;
&lt;br /&gt;
 perl -pi -e &amp;#039;undef $_ if (++$line == 42)&amp;#039; ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
Another solution is brute-force: remove the whole &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. This throws away any authentication checking, and afterwards, your first connection to any machine will prompt you to accept a newly discovered host key.&lt;br /&gt;
&lt;br /&gt;
=== Ssh works, but scp doesn&amp;#039;t! ===&lt;br /&gt;
&lt;br /&gt;
If you can &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; to a cluster successfully, but cannot &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to to it, the problem is likely that your login scripts print unexpected messages which confuse &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; is based on the same &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, but assumes that the connection is &amp;quot;clean&amp;quot;: that is, that it does not produce any un-asked-for content. If you have something like:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; will be confused by the salutation. To avoid this, simply ensure that the message is only printed on an interactive login:&lt;br /&gt;
&lt;br /&gt;
 if [ -t 0 ]; then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
or in csh/tcsh syntax:&lt;br /&gt;
&lt;br /&gt;
 if ( -t 0 ) then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
=== How do I edit my program on a cluster? ===&lt;br /&gt;
&lt;br /&gt;
We provide a variety of editors, such as the traditional text-mode &amp;lt;tt&amp;gt;emacs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; (vim), as well as a simpler one called &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;. If you have X on your desktop (and tunneled through SSH), you can use the GUI versions (&amp;lt;tt&amp;gt;xemacs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If your desktop supports FUSE, it&amp;#039;s very convenient to simply mount your home tree like this:&lt;br /&gt;
 mkdir sharcnet&lt;br /&gt;
 sshfs graham.computecanada.ca: sharcnet&lt;br /&gt;
you can then use any local editor of your choice.&lt;br /&gt;
&lt;br /&gt;
If you run emacs on your desktop, you can also edit a remote file from within your local emacs client using [http://www.gnu.org/software/tramp Tramp], opening and saving a file as /username@cluster.computecanada.ca:path/file.&lt;br /&gt;
&lt;br /&gt;
== Research at SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== I have a research project I would like to collaborate on with SHARCNET, who should I talk to? ===&lt;br /&gt;
&lt;br /&gt;
You may contact [mailto:barb@sharcnet.ca SHARCNET head office] or contact members of the [https://www.sharcnet.ca/my/contact/directory#techteam SHARCNET technical staff].&lt;br /&gt;
&lt;br /&gt;
=== How can I contribute compute resources to SHARCNET so that other researchers can share it? ===&lt;br /&gt;
&lt;br /&gt;
Most people&amp;#039;s research is &amp;quot;bursty&amp;quot; - there are usually sparse periods of time when some computation is urgently needed, and other periods when there is less demand. One problem with this is that if you purchase the equipment you need to meet your &amp;quot;burst&amp;quot; needs, it&amp;#039;ll probably sit, underutilized, during other times.&lt;br /&gt;
&lt;br /&gt;
An alternative is to donate control of this equipment to SHARCNET, and let us arrange for other users to use it when you are not. We prefer to be involved in the selection and configuration of such equipment. Our promise to contributors is that as much as possible, they should obtain as much benefit from the cluster as if it were not shared. Owners get preferential access. Naturally, owners are also able to burst to higher peak usage, since their equipment has been pooled with other contributions. (Technically, SHARCNET cannot itself own such equipment — it remains owned by the institution in question, and will be returned to the contributor upon request.) If you think this model will also work for you and you would like to contribute your computational resource to help the research community at SHARCNET, you can contact us for such arrangement.&lt;br /&gt;
&lt;br /&gt;
=== I do not know much about computation, nor is it my research interest. But I am interested in getting my research done faster with the help of the high performance computing technology. In other words, I do not care about the process and mechanism, but only the final results. Can SHARCNET provide this type of help? ===&lt;br /&gt;
&lt;br /&gt;
We will be happy to bring the technology of high performance computing to you to accelerate your research, if at all possible. If you would like to discuss your plan with us, please feel free to contact our [https://www.sharcnet.ca/my/contact/directory#techteam high performance computing specialists]. They will be happy to listen to your needs and are ready to provide appropriate suggestions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET participates in the Compute Canada NRAC (National Resource Allocation Competition) and provides a continual competition for groups that require more than the default level of access to our resources.  Please see [[Dedicated Resources]] for further information.&lt;br /&gt;
&lt;br /&gt;
=== I heard SHARCNET offers fellowships, where can I get more information? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET no longer actively runs a fellowship program.  You may find information regarding past fellowships and other dedicated resource opportunities on the [https://www.sharcnet.ca/my/research/fellowships Research Fellowships page] of the web portal.&lt;br /&gt;
&lt;br /&gt;
=== I would like to do some research at SHARCNET as a visiting scholar, how should I apply? ===&lt;br /&gt;
&lt;br /&gt;
In general, you will need to find a hosting department or a person affiliated with one of the SHARCNET institutions. You may also [http://www.sharcnet.ca/my/contact contact us] directly for more specific information.&lt;br /&gt;
&lt;br /&gt;
=== I would like to send my students to SHARCNET to do some work for me. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
See above.&lt;br /&gt;
&lt;br /&gt;
== Contacting SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for research, academic exchanges, and technical issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for business development, education and other issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact a specific staff member at SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
See [https://www.sharcnet.ca/my/contact/directory staff directory] for contact information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Acknowledge SHARCNET in Publications ==&lt;br /&gt;
&lt;br /&gt;
=== How do I acknowledge SHARCNET in my publications? ===&lt;br /&gt;
&lt;br /&gt;
We recommend one cite the following:&lt;br /&gt;
&lt;br /&gt;
 This work was made possible by the facilities of the Shared Hierarchical &lt;br /&gt;
 Academic Research Computing Network (SHARCNET:www.sharcnet.ca) and Digital Research Alliance of Canada (https://alliancecan.ca/en).&lt;br /&gt;
&lt;br /&gt;
=== I&amp;#039;ve seen different spellings of the name, what is the standard spelling of SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
We suggest the spelling SHARCNET, all in upper case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What types of research programs / support are provided to the research community? ==&lt;br /&gt;
&lt;br /&gt;
Our overall intent is to provide support that can both respond to the range of needs that the user community presents and help to increase the sophistication of the community and enable new and larger-in-scope applications making use of SHARCNET&amp;#039;s HPC facilities. The range of support can perhaps best be understood in terms of a pyramid:&lt;br /&gt;
&lt;br /&gt;
=== Level 1 ===&lt;br /&gt;
&lt;br /&gt;
At the apex of the pyramid, SHARCNET supports a small number of projects with dedicated programmer support. The intent is to enable projects that will have a lasting impact and may lead to a &amp;quot;step change&amp;quot; in the way research is done at SHARCNET. Inter-disciplinary and inter-institutional projects are particularly welcomed. For the latest information about the program, including application guidelines, please see the  [https://www.sharcnet.ca/my/research/programming Programming Competition] page in our web portal.&lt;br /&gt;
&lt;br /&gt;
=== Level 2 ===&lt;br /&gt;
&lt;br /&gt;
The middle layers of support are provided through a number of initiatives.&lt;br /&gt;
&lt;br /&gt;
These include:&lt;br /&gt;
* Programming support of more modest duration (several days to one month engagement, usually part time)&lt;br /&gt;
* Training on a variety of topics through [https://www.sharcnet.ca/help/index.php/Training workshops, seminars and online training materials]&lt;br /&gt;
* Consultation. This may include user-initiated interactions on particular programs, algorithms, techniques, debugging, optimization etc., as well as unsolicited help to ensure effective use of SHARCNET systems&lt;br /&gt;
* Site Leaders play an important role in working with the community to help researchers connect with SHARCNET staff and to obtain appropriate help and support.&lt;br /&gt;
&lt;br /&gt;
=== Level 3 ===&lt;br /&gt;
&lt;br /&gt;
The base level of the pyramid handles the very large number of small requests that are essential to keeping the user community working effectively with the infrastructure on a day-to-day basis. Several of these can be answered by this FAQ; many of the issues are presented through the [https://www.sharcnet.ca/help/index.php/Knowledge_Base#Compute_Canada_Problem_Ticket_System ticketing system]. The support is largely problem oriented with each problem being time limited.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=928</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=FAQ&amp;diff=928"/>
		<updated>2024-09-17T17:02:25Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* What is SHARCNET? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Sharcnet_logo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== About SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== What is SHARCNET? ===&lt;br /&gt;
SHARCNET stands for Shared Hierarchical Academic Research Computing Network. Established in 2000, SHARCNET is the largest high performance computing consortium in Canada, involving 19 universities and colleges across southern, central and northern Ontario.&lt;br /&gt;
&lt;br /&gt;
SHARCNET is a member consortium in the [https://alliancecan.ca/en Digital Research Alliance of Canada] (the Alliance) national HPC platform.&lt;br /&gt;
&lt;br /&gt;
=== Where is SHARCNET? ===&lt;br /&gt;
The [http://www.sharcnet.ca/my/contact main office] of SHARCNET is located in the Western Science Centre at [http://www.uwo.ca/ The University of Western Ontario].&lt;br /&gt;
&lt;br /&gt;
=== What does SHARCNET have? ===&lt;br /&gt;
The primary SHARCNET compute system is [https://docs.computecanada.ca/wiki/Graham Graham heterogeneous cluster] located at the University of Waterloo.  It is named after Wes Graham, the first director of the Computing Centre at Waterloo.  It consists of 41,548 cores and 520 GPU devices, spread across 1,185 nodes of different configurations.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with SHARCNET? ===&lt;br /&gt;
If you have a program that takes months to run on your PC, you could probably run it within a few hours using hundreds of processors on SHARCNET / Compute Canada clusters, provided your program is inherently parallelisable. If you have hundreds or thousands of test cases to run through on your PC or computers in your lab, then with hundreds of processors running those cases independently will significantly reduce your test cycles.&lt;br /&gt;
&lt;br /&gt;
=== Who is running SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
The daily operation and development of SHARCNET computational facilities is managed by a group of highly qualified system administrators. In addition, we have a team of high performance technical computing consultants, who are responsible for technical support on libraries, programming and application analysis.&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET? ===&lt;br /&gt;
For technical inquiries, you may send E-mail to [mailto:support@computecanada.ca support@computecanada.ca] or [mailto:help@sharcnet.ca help@sharcnet.ca], or [https://www.sharcnet.ca/my/contact/directory#techteam contact your local system administrator or HPC specialist]. For general inquiries, you may contact the SHARCNET [http://www.sharcnet.ca/my/contact main office].&lt;br /&gt;
&lt;br /&gt;
== Getting an Account with SHARCNET and Related Issues ==&lt;br /&gt;
&lt;br /&gt;
To use SHARCNET (and any other national Compute Canada) facilities one has to [https://www.alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account apply for an Alliance account].&lt;br /&gt;
&lt;br /&gt;
== Getting Help ==&lt;br /&gt;
&lt;br /&gt;
=== I have encountered a problem while using a Compute Canada/SHARCNET system and need help, who should I talk to? ===&lt;br /&gt;
We encourage you to use the problem ticketing system (described in detail [[FAQ: Getting Help#Compute Canada Problem Ticket System|below]]) .  This is the most efficient way of reporting a problem.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the [https://www.sharcnet.ca/my/contact/directory directory] page.&lt;br /&gt;
&lt;br /&gt;
=== How long should I expect to wait for support? ===&lt;br /&gt;
Unfortunately Compute Canada/SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week.  User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .  &lt;br /&gt;
&lt;br /&gt;
Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.  &lt;br /&gt;
&lt;br /&gt;
=== Compute Canada Problem Ticket System ===&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;problem ticket system&amp;quot;? ====&lt;br /&gt;
&lt;br /&gt;
This is a system that allows anyone with a Compute Canada account to start a persistent email thread that is referred to as a &amp;quot;problem ticket&amp;quot;.    When a user submits a new ticket it will be brought to the attention of an appropriate and available Compute Canada/SHARCNET staff member for resolution.  &lt;br /&gt;
&lt;br /&gt;
You interact with the ticket system entirely via email.&lt;br /&gt;
&lt;br /&gt;
==== What do I need to specify in a ticket ? ====&lt;br /&gt;
&lt;br /&gt;
To help us address your question faster, please try to do the following when submitting a ticket:&lt;br /&gt;
&lt;br /&gt;
#specify which of our systems is involved &lt;br /&gt;
#if the problem pertains to a job, then report the &amp;lt;u&amp;gt;jobid&amp;lt;/u&amp;gt; associated with the job; this is an integer that is returned by the scheduler when you submit the job&lt;br /&gt;
#report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem; if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem&lt;br /&gt;
#if you&amp;#039;d like for a particular staff member to be aware of the ticket, mention them&lt;br /&gt;
&lt;br /&gt;
==== How do I submit a ticket? ====&lt;br /&gt;
&lt;br /&gt;
In general, you can submit a new ticket by emailing  [mailto:support@computecanada.ca support@computecanada.ca]  with the email address associated with your Compute Canada account.  If you are using another email address, please provide your full name, your Compute Canada default username (if available) and your university or institution.&lt;br /&gt;
&lt;br /&gt;
If you like, you can also target your inquiry more specifically, by using the following addresses to submit your ticket:&lt;br /&gt;
&lt;br /&gt;
* [mailto:help@sharcnet.ca help@sharcnet.ca] - questions specific to SHARCNET, for example relating to contributed SHARCNET systems&lt;br /&gt;
* [mailto:globus@computecanada.ca globus@computecanada.ca] -- Questions about [[Globus]] file transfer services&lt;br /&gt;
* [mailto:cloud@computecanada.ca cloud@computecanada.ca] -- Questions about using Compute Canada cloud resources&lt;br /&gt;
* [mailto:accounts@computecanada.ca accounts@computecanada.ca] -- Questions about Compute Canada accounts&lt;br /&gt;
* [mailto:renewals@computecanada.ca renewals@computecanada.ca] -- Questions about Compute Canada account renewals&lt;br /&gt;
&lt;br /&gt;
=== I am new to parallel programming, can you help me get started with my project? ===&lt;br /&gt;
Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research. If your programming project would involve a significant staff time, you should consider applying for Dedicated Programming support. (We run the competition annually; see https://www.sharcnet.ca/my/research/programming).&lt;br /&gt;
&lt;br /&gt;
=== Can you install a package on a cluster for me? ===&lt;br /&gt;
Certainly.  We suggest you make the request by sending e-mail to [mailto:support@computecanada.ca support@computecanada.ca] with the specific request.&lt;br /&gt;
&lt;br /&gt;
=== I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that? ===&lt;br /&gt;
If you tell us what you want, we may be able to help you out.&lt;br /&gt;
&lt;br /&gt;
=== Does SHARCNET provide any training on programming and using the systems? ===&lt;br /&gt;
&lt;br /&gt;
Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every summer (usually late May to early June), SHARCNET holds [https://www.sharcnet.ca/help/index.php/Summer_Schools an annual HPC Summer School] with a variety of in-depth, hands-on workshops. &lt;br /&gt;
&lt;br /&gt;
SHARCNET also offers a series of online seminars (so-called &amp;quot;General interest webinars&amp;quot;), typically delivered every second Wednesday at lunch time.  These are announced via the SHARCNET events mailing list and one can see the schedule at the [https://www.sharcnet.ca/my/news/calendar SHARCNET event calendar].  Past seminars are recorded and posted on [http://youtube.sharcnet.ca our youtube channel]. A full listing of the past webinars is available on the [https://helpwiki.sharcnet.ca/wiki/Online_Seminars Online Seminars] page.&lt;br /&gt;
&lt;br /&gt;
=== Attending SHARCNET Webinars ===&lt;br /&gt;
{{:Attending SHARCNET Webinars}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logging in to Systems, Transferring and Editing Files ==&lt;br /&gt;
&lt;br /&gt;
=== How do I login to SHARCNET? ===&lt;br /&gt;
You access the SHARCNET clusters using ssh.  For Graham and other national systems Compute Canada credentials are required.  For the remaining (&amp;quot;Legacy&amp;quot;) systems, you will require SHARCNET credentials (submit a ticket to help@sharcnet.ca if you have questions).&lt;br /&gt;
&lt;br /&gt;
====Unix/Linux/OS X====&lt;br /&gt;
To login to a system, you need to use an [http://www.openssh.com/ Secure Shell (SSH)] connection. If you are logging in from a UNIX-based machine, make sure it has an SSH client (ssh) installed (this is almost always the case on UNIX/Linux/OS X). If you have the same login name on both your local system and SHARCNET, and you want to login to, say, &amp;lt;tt&amp;gt;graham&amp;lt;/tt&amp;gt;, you may use the command:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
If your Compute Canada username is different from the username on your local systems, then you may use either of the following forms:&lt;br /&gt;
&lt;br /&gt;
 ssh graham.computecanada.ca -l username&lt;br /&gt;
 ssh username@graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
If you want to establish an X window connection so that you can use graphics applications such as &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ddt&amp;lt;/tt&amp;gt;, you can add a &amp;lt;tt&amp;gt;-Y&amp;lt;/tt&amp;gt; to the command:&lt;br /&gt;
&lt;br /&gt;
 ssh -Y username@graham.computecanada.ca&lt;br /&gt;
&lt;br /&gt;
This will automatically set the X DISPLAY variable when you login.&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
If you are logging from a computer running Windows and need some pointers we recommend consulting our [[SSH]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between Login Nodes and Compute Nodes? ===&lt;br /&gt;
====Login Nodes====&lt;br /&gt;
&lt;br /&gt;
Most of our clusters have distinct &amp;#039;&amp;#039;login nodes&amp;#039;&amp;#039; associated with them that you are automatically redirected to when you login to the cluster (some systems are directly logged into, eg. SMPs and smaller specialty systems).  You can use these to do most of your work preparing for jobs (compiling, editing configuration files) and other low-intensity tasks like moving and copying files.  &lt;br /&gt;
&lt;br /&gt;
You can also use them for other quick tasks, like simple post-processing, but any significant work should be submitted as a job to the compute nodes.  On most login nodes, each process is limited to 1 cpu-hour; this will be noticable if you perform anything compute-intensive, and can affect IO-oriented activity as well (such as very large &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; operations.)&lt;br /&gt;
&lt;br /&gt;
=== How can I suspend and resume my session? ===&lt;br /&gt;
&lt;br /&gt;
The program screen can start persistent terminals from which you can detach and reattach.  The simplest use of screen is&lt;br /&gt;
&lt;br /&gt;
 screen -dR&lt;br /&gt;
&lt;br /&gt;
which will either reattach you to any existing session or create a new one if one doesn&amp;#039;t exist.  To terminate the current screen session, type &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;.  To detach manually (you are automatically detached if the connection is lost) press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;d&amp;#039;&amp;#039;, you can the resume later as above (ideal for running background jobs).  Note that &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; is screen&amp;#039;s escape sequence, so you have to do &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;a&amp;#039;&amp;#039; to get the regular effect of pressing &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; inside a screen session (e.g., moving the cursor to the start of the line in a shell).&lt;br /&gt;
&lt;br /&gt;
For a list of other &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; key sequences, press &amp;#039;&amp;#039;ctrl+a&amp;#039;&amp;#039; followed by &amp;#039;&amp;#039;?&amp;#039;&amp;#039;.  For further details and  command line options, see the [http://www.gnu.org/software/screen/manual/screen.html screen manual] (or type &amp;lt;tt&amp;gt;man screen&amp;lt;/tt&amp;gt; on any of the clusters).&lt;br /&gt;
&lt;br /&gt;
Other notes:&lt;br /&gt;
* If you want to create additional &amp;quot;text windows&amp;quot;, use Ctrl-A Ctrl-C. Remember to type &amp;quot;exit&amp;quot; to close it. &lt;br /&gt;
* To switch to a &amp;quot;text window&amp;quot; with a certain number, use Ctrl-A # (where # is 0 to 9).&lt;br /&gt;
* To see a list of window numbers use Ctrl-A w&lt;br /&gt;
* To be presented a list of windows and select one to use, use Ctrl-A &amp;quot; (This is handy if you&amp;#039;ve made too many windows.)&lt;br /&gt;
* If the program running in a screen &amp;quot;text window&amp;quot; refuses to die (i.e., it needs to be killed) you can use Ctrl-A K&lt;br /&gt;
* For brief help on keystrokes use Ctrl-A ?&lt;br /&gt;
* For extensive help, run &amp;quot;man screen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What operating systems are supported? ===&lt;br /&gt;
UNIX in general. Currently, Linux is the only operating system used within SHARCNET.&lt;br /&gt;
&lt;br /&gt;
=== What makes a cluster different than my UNIX workstation? ===&lt;br /&gt;
&lt;br /&gt;
If you are familiar with UNIX, then using a cluster is not much different from using a workstation. When you login to a cluster, you in fact only log in to one of the cluster nodes. In most cases, each cluster node is a physical machine, usually a server class machine, with one or several CPUs, that is more or less the same as a workstation you are familiar with. The difference is that these nodes are interconnected with special interconnect devices and the way you run your program is slightly different. Across SHARCNET clusters, you are not expected to run your program interactively. You will have to run your program through a queueing system. That also means where and when your program gets to run is not decided by you, but by the queueing system.&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Those primary programming languages such as C, C++, Fortran, and Python are supported. Other languages, such as Java, Pascal and Ada, are also supported, but with limited technical support from us. &lt;br /&gt;
&lt;br /&gt;
=== How do I organize my files? ===&lt;br /&gt;
[https://docs.computecanada.ca/wiki/Storage_and_file_management#Storage_types Main file systems on our National systems.]&lt;br /&gt;
&lt;br /&gt;
==== How do I transfer files/directories to/from or between cluster? ====&lt;br /&gt;
&lt;br /&gt;
=====Unix/Linux=====&lt;br /&gt;
To transfer files to and from a cluster on a UNIX machine, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt;. For example, if you want to upload file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; to cluster graham from your machine &amp;lt;tt&amp;gt;myhost&amp;lt;/tt&amp;gt;, use the following command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp foo.f graham.computecanada.ca:&lt;br /&gt;
&lt;br /&gt;
assuming that your machine has &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; installed. If you want to transfer a file from Windows or Mac, you need have &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sftp&amp;lt;/tt&amp;gt; for Windows or Mac installed.&lt;br /&gt;
&lt;br /&gt;
If you transfer file &amp;lt;tt&amp;gt;foo.f&amp;lt;/tt&amp;gt; between Compute Canada clusters, say from your home directory on cedar to your home directory on graham, simply use the following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp foo.f graham:/home/username/&lt;br /&gt;
&lt;br /&gt;
If you are transferring files between a UNIX machine and a cluster, you may use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; command with &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; option. For instance, if you want to download the subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; in the directory &amp;lt;tt&amp;gt;project&amp;lt;/tt&amp;gt; in your home directory on graham to your local UNIX machine, on your local machine, use command&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp -rp graham.sharcnet.ca:project/foo .&lt;br /&gt;
&lt;br /&gt;
Similarly, you can transfer the subdirectory between Compute Canada clusters. The following command&lt;br /&gt;
&lt;br /&gt;
 [username@cdr-login2:~]$ scp -r graham:/home/username/scratch/foo .&lt;br /&gt;
&lt;br /&gt;
will download subdirectory &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; from your scratch directory on graham to your home directory on cedar (note that the prompt indicates you are currently logged on to cedar).&lt;br /&gt;
&lt;br /&gt;
The use of &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; option above will preserve the time stamp of each file. For Windows and Mac, you need to check the documentation of &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; for features. &amp;#039;&amp;#039;&amp;#039;Do not use -p switch with scp or cp commands on clusters, when the destination is your project space&amp;#039;&amp;#039;&amp;#039;, or you might run into the infamous [https://docs.computecanada.ca/wiki/Frequently_Asked_Questions#Disk_quota_exceeded_error_on_.2Fproject_filesystems Disk quota exceeded issue].&lt;br /&gt;
&lt;br /&gt;
You may also &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; and compress the entire directory and then use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to save bandwidth. In the above example, first you login to graham, then do the following&lt;br /&gt;
&lt;br /&gt;
 [username@gra-login2:~]$ cd project&lt;br /&gt;
 [username@gra-login2:~]$ tar -cvf foo.tar foo&lt;br /&gt;
 [username@gra-login2:~]$ gzip foo.tar&lt;br /&gt;
&lt;br /&gt;
Then on your local machine myhost, use &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to copy the tar file&lt;br /&gt;
&lt;br /&gt;
 myhost$ scp graham.computecanada.ca:project/foo.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Note for most Linux distributions, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; has an option &amp;lt;tt&amp;gt;-z&amp;lt;/tt&amp;gt; that will compress the &amp;lt;tt&amp;gt;.tar&amp;lt;/tt&amp;gt; file using &amp;lt;tt&amp;gt;gzip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Windows=====&lt;br /&gt;
You may read the instructions on using an ssh client. [[https://helpwiki.sharcnet.ca/wiki/SSH#Transfering_files_.28Secure_File_Transfer_Client.29]]&lt;br /&gt;
&lt;br /&gt;
====How can I best transfer large quantities of data to/from SHARCNET and what transfer rate should I expect?====&lt;br /&gt;
&lt;br /&gt;
In general, most users should be fine using &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; or &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to transfer data to and from SHARCNET systems.  If you need to transfer a lot of files &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; is recommended to ensure that you do not need to restart the transfer from scratch should there be a connection failure.  Although you can use &amp;#039;&amp;#039;scp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; to any cluster&amp;#039;s login node(s), it is often best to use gra-dtn1.computecanada.ca - it is dedicated to data transfer. &lt;br /&gt;
&lt;br /&gt;
In general one should expect the following transfer rates with &amp;#039;&amp;#039;scp&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* If you are connecting to SHARCNET through a Research/Education network site (ORION, CANARIE, Internet2) and are on a fast local network (this is the case for most users connecting from academic institutions) then you should be able to attain sustained transfer speeds in excess of 10MB/s.  If your path is all gigabit or better, you should be able to reach rates above 50 MB/s.&lt;br /&gt;
* If you are transferring data over the wider internet, you will not be able to attain these speeds, as all traffic that does not enter/exit SHARCNET via the R&amp;amp;E net is restricted to a limited-bandwidth commercial feed. In this case one will typically see rates on the order of 1MB/s or less.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that filesystems and networks are  shared resources and suffer from contention; if they are busy the above rates may not be attainable&lt;br /&gt;
&lt;br /&gt;
For transferring large amounts of data (many gigabytes) the best approach is to use the online tool [https://docs.computecanada.ca/wiki/Transferring_data#Globus_transfer Globus].&lt;br /&gt;
&lt;br /&gt;
==== How do I access the same file from different subdirectories on the same cluster ? ====&lt;br /&gt;
&lt;br /&gt;
You should not need copy large files on the same cluster (e.g. from one user to another&lt;br /&gt;
or using the same file in different subdirectories).  Instead of using&lt;br /&gt;
scp you might consider issuing a &amp;quot;soft link&amp;quot; command. Assume that you need access&lt;br /&gt;
to the file large_file1 in subdirectory /home/user1/subdir1 and you need it to be in your&lt;br /&gt;
subdirectory /home/my_account/my_dir from where you will invoke it under the name&lt;br /&gt;
my_large_file1.  Then go to that directory and type:&lt;br /&gt;
&lt;br /&gt;
 ln -s /home/user1/subdir1/large_file1    my_large_file1&lt;br /&gt;
&lt;br /&gt;
Another example, assume that in subdirectory /home/my_account/PROJ1 you have several&lt;br /&gt;
subdirectories called CASE1, CASE2, ...  In each subdirectory CASEn you have a slightly&lt;br /&gt;
different code but all of them process the same data file called test_data. Rather than&lt;br /&gt;
copying the test_data file into each CASEn subdirectory, place test_data above i.e.&lt;br /&gt;
in /home/my_account/PROJ1 and then in each CASEn subdirectory issue following &amp;quot;soft link&amp;quot;&lt;br /&gt;
command:&lt;br /&gt;
&lt;br /&gt;
 ln -s ../test_data  test_data&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;soft links&amp;quot; can be removed by using the rm command. For example, to remove the soft link from&lt;br /&gt;
/home/my_account/PROJ1/CASE2 type following command from this subdirectory:&lt;br /&gt;
&lt;br /&gt;
 rm -rf test_data&lt;br /&gt;
&lt;br /&gt;
Typing above command from subdirectory /home/my_account/PROJ1 would remove the actual file and then&lt;br /&gt;
none of the CASEn subdirectories would have access to it.&lt;br /&gt;
&lt;br /&gt;
==== How are files deleted from the /home/userid/scratch filesystems? ====&lt;br /&gt;
&lt;br /&gt;
All files on /home/userid/scratch that are over 2 months old (not old in the common sense, please see below) are automatically deleted. Data needed for long term storage and reference should be kept in either /project, /nearline, or other archival storage areas. The scratch filesystem is checked at the end of the month for files which will be candidates for expiry on the 15th of the following month. On the first day of the month, a login message is posted and a notification e-mail is sent to all users who have at least one file which is a candidate for purging and containing the location of a file which lists all the candidates for purging.  On the 12th of the month, a second scan is run to check for files that will still expire on the 15th, and again, users with candidates for expiry are sent a second warning email.  Lastly, on the 15th, all files which are due for expiry are removed.&lt;br /&gt;
&lt;br /&gt;
An unconventional aspect of this system is that it does not determine the age of a file based on the file&amp;#039;s attributes, e.g., the standard dates reported by the &amp;lt;i&amp;gt;stat&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;find&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;ls&amp;lt;/i&amp;gt;, etc. commands.  (This is known as the &amp;quot;mtime&amp;quot; of the file, for &amp;quot;modification time&amp;quot;, and is frequently inaccurate.) The age of a file is determined based on whether or not its data contents (i.e., the information stored in the file) have changed or been accessed, and this age is stored externally to the file.  Only files where the contents have changed or accessed will have their age counter &amp;quot;reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A list of your candidate files for expiry can be found in /home/scratch_to_delete/$USER  (where $USER is your userid).&lt;br /&gt;
&lt;br /&gt;
===== How do I check the age of a file =====&lt;br /&gt;
We define a file&amp;#039;s age as the most recent of:&lt;br /&gt;
&lt;br /&gt;
 *the access time (atime) and&lt;br /&gt;
 *the change time (ctime)&lt;br /&gt;
&lt;br /&gt;
You can find the ctime of a file using&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lc &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while the atime can be obtained with the command&lt;br /&gt;
&lt;br /&gt;
 [name@server ~]$ ls -lu &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do not use the modify time (mtime) of the file because it can be modified by the user or by other programs to display incorrect information.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, simple use of the atime property would be sufficient, as it is updated by the system in sync with the ctime. However, userspace programs are able to alter atime, potentially to times in the past, which could result in early expiration of a file. The use of ctime as a fallback guards against this undesirable behaviour.&lt;br /&gt;
&lt;br /&gt;
It is also your responsibility to manage your stored data: most of the filesystems are not intended to provide an indefinite archiving service so when a given file or directory is no longer needed, you need to move it to a more appropriate filesystem which may well mean your personal workstation or some other storage system under your control. Moving significant amounts of data between your workstation and a Compute Canada system or between two Compute Canada systems should generally be done using Globus.&lt;br /&gt;
&lt;br /&gt;
==== How to archive my data? ====&lt;br /&gt;
&lt;br /&gt;
===== Use tar to archive files and directories =====&lt;br /&gt;
&lt;br /&gt;
The primary archiving utility on all Linux and Unix-like systems is the [https://www.gnu.org/software/tar/manual/tar.html tar] command. It will bundle a bunch of files or directories together and generate a single file, called an &amp;#039;&amp;#039;archive file&amp;#039;&amp;#039; or &amp;#039;&amp;#039;tar-file&amp;#039;&amp;#039;. By convention an archive file has &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; as the file name extension. When you archive a directory with &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, it will, by default, include all the files and sub-directories contained within it, and sub-sub-directories contained in those, and so on. So the command &amp;lt;code&amp;gt;tar --create --file project1.tar project1&amp;lt;/code&amp;gt; will pack all the content of directory &amp;#039;&amp;#039;project1&amp;#039;&amp;#039; into the file &amp;#039;&amp;#039;project1.tar&amp;#039;&amp;#039;. The original directory will remain unchanged, so this may double the amount of disk space occupied!&lt;br /&gt;
&lt;br /&gt;
You can extract files from an archive using the same command with a different option:&amp;lt;code&amp;gt;tar --extract --file project1.tar&amp;lt;/code&amp;gt;. If there is no directory with the original name, it will be created. If a directory of that name exists and contains files of the same names as in the archive file, they will be overwritten. Another option can be added to specify the destination directory where to extract the archive&amp;#039;s content.   &lt;br /&gt;
&lt;br /&gt;
===== Compress and uncompress tar files =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; archiving utility can compress an archive file at the same time it creates it. There are a number of compression methods to choose from. We recommend either &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;, which can be used as follows:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ tar --create --xz --file project1.tar.xz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --xz --file project1.tar.xz&lt;br /&gt;
 [user_name@localhost]$ tar --create --gzip --file project1.tar.gz project1&lt;br /&gt;
 [user_name@localhost]$ tar --extract --gzip --file project1.tar.gz&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;code&amp;gt;--xz&amp;lt;/code&amp;gt; will produce a smaller compressed file (a &amp;quot;better compression ratio&amp;quot;) but takes longer and uses more RAM while working. &amp;lt;code&amp;gt;--gzip&amp;lt;/code&amp;gt; does not typically compress as small, but may be used if you encounter difficulties due to insufficient memory or excessive run time during &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt;. A third option, &amp;lt;code&amp;gt;--bzip2&amp;lt;/code&amp;gt;, is also available, that typically does not compress as small as &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; but takes longer than &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;lt;code&amp;gt;tar --create&amp;lt;/code&amp;gt; first without compression and then use the commands &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; in a separate step, although there is rarely a reason to do so. Similarly, you can run &amp;lt;code&amp;gt;xz -d&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;gzip -d&amp;lt;/code&amp;gt; to decompress an archive file before running &amp;lt;code&amp;gt;tar --extract&amp;lt;/code&amp;gt;, but again there is rarely a reason to do so.&lt;br /&gt;
&lt;br /&gt;
The commands &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; can be used to compress any file, not just archive files:&lt;br /&gt;
&lt;br /&gt;
 [user_name@localhost]$ gzip bigfile&lt;br /&gt;
 [user_name@localhost]$ xz bigfile&lt;br /&gt;
&lt;br /&gt;
These commands will produce the files &amp;lt;code&amp;gt;bigfile.gz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bigfile.xz&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
=====Archival Storage=====&lt;br /&gt;
&lt;br /&gt;
On Graham, files copied to ~/nearline will be subsequently moved to offline (tape-based) storage. See [https://docs.computecanada.ca/wiki/Using_nearline_storage this link] for more details.&lt;br /&gt;
&lt;br /&gt;
==== How can I check the hidden files in directory? ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;.&amp;quot; at the beginning of the name means that the file is &amp;quot;hidden&amp;quot;. You have to use the -a option with ls to see it. I.e. &amp;lt;code&amp;gt;ls -a &amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
If you want to display only the hidden files then type:&lt;br /&gt;
 ls -d .*&lt;br /&gt;
&lt;br /&gt;
Note: there is an alias which is loaded from /etc/bashrc (see your .bashrc file). The alias is defined by alias &amp;lt;code&amp;gt; l.=&amp;#039;ls -d .* --color=auto&amp;#039; &amp;lt;/code&amp;gt; and if you type:&lt;br /&gt;
 l.&lt;br /&gt;
you will also display only the hidden files.&lt;br /&gt;
&lt;br /&gt;
==== How can I count the number of files in a directory? ====&lt;br /&gt;
&lt;br /&gt;
One can use the following command to count the number of files in a directory (in this example, your /work directory):&lt;br /&gt;
&lt;br /&gt;
 find /home/$USER -type f   | wc -l&lt;br /&gt;
&lt;br /&gt;
It is always a good idea to [[Knowledge_Base#How_to_archive_my_data.3F|archive]] and/or compress files that are no longer needed on the filesystem (see [https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_to_organize_a_large_number_of_files.3F below]).  This helps minimize one&amp;#039;s footprint on the filesystem and as such the impact they have on other users of the shared resource.&lt;br /&gt;
&lt;br /&gt;
==== How to organize a large number of files? ====&lt;br /&gt;
&lt;br /&gt;
With parallel cluster filesystems, you will get best I/O performance writing data to a small number of large files. Since all metadata operations on each of our parallel filesystems are handled by a single file server, depending on how many files are being accessed the server can become overwhelmed leading to poor overall I/O performance for all users. If your workflow involves storing data in a large number of files, it is best to pack these files into a small number of larger archives, e.g. using tar command&lt;br /&gt;
&lt;br /&gt;
 tar cvf archiveFile.tar directoryToArchive&lt;br /&gt;
&lt;br /&gt;
For better performance with many files inside your archive, we recommend to use DAR (Disk ARchive utility), which is a disk analog of tar (Tape ARchive).  Dar can extract files from anywhere in the archive much faster than tar. The dar command is available by default on sharcnet systems. It can be used to pack files into a dar archive by doing something like: &lt;br /&gt;
&lt;br /&gt;
 dar -s 1G -w -c archiveFile -g directoryToArchive&lt;br /&gt;
&lt;br /&gt;
In this example we split the archive into 1GB chunks, and the archive files will be named archiveFile.1.dar, archiveFile.2.dar, and so on. To list the contents of the archive, you can type:&lt;br /&gt;
&lt;br /&gt;
 dar -l archiveFile&lt;br /&gt;
&lt;br /&gt;
To temporarily extract files for post-processing into current directory, you would type:&lt;br /&gt;
&lt;br /&gt;
 dar -R . -O -x archiveFile -v -g pathToYourFile/fileToExtract&lt;br /&gt;
&lt;br /&gt;
=== I am unable to connect to one of the clusters; when I try, I am told the connection was closed by the remote host ===&lt;br /&gt;
&lt;br /&gt;
The most likely cause of this behaviour is repeated failed login attempts.  Part of our security policies involves blocking the IP address of machines that attempt multiple logins with incorrect passwords over a short period of time---many brute-force attacks on systems do exactly this: looking for poor passwords, badly configured accounts, etc.  Unfortunately, it isn&amp;#039;t uncommon for a user to forget their password and make repeated login attempts with incorrect passwords and end up with that machine blacklisted and unable to connect at all.&lt;br /&gt;
&lt;br /&gt;
A temporary solution is simply to attempt to login from another machine.  If you have access to another machine at your site, you can shell to that machine first, and then shell to the SHARCNET system (as that machine&amp;#039;s IP shouldn&amp;#039;t be blacklisted).  In order to have your machine unblocked, you will have to email to [mailto:support@computecanada.ca support@computecanada.ca] as a system administrator must manually intervene in order to fix it.&lt;br /&gt;
&lt;br /&gt;
NOTE: there are other situations that can produce this message, however they are rarer and more transient.  If you are unable to log in from one machine, but can from another, it is most likely the IP blacklisting that is the problem and the above will provide a temporary work-around while your problem ticket is processed.&lt;br /&gt;
&lt;br /&gt;
=== I am unable to ssh/scp from SHARCNET to my local computer ===&lt;br /&gt;
&lt;br /&gt;
Most campus networks are behind some sort of firewall.  If you can ssh out to SHARCNET, but cannot establish a connection in the other direction, then you are probably behind a firewall and should speak with your local system administrator or campus IT department to determine if there are any exceptions or workarounds in place.&lt;br /&gt;
&lt;br /&gt;
=== SSH tells me SOMEONE IS DOING SOMETHING NASTY!? ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Please first read the following:&lt;br /&gt;
&lt;br /&gt;
https://docs.computecanada.ca/wiki/SSH_security_improvements&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suppose you attempt to login to SHARCNET, but instead get an alarming message like this:&lt;br /&gt;
&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that the RSA host key has just been changed.&lt;br /&gt;
 The fingerprint for the RSA key sent by the remote host is&lt;br /&gt;
 fe:65:ab:89:9a:23:34:5a:50:1e:05:d6:bf:ec:da:67.&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending key in /home/user/.ssh/known_hosts:42&lt;br /&gt;
 RSA host key for requin has changed and you have requested strict checking.&lt;br /&gt;
 Host key verification failed. &lt;br /&gt;
&lt;br /&gt;
SSH begins a connection by verifying that the host you&amp;#039;re connecting to is authentic. It does this by caching the hosts&amp;#039;s &amp;quot;hostkey&amp;quot; in your  &amp;lt;tt&amp;gt;~/.ssh/known_hosts&amp;lt;/tt&amp;gt; file. At times, a hostkey may be changed legitimately; when this happens, you may see such a message. It&amp;#039;s a good idea to verify this with us, you may be able to check the fingerprint yourself by logging into another sharcnet system and running:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub &lt;br /&gt;
&lt;br /&gt;
If the fingerprint is OK, the normal way to fix the problem is to simply remove the old hostkey from your &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. On machines with commandline SSH, you can do this with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -R thehostname&lt;br /&gt;
&lt;br /&gt;
You can use your choice of editor if you&amp;#039;re comfortable doing so (it&amp;#039;s a plain text file, but has long lines). On a unix-compatible machine, you can also use the following very small script (Substitute the line(s) printed in the warning message illustrated above for &amp;#039;42&amp;#039; here.):&lt;br /&gt;
&lt;br /&gt;
 perl -pi -e &amp;#039;undef $_ if (++$line == 42)&amp;#039; ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
Another solution is brute-force: remove the whole &amp;lt;tt&amp;gt;known_hosts&amp;lt;/tt&amp;gt; file. This throws away any authentication checking, and afterwards, your first connection to any machine will prompt you to accept a newly discovered host key.&lt;br /&gt;
&lt;br /&gt;
=== Ssh works, but scp doesn&amp;#039;t! ===&lt;br /&gt;
&lt;br /&gt;
If you can &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; to a cluster successfully, but cannot &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; to to it, the problem is likely that your login scripts print unexpected messages which confuse &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; is based on the same &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; protocol, but assumes that the connection is &amp;quot;clean&amp;quot;: that is, that it does not produce any un-asked-for content. If you have something like:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; will be confused by the salutation. To avoid this, simply ensure that the message is only printed on an interactive login:&lt;br /&gt;
&lt;br /&gt;
 if [ -t 0 ]; then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
or in csh/tcsh syntax:&lt;br /&gt;
&lt;br /&gt;
 if ( -t 0 ) then&lt;br /&gt;
     echo &amp;quot;Hello, Master; I await your command...&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
=== How do I edit my program on a cluster? ===&lt;br /&gt;
&lt;br /&gt;
We provide a variety of editors, such as the traditional text-mode &amp;lt;tt&amp;gt;emacs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; (vim), as well as a simpler one called &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;. If you have X on your desktop (and tunneled through SSH), you can use the GUI versions (&amp;lt;tt&amp;gt;xemacs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gvim&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If your desktop supports FUSE, it&amp;#039;s very convenient to simply mount your home tree like this:&lt;br /&gt;
 mkdir sharcnet&lt;br /&gt;
 sshfs graham.computecanada.ca: sharcnet&lt;br /&gt;
you can then use any local editor of your choice.&lt;br /&gt;
&lt;br /&gt;
If you run emacs on your desktop, you can also edit a remote file from within your local emacs client using [http://www.gnu.org/software/tramp Tramp], opening and saving a file as /username@cluster.computecanada.ca:path/file.&lt;br /&gt;
&lt;br /&gt;
== Research at SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== I have a research project I would like to collaborate on with SHARCNET, who should I talk to? ===&lt;br /&gt;
&lt;br /&gt;
You may contact [mailto:barb@sharcnet.ca SHARCNET head office] or contact members of the [https://www.sharcnet.ca/my/contact/directory#techteam SHARCNET technical staff].&lt;br /&gt;
&lt;br /&gt;
=== How can I contribute compute resources to SHARCNET so that other researchers can share it? ===&lt;br /&gt;
&lt;br /&gt;
Most people&amp;#039;s research is &amp;quot;bursty&amp;quot; - there are usually sparse periods of time when some computation is urgently needed, and other periods when there is less demand. One problem with this is that if you purchase the equipment you need to meet your &amp;quot;burst&amp;quot; needs, it&amp;#039;ll probably sit, underutilized, during other times.&lt;br /&gt;
&lt;br /&gt;
An alternative is to donate control of this equipment to SHARCNET, and let us arrange for other users to use it when you are not. We prefer to be involved in the selection and configuration of such equipment. Our promise to contributors is that as much as possible, they should obtain as much benefit from the cluster as if it were not shared. Owners get preferential access. Naturally, owners are also able to burst to higher peak usage, since their equipment has been pooled with other contributions. (Technically, SHARCNET cannot itself own such equipment — it remains owned by the institution in question, and will be returned to the contributor upon request.) If you think this model will also work for you and you would like to contribute your computational resource to help the research community at SHARCNET, you can contact us for such arrangement.&lt;br /&gt;
&lt;br /&gt;
=== I do not know much about computation, nor is it my research interest. But I am interested in getting my research done faster with the help of the high performance computing technology. In other words, I do not care about the process and mechanism, but only the final results. Can SHARCNET provide this type of help? ===&lt;br /&gt;
&lt;br /&gt;
We will be happy to bring the technology of high performance computing to you to accelerate your research, if at all possible. If you would like to discuss your plan with us, please feel free to contact our [https://www.sharcnet.ca/my/contact/directory#techteam high performance computing specialists]. They will be happy to listen to your needs and are ready to provide appropriate suggestions and assistance.&lt;br /&gt;
&lt;br /&gt;
=== I need access to more CPU cores or storage than are available by default, what programs exist to support demanding computation? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET participates in the Compute Canada NRAC (National Resource Allocation Competition) and provides a continual competition for groups that require more than the default level of access to our resources.  Please see [[Dedicated Resources]] for further information.&lt;br /&gt;
&lt;br /&gt;
=== I heard SHARCNET offers fellowships, where can I get more information? ===&lt;br /&gt;
&lt;br /&gt;
SHARCNET no longer actively runs a fellowship program.  You may find information regarding past fellowships and other dedicated resource opportunities on the [https://www.sharcnet.ca/my/research/fellowships Research Fellowships page] of the web portal.&lt;br /&gt;
&lt;br /&gt;
=== I would like to do some research at SHARCNET as a visiting scholar, how should I apply? ===&lt;br /&gt;
&lt;br /&gt;
In general, you will need to find a hosting department or a person affiliated with one of the SHARCNET institutions. You may also [http://www.sharcnet.ca/my/contact contact us] directly for more specific information.&lt;br /&gt;
&lt;br /&gt;
=== I would like to send my students to SHARCNET to do some work for me. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
See above.&lt;br /&gt;
&lt;br /&gt;
== Contacting SHARCNET ==&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for research, academic exchanges, and technical issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact SHARCNET for business development, education and other issues? ===&lt;br /&gt;
&lt;br /&gt;
Please contact [mailto:barb@sharcnet.ca SHARCNET head office].&lt;br /&gt;
&lt;br /&gt;
=== How do I contact a specific staff member at SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
See [https://www.sharcnet.ca/my/contact/directory staff directory] for contact information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Acknowledge SHARCNET in Publications ==&lt;br /&gt;
&lt;br /&gt;
=== How do I acknowledge SHARCNET in my publications? ===&lt;br /&gt;
&lt;br /&gt;
We recommend one cite the following:&lt;br /&gt;
&lt;br /&gt;
 This work was made possible by the facilities of the Shared Hierarchical &lt;br /&gt;
 Academic Research Computing Network (SHARCNET:www.sharcnet.ca) and Digital Research Alliance of Canada (https://alliancecan.ca/en).&lt;br /&gt;
&lt;br /&gt;
=== I&amp;#039;ve seen different spellings of the name, what is the standard spelling of SHARCNET? ===&lt;br /&gt;
&lt;br /&gt;
We suggest the spelling SHARCNET, all in upper case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What types of research programs / support are provided to the research community? ==&lt;br /&gt;
&lt;br /&gt;
Our overall intent is to provide support that can both respond to the range of needs that the user community presents and help to increase the sophistication of the community and enable new and larger-in-scope applications making use of SHARCNET&amp;#039;s HPC facilities. The range of support can perhaps best be understood in terms of a pyramid:&lt;br /&gt;
&lt;br /&gt;
=== Level 1 ===&lt;br /&gt;
&lt;br /&gt;
At the apex of the pyramid, SHARCNET supports a small number of projects with dedicated programmer support. The intent is to enable projects that will have a lasting impact and may lead to a &amp;quot;step change&amp;quot; in the way research is done at SHARCNET. Inter-disciplinary and inter-institutional projects are particularly welcomed. For the latest information about the program, including application guidelines, please see the  [https://www.sharcnet.ca/my/research/programming Programming Competition] page in our web portal.&lt;br /&gt;
&lt;br /&gt;
=== Level 2 ===&lt;br /&gt;
&lt;br /&gt;
The middle layers of support are provided through a number of initiatives.&lt;br /&gt;
&lt;br /&gt;
These include:&lt;br /&gt;
* Programming support of more modest duration (several days to one month engagement, usually part time)&lt;br /&gt;
* Training on a variety of topics through [https://www.sharcnet.ca/help/index.php/Training workshops, seminars and online training materials]&lt;br /&gt;
* Consultation. This may include user-initiated interactions on particular programs, algorithms, techniques, debugging, optimization etc., as well as unsolicited help to ensure effective use of SHARCNET systems&lt;br /&gt;
* Site Leaders play an important role in working with the community to help researchers connect with SHARCNET staff and to obtain appropriate help and support.&lt;br /&gt;
&lt;br /&gt;
=== Level 3 ===&lt;br /&gt;
&lt;br /&gt;
The base level of the pyramid handles the very large number of small requests that are essential to keeping the user community working effectively with the infrastructure on a day-to-day basis. Several of these can be answered by this FAQ; many of the issues are presented through the [https://www.sharcnet.ca/help/index.php/Knowledge_Base#Compute_Canada_Problem_Ticket_System ticketing system]. The support is largely problem oriented with each problem being time limited.&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
	<entry>
		<id>https://helpwiki.sharcnet.ca/wiki/index.php?title=Land_acknowledgments&amp;diff=662</id>
		<title>Land acknowledgments</title>
		<link rel="alternate" type="text/html" href="https://helpwiki.sharcnet.ca/wiki/index.php?title=Land_acknowledgments&amp;diff=662"/>
		<updated>2023-01-05T23:22:46Z</updated>

		<summary type="html">&lt;p&gt;Jhqin: /* Western University */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Brock University ==&lt;br /&gt;
&lt;br /&gt;
== McMaster University ==&lt;br /&gt;
McMaster University is located on &lt;br /&gt;
the traditional territory of the&lt;br /&gt;
Haudenosaunee and Anishinabe nations. The territory was the subject of the Dish with One Spoon Wampum&lt;br /&gt;
Belt Covenant, an agreement between the Iroquois Confederacy and the Ojibwe and allied nations to&lt;br /&gt;
peaceably share and care for the resources around the Great Lakes.&lt;br /&gt;
&lt;br /&gt;
== Ontario Tech University ==&lt;br /&gt;
Ontario Tech University acknowledges the lands and people of the Mississaugas of Scugog Island First Nation. We are thankful to be welcomed on these lands in friendship. The lands we are situated on are covered under the Williams Treaties and the traditional territory of the Mississaugas, a branch of the greater Anishinaabeg Nation, including Algonquin, Ojibway, Odawa and Pottawatomi.&lt;br /&gt;
&lt;br /&gt;
== University of Guelph ==&lt;br /&gt;
&lt;br /&gt;
== University of Waterloo ==&lt;br /&gt;
&lt;br /&gt;
== University of Windsor ==&lt;br /&gt;
The University of Windsor sits on the traditional territory of the Three Fires Confederacy of First Nations, which includes the Ojibwa, the Odawa, and the Potawatomi. We respect the longstanding relationships with First Nations people in this place in the 100-mile Windsor-Essex peninsula and the straits – les détroits – of Detroit&lt;br /&gt;
&lt;br /&gt;
== Western University ==&lt;br /&gt;
Western University is located on the traditional territories of the Anishinaabek, Haudenosaunee, Lūnaapéewak, and Chonnonton Nations, on lands connected with the London Township and Sombra Treaties of 1796 and the Dish with One Spoon Covenant Wampum. This land continues to be home to diverse Indigenous Peoples whom we recognize as contemporary stewards of the land and vital contributors of our society.&lt;br /&gt;
&lt;br /&gt;
== Wilfrid Laurier University ==&lt;br /&gt;
&lt;br /&gt;
== York University ==&lt;/div&gt;</summary>
		<author><name>Jhqin</name></author>
	</entry>
</feed>