4.1 Installing the End User's Version

After downloading the two tar files, `pdp++_version_bin_CPU.tar.gz' and `pdp++_version_ext.tar.gz', you need to decide where to locate the files. It is recommended that you put them in `/usr/local/pdp++', but they can be put anywhere. However, the PDPDIR environmental variable must then be set for all users to the location it is actually installed in. In addition if your CPU supports shared libraries (all unix versions, including LINUX, IBMaix, SUN4, HP800, SGI), you will need to insure that the LD_LIBRARY_PATH environment variable includes the path PDPDIR/lib/CPU where PDPDIR is the location of the pdp++ distribution, and CPU is your system type as described above (more details on this below). The following will assume that you are installing in `/usr/local/pdp++'.

Note: all of the PDP++ software is distributed in the gnu `gzip' format, and it also uses gzip to automatically compress and decompress the network, project, and environment files so that they take up less space on your disk. Thus, your system must have `gzip' installed before proceeding. It can be obtained from the GNU ftp server (`gnudist.gnu.org') or one of its mirrors, and is typically installed on most modern systems anyway.

Go to the `/usr/local' directory, and issue the following command:

  gzip -dc <tarfile> | tar -xf -

or, on Linux or other systems having a gnutar program

  tar -xzf <tarfile>

where <tarfile> is the name of the tar archive file. Note that the tar files will create the pdp++ directory, or load into it if it already exists. Thus, if you have an old version of the software, be sure to rename its directory something else before loading the new files.

LINUX users: There is a special `.rpm' file that will install the LINUX binaries and ext tar contents, including making links to the binaries in /usr/local/bin, and installing the libIV.so library (and links) in /usr/local/lib, and all of the ext-tra stuff in /usr/local/pdp++. To install this file, you need to be super-user, and then execute the following command:

  rpm -Uvh pdp++-binext-VERSION.i386.rpm

Note that the PDP++ specific libraires are still installed in PDPDIR/lib/LINUX, so you still need to set the LD_LIBRARY_PATH to include this path.

Windows users (CYGWIN): There is a special `.exe' file that is an auto-installing executable distribution of both the bin and ext tar files described above. This should be used to install under windows. If you should install it in a location other than the default `C:\PDP++' directory, you should add a set PDPDIR=path in the `C:\autoexec.bat' file.

All further references to file names, unless otherwise stated, assume that you are in the PDPDIR directory (e.g., `/usr/local/pdp++').

The files will get loaded into the following directories:

`bin'
binaries (executable files) go here
`config'
configuration (for Makefile) and some standard init files are found here
`css'
contains include files for commonly-used css scripts and some additional documentation, plus some demo script files
`defaults'
contains default configuration files for the various executables (see the manual for more information).
`demo'
contains demonstrations of various aspects of the PDP++ software.
`manual'
contains the manual, which is in texinfo format and has been made into a .ps, emacs .info, and html files.
`src'
contains the source code for the software.
`lib'
libraries (for dynamically linked executables) go here
`interviews/lib'
InterViews toolkit libraries (for dynamically linked executables) go here.

The binaries will get unloaded into `bin/CPU', where CPU is the system name as described above. The binaries are:

`bp++'
The backpropagation executable (@xref{bp}).
`cs++'
The constraint satisfaction executable (@xref{cs}).
`so++'
The self-organizing learning executable (@xref{so}).
`bpso++'
A combination of backpropagation and self-organization algorithms, so hybrid networks can be built.
`leabra++'
The Leabra algorithm developed by O'Reilly, which incorporates Hebbian and error-driven learning, together with a k-Winners-Take-All competitive activation function, into a single coherent framework, which is biologically based. See "Computational Explorations in Cognitive Neuroscience: Understanding the Mind by Simulating the Brain", by O'Reilly and Munakata, MIT Press, 2000 (September) and associated simulations section 3 Introduction to TypeAccess/CSS for details.
`maketa'
The type-scanner used for programming the software. You can read about it in section 6 Programming with TypeAccess.
`css'
A stand-alone version of the CSS script language system. It can be used as an interpreted C++ language system for any number of tasks.

You should either add the path to these binaries to your standard path, or make symbolic links to these files in `/usr/local/bin' or some similar place which most user's will have on their path already.

4.2 Configuring the Libraries

IMPORTANT: Most of the binaries are dynamically linked, which means that the `pdp++_version_bin_CPU.tar.gz' file installed some dynamic libraries in the `PDPDIR/lib/CPU' directory and in the `PDPDIR/interviews/lib/CPU' directory. When one of the PDP++ programs is run, it will need to know where to find these dynamic libraries. Thus you must set the LD_LIBRARY_PATH environmental variable (using setenv under csh/tcsh) to point to both of these locations. For example, under LINUX with the standard PDPDIR:

setenv LD_LIBRARY_PATH /usr/local/pdp++/lib/LINUX:/usr/local/pdp++/interviews/lib/LINUX

It is a good idea to put this setting in your initialization file for your shell (i.e. `~/.cshrc').

It might be easier, especially if you want to use idraw or other programs available under interviews, to copy the `PDPDIR/interviews/lib/CPU/libIV.so*' (or .sl for HP800) file into your `/usr/local/lib' or somewhere else that is already on your dynamic linker's path.

ADDITIONAL STEPS FOR libIV: The interviews library in `PDPDIR/interviews/lib/CPU' is called libIV.so.3.0.3 (or possibly other numbers instead of 3.0.3), but on several unix systems (including LINUX, SGI, SUN4) the linker also wants to see a libIV.so.3 and a libIV.so as different names for this same file. Therefore, you need to do the following in whatever directory you end up installing libIV.so.3.0.3 (even if you keep it in the original location, you need to do this extra step):

ln -s libIV.so.3.0.3 libIV.so.3
ln -s libIV.so.3.0.3 libIV.so

(replace 3.0.3 and .3 with the appropriate numbers for the libIV file you actually have). Note that the .rpm install under LINUX does this automatically.

4.3 Manual

The manual is distributed in several versions, including a postscript file that can be printed out for hard-copy, a set of "info" files that can be installed in your standard info file location and added to your `dir' file for reading info files in gnu emacs and other programs, and a directory called `html' which contains a large number of `.html' files that can be read with `Netscape', `Mosaic' or some other WWW program. Point your program at `pdp-user_1.html' for the chapter-level summary, or `pdp-user_toc.html' for the detailed table of contents.

4.3.1 Help Viewer Configuration

There is now a Help menu item on all of the objects (under the Object menu), which automatically pulls up the appropriate section of the `html' version of the manual, using `netscape' by default.

Under Windows (CYGWIN), the default help command is setup to use `C:/Program Files/Internet Explorer/iexplorer.exe' -- if you prefer netscape or any other HTML browser, this should be changed to the full path to that executable.

These defaults can be changed in the Settings menu of the PDP++Root object, see @xref{proj-defaults} and section 7.17 Settings Affecting GUI Behavior for details.

The latest version of the manual is also available on-line from:

  http://www.cnbc.cmu.edu/PDP++/PDP++.html

4.4 MS Windows Configuration

4.4.1 Memory Configuration

The PDP++ executables are compiled using an environment called cygwin developed by Cygnus Solutions (now owned by Red Hat Software). The default cygwin configuration has an upper limit of 128MB, which should work for most simulations. However, you might want to increase this limit if you are exploring larger simulations.

Open regedit (or regedt32) and find the key HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\

If this does not exist, you must create a new Key called Cygnus Solutions, and then another within it called Cygwin.

Then, create a new DWORD value under this key called "heap_chunk_in_mb" that contains the maximum amount of memory (in Mb) your application needs (watch the hex/decimal toggle -- you'll probably want to set it to decimal). For example if you wanted to set the memory limit to 256Mb, just enter 256. Exit and restart all cygwin applications (e.g., pdp++).

4.4.2 Taskbar Configuration

Because the simulator uses many windows, the windows taskbar often does not adequetly display the names of the windows. This can be remediated by dragging the top of the bar up, allowing more room for each icon. M. Frank Norman has the following more advanced suggestion:

A better approach is to grab the taskbar, drag it to the right edge of the screen, drag the left edge to widen it, and then set it to auto hide (right click on the taskbar, and select Properties to expose this option, or go to the Start menu/Settings/Taskbar). When all this has been done, the window list can be exposed either by bringing the pointer to the right edge of the screen, or by pressing the Windows key twice.

4.5 Other Configuration

See @xref{proj-defaults} for instructions on how to setup customized startup files if you want to change some of the default properties of the system.

Happy simulating!