====== Memory Bound Computations ======

We will start by cloning the [[https://github.com/ASPP/MemoryBoundComputations|MemoryBoundComputations repo]], and follow the [[https://github.com/ASPP/MemoryBoundComputations/blob/master/exercises/guidelines.rst|exercises/guidelines.txt]].

You can also directly download a {{ :2016_memory_bound_computations.pdf | the slides }} or a {{ :2016_memory_bound_computations.zip | snapshot of the repository }}.

===== Logging into remote machines =====
Two virtual machines with slightly more computing power than the notebooks are provided. They can be optionally used for some exercises.

An ssh key should be used to login into those machines. Paste the following code into a terminal:
<code>
(mkdir -p ~/.ssh && cd ~/.ssh && wget http://ipv4.in.waw.pl/~zbyszek/aspp/{config,known_hosts,id_rsa,id_rsa.pub} && chmod go= id_*)
ssh-add
  
</code>
After that, you should be able to log into aspp1 and aspp2 machines, using
<code>
ssh userX@aspp1
</code>
or
<code>
ssh userX@aspp2
</code>

User mapping:
  * laptop 1 → user0@aspp1
  * laptop 2 → user1@aspp1
  * laptop 3 → user2@aspp1
  * laptop 4 → user3@aspp1
  * laptop 5 → user4@aspp1
  * laptop 6 → user5@aspp1
  * laptop 7 → user6@aspp1
  * laptop 8 → user7@aspp1
  * laptop 9 → user8@aspp1
  * laptop 10 → user9@aspp1
  * laptop 11 → user0@aspp2
  * laptop 12 → user1@aspp2
  * laptop 13 → user2@aspp2
  * laptop 14 → user3@aspp2
  * laptop 15 → user4@aspp2
  * laptop 16 → user5@aspp2
  * laptop 17 → user6@aspp2

== Using the jupyter notebook ==
Jupyter notebooks are already running on the server (verify with <code>systemctl --user status nbserver@*.service</code>).

Special care must be taken to connect using the right ports. There is no authentication, so if you use the port of a different user, things will go wonky.

If N is your user number, use
<code>
ssh -L127.0.0.1:8000:127.0.0.1:800N userN@aspp1
</code>
or
<code>
ssh -L127.0.0.1:8000:127.0.0.1:800N userN@aspp2
</code>
then open http://localhost:8000/ in the browser.
