<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://oldwiki.scinet.utoronto.ca/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Esalesde</id>
	<title>oldwiki.scinet.utoronto.ca - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://oldwiki.scinet.utoronto.ca/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Esalesde"/>
	<link rel="alternate" type="text/html" href="https://oldwiki.scinet.utoronto.ca/index.php/Special:Contributions/Esalesde"/>
	<updated>2026-05-10T15:59:57Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.12</generator>
	<entry>
		<id>https://oldwiki.scinet.utoronto.ca/index.php?title=Half_Day_Parallel_I/O_Course_-_February_2013&amp;diff=5902</id>
		<title>Half Day Parallel I/O Course - February 2013</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.scinet.utoronto.ca/index.php?title=Half_Day_Parallel_I/O_Course_-_February_2013&amp;diff=5902"/>
		<updated>2013-03-22T21:29:27Z</updated>

		<summary type="html">&lt;p&gt;Esalesde: Fix direct links to videos.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Goal ==&lt;br /&gt;
&lt;br /&gt;
This half-day course given on February 27, 2013 at SciNet, was on parallel I/O techniques.  Doing large-scale computation can be much easier than recording the results of the computation. In this half day course, a variety of strategies for doing large-scale I/O were discussed either with parallel or large numbers of serial jobs; we then focused on technologies for truly Parallel I/O, including MPI-IO, HDF5, and NetCDF.&lt;br /&gt;
&lt;br /&gt;
== Slides (PDF) ==&lt;br /&gt;
# [[Media:Parallel_io_intro.pdf | Introduction to Parallel I/O]]&lt;br /&gt;
# [[Media:Parallel_io_course_mpi_io.pdf | Parallel I/O with MPI (MPI-IO)]]&lt;br /&gt;
# [[Media:Netcdfhdf5.pdf | Parallel I/O with NetCDF and HDF5]]&lt;br /&gt;
&lt;br /&gt;
== Videos ==&lt;br /&gt;
# [http://support.scinet.utoronto.ca/CourseVideo/ParallelIOcourse/pario-intro/pario-intro.html Introduction to Parallel I/O]&amp;lt;br/&amp;gt;[[File:Morning_intro.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/ParallelIOcourse/pario-intro/pario-intro.html]]&amp;lt;br/&amp;gt;[http://support.scinet.utoronto.ca/CourseVideo/ParallelIOcourse/pario-intro/pario-intro.mp4 direct link]&lt;br /&gt;
# [http://support.scinet.utoronto.ca/CourseVideo/ParallelIOcourse/pario-mpiio/pario-mpiio.html Parallel I/O with MPI (MPI-IO)]&amp;lt;br/&amp;gt;[[File:Morning_intro.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/ParallelIOcourse/pario-mpiio/pario-mpiio.html]]&amp;lt;br/&amp;gt;[http://support.scinet.utoronto.ca/CourseVideo/ParallelIOcourse/pario-mpiio/pario-mpiio.mp4 direct link]&lt;br /&gt;
# [http://support.scinet.utoronto.ca/CourseVideo/ParallelIOcourse/pario-netcdfhdf5/pario-netcdfhdf5.html Parallel I/O with NetCDF and HDF5] (apologies for the poor sound quality)&amp;lt;br/&amp;gt;[[File:Morning_intro.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/ParallelIOcourse/pario-netcdfhdf5/pario-netcdfhdf5.html]]&amp;lt;br/&amp;gt;[http://support.scinet.utoronto.ca/CourseVideo/ParallelIOcourse/pario-netcdfhdf5/pario-netcdfhdf5.mp4 direct link]&lt;br /&gt;
&lt;br /&gt;
== Code == &lt;br /&gt;
* [[Media:ScinetCourseParIO.tgz | Hands-on example code from /scinet/course/parIO/]]&lt;/div&gt;</summary>
		<author><name>Esalesde</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.scinet.utoronto.ca/index.php?title=Python&amp;diff=3426</id>
		<title>Python</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.scinet.utoronto.ca/index.php?title=Python&amp;diff=3426"/>
		<updated>2011-06-22T01:38:32Z</updated>

		<summary type="html">&lt;p&gt;Esalesde: Remove duplicate line&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.python.org/ Python] is programing language that continues to grow in popularity for scientific computing.   It is very fast to write code in, but the software that results is much much slower than C or Fortran; one should be wary of doing too much compute-intensive work in Python.     There is a dizzying amount of documentation available for programming in Python on the [http://python.org/ Python.org webpage]; and an excellent set of material for teaching scientists to program in Python is available at the [http://software-carpentry.org/4_0/python/ Software Carpentry homepage].&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__ &lt;br /&gt;
&lt;br /&gt;
== Python on the GPC ==&lt;br /&gt;
&lt;br /&gt;
At the time of writing, we have two versions of python installed on GPC - the default, version 2.6, and the newest in the 2.7 release series, 2.7.1.    To use either, you will have to have lines like&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
module load gcc python&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
module load gcc python/2.7.1 intel/intel-v12.0.0.084&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in your &amp;lt;tt&amp;gt;.bashrc&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Modules installed system-wide ==&lt;br /&gt;
&lt;br /&gt;
Many optional packages are available for Python which greatly extend the language adding important new functionality.  Those packages which are likely to be important to all of our users &amp;amp;mdash; eg, [http://numpy.scipy.org/ NumPy], [http://www.scipy.org/ SciPy], and [http://matplotlib.sourceforge.net/ Matplotlib] are installed system-wide.&lt;br /&gt;
&lt;br /&gt;
Below is a list of the packages currently installed system-wide.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!{{Hl2}}| Module  &lt;br /&gt;
!{{Hl2}}| Version&lt;br /&gt;
!{{Hl2}}| Comments&lt;br /&gt;
|-  &lt;br /&gt;
|[http://www.scipy.org/ SciPy]&lt;br /&gt;
| 0.7.1 (Python 2.6.2); 0.9.0 (Python 2.7.1)&lt;br /&gt;
| An Open-source software for mathematics, science, and engineering.  Version in Python 2.7.1 is linked against very fast MKL numerical libraries. &lt;br /&gt;
|-&lt;br /&gt;
|[http://numpy.scipy.org/ NumPy]&lt;br /&gt;
| 1.3.0 (Python 2.6.2); 1.5.1 (Python 2.7.1)&lt;br /&gt;
| NumPy is the fundamental package needed for scientific computing with Python. Contains fast arrays, tools for integrating C/C++ and Fortran code, linear algebra solvers, etc.  SciPy is built on top of NumPy.&lt;br /&gt;
|-&lt;br /&gt;
| [http://mpi4py.scipy.org/ mpi4py]&lt;br /&gt;
| 1.2.1 (Python 2.6.2); 1.2.2 (Python 2.7.1)&lt;br /&gt;
| A pythonic interface to mpi.   Available with openmpi; must load an openmpi module for this to work.&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.scipy.org/SciPyPackages/NumExpr Numexpr]&lt;br /&gt;
| 1.3.1&lt;br /&gt;
| Fast, memory-efficient elementwise operations on Numpy arrays.&lt;br /&gt;
|-&lt;br /&gt;
| [http://dirac.cnrs-orleans.fr/plone/software/scientificpython/ ScientificPython]&lt;br /&gt;
| 2.8 &lt;br /&gt;
| A collection of scientific python utilities.  &lt;br /&gt;
|-&lt;br /&gt;
| [http://yt.enzotools.org/ yt]&lt;br /&gt;
| 1.7 (Python 2.6.2 only)&lt;br /&gt;
| A collection of python tools for analyzing astrophysical simulation output.&lt;br /&gt;
|-&lt;br /&gt;
| [http://ipython.scipy.org/moin/ iPython]&lt;br /&gt;
| 0.10&lt;br /&gt;
| An enhanced interactive python.&lt;br /&gt;
|-&lt;br /&gt;
| [http://matplotlib.sourceforge.net/ Matplotlib], pylab&lt;br /&gt;
| 0.99.0 (Python 2.6.2); 1.0.1 (Python 2.7.1)&lt;br /&gt;
| Matlab-like plotting for python.&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.pytables.org/moin PyTables]&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| Fast and efficient access to HDF5 files (and HDF5-format NetCDF4 files.)   Requires the &amp;lt;tt&amp;gt;hdf5/184-p1-v18-serial-gcc&amp;lt;/tt&amp;gt; module to be loaded.&lt;br /&gt;
|-&lt;br /&gt;
| [http://code.google.com/p/netcdf4-python/ NetCDF4-python]&lt;br /&gt;
| 0.9.3 (Python 2.6.2); 0.9.4 (Python 2.7.1)&lt;br /&gt;
| Python interface to NetCDF4 files.   Requires the &amp;lt;tt&amp;gt;netcdf/4.0.1_hdf5_v18-serial.shared-nofortran&amp;lt;/tt&amp;gt; module to be loaded.&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.pyngl.ucar.edu/Nio.shtml pyNIO]&lt;br /&gt;
| 1.3.0&lt;br /&gt;
| Another Python interface to NetCDF4 files; again, requires the &amp;lt;tt&amp;gt;netcdf/4.0.1_hdf5_v18-serial.shared-nofortran&amp;lt;/tt&amp;gt; module.&lt;br /&gt;
|-&lt;br /&gt;
| [http://pysvn.tigris.org/ PySVN]&lt;br /&gt;
| 1.7.1&lt;br /&gt;
| Python interface to the svn version control system.  Requires the &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; module to be loaded.&lt;br /&gt;
|-&lt;br /&gt;
| [http://mercurial.selenic.com/ Mercurial]&lt;br /&gt;
| 1.3.1 (Python 2.6.2); 1.8.2 (Python 2.7.1)&lt;br /&gt;
| A distributed version-control system written in Python.&lt;br /&gt;
|-&lt;br /&gt;
| [http://cython.org/ Cython]&lt;br /&gt;
| 0.12.1 (Python 2.6.2); 0.14.1 (Python 2.7.1)&lt;br /&gt;
| Cython is a compiler which compiles Python-like code files to C code and allows them to be easily called from Python.&lt;br /&gt;
|-&lt;br /&gt;
| [http://code.google.com/p/python-nose/ nose]&lt;br /&gt;
| 0.11.2 &lt;br /&gt;
| A unit-testing framework for python.&lt;br /&gt;
|- &lt;br /&gt;
| [http://pypi.python.org/pypi/setuptools setuptools]&lt;br /&gt;
| 0.6c11&lt;br /&gt;
| Enables easy installation of new python modules&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installing your own Python Modules ==&lt;br /&gt;
&lt;br /&gt;
Python provides an easy way for users to install the libraries they need in their home directories rather than having them installed system-wide. There are so many optional  packages for Python people could potentially want (see e.g. http://pypi.python.org/pypi), that we recommend users install these additional packages locally in their home directories.  This is almost certainly the easiest way to deal with the wide range of packages, ensure they're up to date, and ensure that users' package choices don't conflict. &lt;br /&gt;
&lt;br /&gt;
To install your own Python modules, follow the instructions below.   Where the instructions say &amp;lt;tt&amp;gt;python2.X&amp;lt;/tt&amp;gt;, type &amp;lt;tt&amp;gt;python2.6&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;python2.7&amp;lt;/tt&amp;gt; depending on the version of python you are using.&lt;br /&gt;
&lt;br /&gt;
* First, create a directory in your home directory, &amp;lt;tt&amp;gt;${HOME}/lib/python2.X/site-packages&amp;lt;/tt&amp;gt;, where the packages will go.&lt;br /&gt;
* Next, in your &amp;lt;tt&amp;gt;.bashrc&amp;lt;/tt&amp;gt;, *after* you &amp;lt;tt&amp;gt;module load python&amp;lt;/tt&amp;gt; and in the &amp;quot;GPC&amp;quot; section, add the following line:&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
export PYTHONPATH=${PYTHONPATH}:${HOME}/lib/python2.X/site-packages/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Re-load the modified .bashrc by typing &amp;lt;tt&amp;gt;source ~/.bashrc&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Now, if it's a standard python package and instructions say that you can use easy_intall to install it,&lt;br /&gt;
** install with the following command. where &amp;lt;tt&amp;gt;packagename&amp;lt;/tt&amp;gt; is the name of the package you are installing: &lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
easy_install --prefix=${HOME} -O1 [packagename]&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
** Continue doing this until all of the packages you need to install are successfully installed.&lt;br /&gt;
* If easy_install isn't an option for your package, and the installation instructions instead talk about downloading a file and using &amp;lt;tt&amp;gt;python setup.py install&amp;lt;/tt&amp;gt; then instead:&lt;br /&gt;
** Download the relevant files&lt;br /&gt;
** You will probably have to uncompress and untar them: &amp;lt;tt&amp;gt;tar -xzvf packagename.tgz&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;tar -xjvf packagename.bz2&amp;lt;/tt&amp;gt;.&lt;br /&gt;
** cd into the newly created directory, and run &lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
python setup.py install --prefix=${HOME}&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Now, the install process may have added some .egg files or directories to your path.  For each .egg directory, add that to your python path as well in your .bashrc, in the same place as you had updated PYTHONPATH before: eg,&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
export PYTHONPATH=${PYTHONPATH}:${HOME}/lib/python2.X/site-packages:${HOME}/lib/python2.X/site-packages/packagename1-x.y.z-yy2.X.egg:${HOME}/lib/python2.X/site-packages/packagename2-a.b.c-py2.X.egg&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* You should now be done!   Now, re-source your .bashrc and test your new python modules.&lt;br /&gt;
&lt;br /&gt;
* In order to keep your .bashrc relatively uncluttered, and to avoid potential conflicts among software modules, we recommend that users create their own  modules (for the &amp;quot;module&amp;quot; system, not specifically python modules).  &lt;br /&gt;
&lt;br /&gt;
[[Brian|Here]] is an example module for the [[Brian]] package, including instructions for the installation of the python [[Brian]] package itself.&lt;/div&gt;</summary>
		<author><name>Esalesde</name></author>
	</entry>
</feed>