Commit 148eb447 authored by Robert Ricci's avatar Robert Ricci

Notes so far on reproducing Remy

parents
# Reproducing Remy in CloudLab
## Basic resources
* Start with Remy instructions here: http://web.mit.edu/remy/#reproduce
* Use the 'OnePC-Ubuntu14' profile, make sure it run it on the 'Utah Apt' cluster
## Getting Remy installed
*(Note: all of these steps executed on the CloudLab node)*
* `sudo apt-get install libprotobuf-dev`
**Failed, package not found**
* Searched for 'libprotobuf-devel ubuntu trusty' in Google, found nothing helpful
* `sudo apt-get update`
**Got an error, apt-get suggested that I run it again**
* `sudo apt-get update`
**Same error, decided to keep going anyway**
* `sudo apt-get install libprotobuf-dev`
**Seems to have worked this time**
* `cd /local`
* `sudo chmod a+rwx .`
* `wget http://web.mit.edu/remy/remy-reproduce-1.0.tar.gz`
* `tar zxvf remy-reproduce-1.0.tar.gz`
* `cd remy-reproduce-1.0`
* `./install`
Failed with:
In file included from /local/remy-reproduce-1.0/tk8.5.10/unix/../generic/tkInt.h:19:0,
from /local/remy-reproduce-1.0/tk8.5.10/unix/../generic/tk3d.c:14:
/local/remy-reproduce-1.0/tk8.5.10/unix/../generic/tk.h:76:23: fatal error: X11/Xlib.h: No such file or directory
# include <X11/Xlib.h>
^
compilation terminated.
make: *** [tk3d.o] Error 1
tk8.5.10 make failed! Exiting ...
* `sudo apt-get install apt-file`
* `sudo apt-file update`
* `apt-file search Xlib.h`
**The libx11-dev package looks like the most likely candidate**
* `sudo apt-get install libx11-dev`
* `./install`
**Seems to be re-doing the entire build process, ugh, this might take a while**
Fails with:
checking for X11 header files
can't find X includes
otcl-1.14 configuration failed! Exiting ...
Please check http://www.isi.edu/nsnam/ns/ns-problems.html
for common problems and bug fixes.
* Google for `ubuntu trusty x11 header files`
**Looks like I want the xorg-dev package**
* `sudo apt-get install xorg-dev`
* Look in `install` script to see if I can easily re-start the build partway through. Nope, looks way more complicated than I want to figure out
* `./install`
Died with a ton of errors, the relevant one might be:
tcp/remy/dna.pb.h:17:2: error: #error This file was generated by an older version of protoc which is
#error This file was generated by an older version of protoc which is
^
tcp/remy/dna.pb.h:18:2: error: #error incompatible with your Protocol Buffer headers. Please
#error incompatible with your Protocol Buffer headers. Please
^
tcp/remy/dna.pb.h:19:2: error: #error regenerate this file with a newer version of protoc.
#error regenerate this file with a newer version of protoc.
^
* `find . -name dna.pb.h`
In `./ns-2.35/tcp/remy/dna.pb.h`
* `cd ns-2.35/tcp/remy/`
* I assume `dna.proto` must be the file `dna.pb.h` is compiled from?
* `protoc dna.proto`
**Fails with `The program 'protoc' is currently not installed.`**
* `sudo apt-get install protobuf-compiler`
* `protoc dna.proto`
**Fails with `Missing output directives.`**
* Google for `Missing output directives. protoc`. Get nothing very helpful
* `man protoc` Suggests that maybe I want to use `--cpp_out=OUT_DIR`
* `protoc --cpp_out=. dna.proto`
**This seems to work**
* Try `make` in this directory to see if I can build just from this point, argh, no.
* `cd ../../`
* `make`
**This seems to start building from the same point, whew**
Fails; lots of warnings, this seems to be the error:
In file included from /usr/include/c++/4.8/random:38:0,
from /usr/include/c++/4.8/bits/stl_algo.h:65,
from /usr/include/c++/4.8/algorithm:62,
from /usr/include/google/protobuf/repeated_field.h:49,
from tcp/remy/dna.pb.h:24,
from tcp/remy/memory.hh:8,
from tcp/remy/memoryrange.hh:6,
from tcp/remy/whisker.hh:6,
from tcp/remy/whiskertree.hh:4,
from tcp/tcp-rational.h:17,
from tcp/tcp-rational.cc:15:
/usr/include/c++/4.8/cmath:99:16: error: ‘template<class _Tp> constexpr typename __gnu_cxx::__enable_if<std::__is_integer<_Tp>::__value, double>::__type std::abs(_Tp)’ conflicts with previous using declaration ‘template<class Type> Type abs(Type)’
abs(_Tp __x)
^
* `cd tcp/`
* Edit `tcp-rational.cc` - no mention of abs()
* Get tired of not having vim, `sudo apt-get install vim`
* Edit `tcp-rational.h` - nothing about abs() in here either
* `grep abs *.h` - get lots of useless stuff, try ` grep abs *.h | grep -v tabs`. Looks like offender is in `template.h`
* Try commenting out `abs()` template in `template.h` (lines 86--90)
* `cd ../`
* `make`
**Yay, seems to get farther!**
**Got excited to soon, now compile fails when it tries to use `abs()`**
* Edit `template.h` to rename `abs()` to `generic_abs()`, edit `sctp/sctp.cc` to call `generic_abs()` on line 2311
* `make`
**Yay, seems to compile fully! Time to go back to top-level install**
* `cd ../`
* `./install`
**Hooray, finally workd, it seems!**
Important(?) message:
Please put /local/remy-reproduce-1.0/bin:/local/remy-reproduce-1.0/tcl8.5.10/unix:/local/remy-reproduce-1.0/tk8.5.10/unix
into your PATH environment; so that you'll be able to run itm/tclsh/wish/xgraph.
IMPORTANT NOTICES:
(1) You MUST put /local/remy-reproduce-1.0/otcl-1.14, /local/remy-reproduce-1.0/lib,
into your LD_LIBRARY_PATH environment variable.
If it complains about X libraries, add path to your X libraries
into LD_LIBRARY_PATH.
If you are using csh, you can set it like:
setenv LD_LIBRARY_PATH <paths>
If you are using sh, you can set it like:
export LD_LIBRARY_PATH=<paths>
(2) You MUST put /local/remy-reproduce-1.0/tcl8.5.10/library into your TCL_LIBRARY environmental
variable. Otherwise ns/nam will complain during startup.
After these steps, you can now run the ns validation suite with
cd ns-2.35; ./validate
For trouble shooting, please first read ns problems page
http://www.isi.edu/nsnam/ns/ns-problems.html. Also search the ns mailing list archive
for related posts.
## Make a tarall of the build and copy it off just in case
* `cd /local`
* `tar czvf remy-built.tar.gz remy-reproduce-1.0`
* From my latop, `scp` the file
## Profile
* Made a new profile called RemyCC
* Created a new instance
## Try to reproduce results
Back to the instructions on the Remy webpage
* `cd /local/remy-reproduce-1.0/ns-2.35/tcl/ex/congctrl/`
* `./run-figure4-parallel`
**Error returned**
Traceback (most recent call last):
ImportErrorimport matplotlib
File "runremy.py", line 5, in <module>
: File "runremy.py", line 5, in <module>
ImportError: No module named matplotlib import matplotlib
import matplotlib
ImportErrorNo module named matplotlib: No module named matplotlib
ImportError:
No module named matplotlib
* `apt-cache search matplotlib`
* `sudo apt-get install python-matplotlib`
* `./run-figure4-parallel`
**Something seems to be happening in the background. It's not clear
how I will know when it's done. I probably should have started it in screen or tmux.**
Remy instructions tell me that this will take a long time, but they give me no idea how long that will be or how I can tell when it's done. For now I am trying to guess by watching with `top`.
Remy instructions say that I can start generating graphs after a few are done, so I'll try that now
* `cd ../graphing-scripts`
* `./graphmaker ../congctrl/results/`
**Complains about not having inkscape**
* `sudo apt-get install inkscape`
* `./graphmaker ../congctrl/results/`
**Complains `Found ../congctrl/results/graphdir directory from previous run. This needs to be deleted.`**
* `rm -rf ../congctrl/results/graphdir`
* `./graphmaker ../congctrl/results/`
**Complains `ellipsemaker: command not found`**
* Edited graphmaker to print the path to ellipsemaker before running it
* `rm -rf ../congctrl/results/graphdir`
* `./graphmaker ../congctrl/results/`
**Now works even though I didn't actually change the path to ellipsemaker**
**But complains about not having gnuplot**
* `sudo apt-get install gnuplot`
* `rm -rf ../congctrl/results/graphdir`
* `./graphmaker ../congctrl/results/`
**Success, it looks like**
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment