{"id":239,"date":"2025-09-23T15:14:42","date_gmt":"2025-09-23T15:14:42","guid":{"rendered":"https:\/\/www.hep.wisc.edu\/cms\/?page_id=239"},"modified":"2026-06-09T20:16:36","modified_gmt":"2026-06-09T20:16:36","slug":"af","status":"publish","type":"page","link":"https:\/\/www.hep.wisc.edu\/cms\/af\/","title":{"rendered":"Welcome to the Wisconsin Analysis Facility"},"content":{"rendered":"<h1 style=\"margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--20)\" class=\"is-style-mini-bar wp-block-post-title\">Welcome to the Wisconsin Analysis Facility<\/h1>\n\n\n<div class=\"wp-block-group alignfull has-base-background-color has-background has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--60)\">\n<div class=\"wp-block-columns alignnone is-layout-flex wp-container-core-columns-is-layout-b4b75a54 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-group is-layout-constrained has-global-padding wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-b4b75a54 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"204\" height=\"192\" src=\"https:\/\/www.hep.wisc.edu\/cms\/wp-content\/uploads\/sites\/2\/2025\/10\/cms_logo.png\" alt=\"\" class=\"wp-image-263\" style=\"width:198px;height:auto\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"271\" height=\"300\" src=\"https:\/\/www.hep.wisc.edu\/cms\/wp-content\/uploads\/sites\/2\/2025\/10\/coffea_favicon-271x300.png\" alt=\"\" class=\"wp-image-264\" style=\"aspect-ratio:0.9033482913358647;width:172px;height:auto\" srcset=\"https:\/\/www.hep.wisc.edu\/cms\/wp-content\/uploads\/sites\/2\/2025\/10\/coffea_favicon-271x300.png 271w, https:\/\/www.hep.wisc.edu\/cms\/wp-content\/uploads\/sites\/2\/2025\/10\/coffea_favicon.png 702w\" sizes=\"auto, (max-width: 271px) 100vw, 271px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"201\" src=\"https:\/\/www.hep.wisc.edu\/cms\/wp-content\/uploads\/sites\/2\/2025\/10\/uw-madison-logo-300x201.jpeg\" alt=\"\" class=\"wp-image-266\" srcset=\"https:\/\/www.hep.wisc.edu\/cms\/wp-content\/uploads\/sites\/2\/2025\/10\/uw-madison-logo-300x201.jpeg 300w, https:\/\/www.hep.wisc.edu\/cms\/wp-content\/uploads\/sites\/2\/2025\/10\/uw-madison-logo-768x514.jpeg 768w, https:\/\/www.hep.wisc.edu\/cms\/wp-content\/uploads\/sites\/2\/2025\/10\/uw-madison-logo-600x400.jpeg 600w, https:\/\/www.hep.wisc.edu\/cms\/wp-content\/uploads\/sites\/2\/2025\/10\/uw-madison-logo-900x600.jpeg 900w, https:\/\/www.hep.wisc.edu\/cms\/wp-content\/uploads\/sites\/2\/2025\/10\/uw-madison-logo.jpeg 1024w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Links to Workspaces<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For entry points to workspaces (Jupyterlabs), see&nbsp;<a href=\"https:\/\/cms01.hep.wisc.edu\">cms01.hep.wisc.edu<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Workspace Choice<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">GPUs are accessible through Condor with all workspace choices &#8211; both with and without GPUs locally available. However, one can only use GPUs <strong>locally&nbsp;<\/strong>when using a workspace labeled as having GPUs locally available. For testing and development with GPU-accelerated code, it is recommended to use locally-hosted GPUs first. For running accelerated code at scale with Condor, a workspace does not need to have locally-hosted GPUs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Notes are provided next to workspaces to help guide your choice of image. These broadly correspond to versions of coffea and accompanying packages that have been tested for compatibility.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Quickstart<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Welcome to the Analysis Facility at the University of Wisconsin &#8211; Madison!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Analysis Facility gives users access to the UW Tier-2 computing cluster, and is configured around the analysis tools and concepts of <a href=\"https:\/\/github.com\/scikit-hep\/coffea\/tree\/master\">coffea<\/a>. So, it is best suited for users looking for access to coffea and associated tools and\/or distributed computing resources.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Analysis Facility is reachable at <a href=\"https:\/\/cms01.hep.wisc.edu\">cms01.hep.wisc.edu<\/a>. You will be presented with a choice of `coffea` image to use &#8211; those containing &#8220;202X&#8221; are &#8220;CalVer&#8221; (or &#8220;new&#8221;) coffea, while those containing &#8220;0.7&#8221; are &#8220;SemVer&#8221; coffea. To run the notebooks in this repository on the Analysis Facility, one can open a terminal session in the AF, and then clone this repository.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here in the Analysis Facility&#8217;s Jupyterhub, users can run code through Jupyter notebooks, or through the terminal. All code runs in an environment with coffea and common analysis tools available.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To open a new notebook or a terminal window, click the &#8220;plus&#8221; sign next to the words &#8220;Welcome.ipynb&#8221; at the top of this notebook.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Important:<\/strong> To leave the Analysis Facility, first make sure you save any notebooks you edited. Then, please go to the top left of your browser window (next to the orange Jupyter logo), and click File -&gt; Hub Control Panel. There, please select &#8220;Shut Down Server&#8221;, and then logout in the top right corner of your window. You can then close your browser window.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If your work requires user-specific setup steps (ie: creating a VOMS proxy for data access), this should be done in a terminal window before running your workflow. To obtain a voms proxy, use <code>voms-proxy-init -voms cms -rfc -valid 192:00 -bits 2048 -vomses \/etc\/vomses<\/code>. It is suggested to save this in a <code>.bashrc<\/code>, for example with a line like <code>alias af-setup-voms-proxy=\"voms-proxy-init -voms cms -rfc -valid 192:00 -bits 2048 -vomses \/etc\/vomses\"<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Examples<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Examples are available at&nbsp;<a href=\"https:\/\/github.com\/rpsimeon34\/wisc-af-examples\/blob\/main\/Welcome.ipynb\">this Github repository<\/a>. It includes interactive examples that can be run on the Analysis Facility to gain familiarity with columnar analysis tools in the context of the Wisconsin AF.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Virtual Environments at the AF<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If users need Python packages not included by default in the AF image, it is suggested to manage additional packages with <a href=\"https:\/\/docs.python.org\/3\/library\/sys_path_init.html#sys-path-init-virtual-environments\">Python virtual environments<\/a>. To create a virtual environment at the AF, please use the command-line utility <code>new-af-venv<\/code>. For example, running <code>$ new-af-venv my-env-name<\/code> creates a virtual environment named <code>my-env-name<\/code> in the current working directory. Using this utility guarantees that a notebook kernel is created (see next paragraph), and that the environment can be shipped to Condor workers. Activate the virtual environment with <code>$ source my-env-name\/bin\/activate<\/code>, and then install packages with <code>$ python3 -m pip install name-of-package<\/code>. To deactivate the virtual environment, <code>$ deactivate<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To use a virtual environment in a notebook, go to the top right corner of an open notebook to select the kernel. Using the drop-down menu, select the kernel called <code>my-env-name<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To send virtual environment packages to Condor workers, use the <code>ship_env<\/code> option of the <code>cowtools<\/code> <a href=\"https:\/\/github.com\/rpsimeon34\/cowtools\/blob\/master\/src\/cowtools\/jobqueue\/jobqueue.py#L18\">GetCondorCllient<\/a> function. Make sure that the desired virtual environment is activated if running a script (or selected as a kernel if running a notebook).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Contact<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To report issues or ask questions, please contact help@hep.wisc.edu and rsimeon@wisc.edu.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Links to Workspaces For entry points to workspaces (Jupyterlabs), see&nbsp;cms01.hep.wisc.edu. Workspace Choice GPUs are accessible through Condor with all workspace choices &#8211; both with and without GPUs locally available. However, one can only use GPUs locally&nbsp;when using a workspace labeled as having GPUs locally available. For testing and development with GPU-accelerated code, it is recommended &hellip;<\/p>\n","protected":false},"author":39,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uw_migration_status":"complete","_uw_gutenberg_post_content_before_migration":"","_uw_seo_meta_title":"","_uw_seo_meta_description":"","_uw_seo_twitter_card_type":"summary","_uw_seo_meta_image":"","_uw_seo_meta_image_url":"","_uw_seo_meta_image_sizes":[],"_uw_seo_custom_meta_tags":[],"footnotes":""},"class_list":["post-239","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.hep.wisc.edu\/cms\/wp-json\/wp\/v2\/pages\/239","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hep.wisc.edu\/cms\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.hep.wisc.edu\/cms\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.hep.wisc.edu\/cms\/wp-json\/wp\/v2\/users\/39"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hep.wisc.edu\/cms\/wp-json\/wp\/v2\/comments?post=239"}],"version-history":[{"count":7,"href":"https:\/\/www.hep.wisc.edu\/cms\/wp-json\/wp\/v2\/pages\/239\/revisions"}],"predecessor-version":[{"id":317,"href":"https:\/\/www.hep.wisc.edu\/cms\/wp-json\/wp\/v2\/pages\/239\/revisions\/317"}],"wp:attachment":[{"href":"https:\/\/www.hep.wisc.edu\/cms\/wp-json\/wp\/v2\/media?parent=239"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}