Computer Science Department FAQ


Welcome to the Computer Science Department's network FAQ (a synopsis of Frequently Asked Questions). It addresses questions regularly asked of the CS systems staff and provides a summary of useful information regarding the Department's computing facilities.

In addition to this FAQ, important announcements such as system or network down-time are sent to your CSU email address. Check your mail account on a regular basis to stay up-to-date with current system operations.

1. Getting Help

2. Hours of Operation

3. System Information

4. User Account Information

5. File Storage, Backup, Restoration, and Transfer

6. Disk Usage

7. The X Window System

8. Printing

9. Wireless and Remote Access

10. Mail

11. WWW

12. Windows

13. Mac OS

14. Linux

15. Resource Intensive Jobs

16. Eclipse

17. Miscellaneous Applications


1. Getting Help

1.00) Where can I find a copy of this faq file?

This file is available from within the department as ~info/faq.

To access it from the web, visit http://www.cs.colostate.edu/~info/faq.html


1.01) I know almost nothing about Unix. Where do I start?

A variety of books have been published on the basics of the Unix operating system. These can be obtained from your favorite bookstore. Additionally, some great tutorials can be found by searching google for something like "linux tutorial" or "tcsh tutorial".

The department also offers cs155, which is a good way to learn Unix in a classroom environment.


1.02) Where can I find in-depth systems reference materials?

The Unix "man" command provides access to the typical on-line Unix reference manual set on all our systems. More complete reference manual sets for most of our supported operating systems and various other technical books and manuals are available for perusal in the systems offices (rooms 478, 472, and 474).

Supplementary documents for various software packages found in /usr/local are often embedded in the source trees for the given software package. For instance, /s/bach/i/src/emacs contains supplementary documents for emacs.


1.03) How can I get help?

If you are having trouble understanding how to use the systems, there is a lab-op available to help in each of the first floor labs.

If your troubles are due to hardware or software failures in the systems or network, you should file a trouble report at http://www.cs.colostate.edu/cgi-bin/trouble.pl . The program will prompt you for all the information required by the systems folks to solve the problem. If things are so messed up that you cannot log in or get a browser up, report the problem to a lab-op or locate a system administrator as described below.


1.04) How can I locate a system/network administrator?

The systems people are located on the fourth floor of the Computer Science Building, on the south side, in rooms 478, 472, and 474. You can also reach them by e-mailing sna@cs.colostate.edu, or by telephone at 491-5305. Faculty may obtain the administrators' home phone numbers from the file ~info/emergency.


2. Hours of Operation

2.01) What are the systems' and network's hours of operation?

Generally, we try to keep all systems up all the time. There is no regularly scheduled down time. However, sometimes we need to take systems or even the entire network down for maintenance. We try to schedule this at non- disruptive times. Down times are announced via email to your CSU address.


2.02) What are the Computer Science laboratories hours of operation?

The lab in room 120 is available 24-hours a day and can be accessed by computer science majors with a valid student id card. Hours are posted posted at the front of the other labs. Remote facilities are available at all times outside of scheduled maintenance.


3. System Information

3.01) What types of computers are available on the CS subnet?

A complete list of CS machines is given in the file ~info/machines. All users may log onto any machine in the file ~info/machines that is listed as general use. Additionally, researchers, instructors, and graduate students may also run jobs on most of the machines designated as r/t (research/teaching) machines, except for a few machines which won't allow logins because they are dedicated exclusively to particular research projects. (Students are also advised to seek advance permission before logging into machines in Department faculty offices.)


3.02) How do I determine which machines are not being used or have the smallest load (and hence the best performance)?

The "rup" command returns the current load average for most CS machines. For further information consult the rup(1) man page.


3.03) May I reboot the lab machines?

Please, do not reboot the lab machines as other users may be logged in and working remotely. Other users may also be running background jobs or upgrades may be in process on the machine. If a lab machine is not responsive, please tell the labop or contact the system administrators.


3.04) Where is a safe place to store my files?

User files and home directories are shared among all department Unix systems via NFS (the Network File System protocol) and NIS (the Network Information System protocol). Put more simply, no matter which Unix machine you log into, you will find your same home directory and same set of files. User files are all located in directories of the form, /s/SERVER/DISK/CATEGORY/NAME, where

s is a literal "s," a parent common to all servers,
SERVER denotes the machine acting as file server for the directory,
DISK denotes a unique disk partition [a-z] on the server,
CATEGORY connotes the type of directory, such as "fac" for faculty, "grad" for graduate, "under" for undergraduate, or "proj" for research project,
NAME is the name of the directory (the same as login name in the case of home directories).

Directories having a CATEGORY of "nobackup," or "tmp" are not backed up and are available on a "use at your own risk" basis. All other categories are backed up nightly to tape.

You can also map these directories from Windows PCs. (See section 11 below.)


3.05) What are the naming conventions used on the CS subnet?

Logical groups of similar machines in each lab share a common naming theme. Computers are named after musical composers, mountains , US capital cities, trout-fishing streams, fruits, nuts, vegetables or just about anything you can think of. For a complete list see ~info/machines. Printers are named after musical instruments (e.g., banjo).

Internet addresses ending with "cs.colostate.edu" are all components of our subnet, for example mozart.cs.colostate.edu. The "cs.colostate.edu" suffix can usually be omitted on references local to our subnet.


3.06) What software is available?

A (partial) list of software packages is given in the file ~info/software. Most locally supported software is installed in the /usr/local directory on each system. One can also get an idea of what is available by browsing both this directory, and /usr/local/bin.

On Linux machines, a list of installed software packages can be obtained with the following command:

rpm -qa

To get more information about a package, simply execute:

rpm -qi PACKAGE-NAME

On Solaris machines, a list of installed software packages can be obtained with the following command

pkginfo -l


3.07) Where can I find the source code for the public domain software installed on our network?

Systems source code is generally stored in trees rooted at /s/*/*/src. Source trees for many of the utilities found in /usr/local are located in /s/bach/i/src. In general, the source directories are named after their binary counterparts.


3.08) What is our policy regarding system software upgrades?

We try to keep up with changes in operating system, third party, and public domain software as they are released. Our policy is to support the latest releases in a timely manner. In general we support only the latest version, as we do not have the resources to support multiple older versions for compatibility's sake. However, in cases where a software upgrade is predicted to cause trauma to the user community, we will run the new version concurrent to the old version for a limited time. All other routine upgrades are announced after the fact.


3.09) How can I determine the OS version my machine is running?

On most machines, use the following command: uname -a


4. User Account Information

4.01) How do I change my password?

The Unix and Windows platforms have distinct password domains. This means that you will need to change your passwords separately for Unix and Windows:

In Unix, you can change your password using the "passwd" command on any department linux machine. The command assists you in choosing a secure password, thereby enhancing security for everybody. (Also see 4.08)

In Windows, press control-alt-delete and click "Change Password."


4.02) How can I change my default shell?

Send mail to sna@cs.colostate.edu to request that your shell be changed. The change cannot be performed with chsh because of incompatibilities among various machines' implementation of the NIS protocol. The available shells are listed below:


4.03) How can I change my name in the finger information?

Send mail to sna@cs.colostate.edu to request that your finger information be changed. The change cannot be performed with chfn because of incompatibilities among various machines' implementation of the NIS protocol.


4.04) Where can I find a set of startup (or dot) files (.login, .cshrc, .xsession, etc) which are known to work?

The default startup files (which are provided in the home directories of newly created accounts) may be copied from ~info/dot.files. These files provide a basic template which works in our environment, and may serve as a starting point for your own individual modifications.


4.05) How long may I keep my account?

Generally speaking, your account will remain active as long as you are either enrolled as a Computer Science major or as another major taking CS classes. Other student accounts are removed twice annually, at the beginning of the Fall and Spring semesters. E-mail will be sent to accounts about to expire, several weeks before they are disabled.


4.06) Is it ok to let my friends use my account?

No. Your account is for your use only. Accounts used by anyone other than the designated user may be suspended or revoked.


4.07) Why don't telnet or rlogin work?

telnet and rlogin are insecure. We've replaced them with ssh(1) and slogin(1).


4.08) How can I make ssh/slogin work across CS department machines without requiring a password each time?

Create a public/private key pair using the following commands, and leave the pass-phrase empty when ssh-keygen prompts for it:

cd ~/.ssh
ssh-keygen -t rsa
cat id_rsa.pub >> authorized_keys

WARNING: If you change your password because you think your account has been compromised, you should also run these commands again. (The attacker may have stolen your ssh keys.)

For further information see the man page for ssh-keygen.


4.09) Where can I get an ssh client for my computer at home?

The following are popular free versions of the SSH protocol suite:


5. File Storage, Backup, Restoration, and Transfer

5.01) Is it safe to store my data on local workstation hard-drives?

No! Workstation hard drives should be regarded as temporary work space only. PC disks are scrubbed periodically without warning.

Store your data in your Unix home directory, a thumb drive, or CD/DVD. For information regarding CD/DVD burning, please see our media burning FAQ.


5.02) What is the backup policy?

The CS Department systems group performs daily backups on all user-data stored on the three Department file-servers: bach, chopin, and parsons. Backups are performed every day in the very early hours of the morning, This means that if your data is lost on a given day, we can probably restore it to its state at midnight the day before.

WE DO NOT BACK UP DESK-TOP SYSTEMS. With desk-top Unix systems this is not a concern, because the network is architected such that user files are automatically stored on the servers. However, Microsoft systems (PCs) put some burden of data-integrity on the user. When using a PC, it is important to take one of three steps to make sure your data is backed up:

The tape-cycle for daily backups covers approximately the most recent three months. Additionally, an end-of-semester archive is performed three times a year, at the end of each semester, for long-term file recovery.


5.03) I've accidentally deleted a file. How can I get it back?

Backups are normally run each morning beginning at 1:00am. If the file was not on the system at that time, we CANNOT recover the file. Recovered files will be in the state they were in at the time of last backup. To request recovery of a file, run the trouble program, which will prompt you for all the information necessary to recover the file.

Note, the backup/recovery service is only for recovery of files in an emergency situation. It is not to be relied on as an archival service. There is no guarantee that your files will be recoverable.


5.04) How can I download/upload files between a remote machine and a CS department Unix machine?

Use secure FTP, which is included with any SSH client. Either type

sftp machine.cs.colostate.edu

from your UNIX/Linux machine, or use the Secure File Transfer feature included with your Windows SSH client (both available free for academic use from http://www.ssh.com).

Traditional FTP has been disabled on all except one machine on the Computer Science subnet and is not accessible from off campus. If you have to use FTP, then connect to

ftp.cs.colostate.edu

Alternatively, you can do one of the following:


6. Disk Usage

6.01) What is the amount of disk space I'm allocated to use?

Unless a special allocation has been approved for you through a Computer Science professor, allocations are as follows:

undergraduates: 5000 Mbytes
graduates: 8000 Mbytes

Please also note that total quota allocations exceed the size(s) of the disk(s). This means that if everybody uses their entire allocation, the disk will fill up. So please try to stay well below your personal allocation.

You will receive daily warning messages if you exceed your allocation. Failure to remedy the situation after several days of repeated warnings will result in the suspension of your computer account.


6.02) How do I determine my total disk usage?

Enter the following commands:

cd; du -sk .

This du command returns an integer value representing the total number of blocks you are currently using in your home directory. The -k option requests output in 1024 byte blocks instead of the default of 512 byte blocks.


6.03) How do I find my largest subdirectories or files?

This command lists the usage for each of your subdirectories in 1K-byte blocks:

du -sk * .??* | sort -rn | more

First, run this command in the top level of your home directory. Then cd down into problem areas and run the same command again, to hone in on the problem directories or files.

Note: The Gnome Trash Can, .mozilla and .eclipse are often the culprits.


6.04) How do I empty my Gnome Trash can?

Right-click on the trashcan symbol on the far left of your Desktop. Select 'Empty Trash.'


6.05) How do I clean out my .mozilla/firefox directory?

First, bring up firefox. Go into edit/preferences/advanced and reduce the disk cache size. 10 or 15 megabytes is probably sufficient.

Next, go into edit/preferences/privacy and reduce your browsing history. The default is 90 days but 14 or 30 days will save a fair bit of space.

Next, go to tools/"clear recent history" check all boxes and click "Clear Now".

Finally, you may want to clean up the various SQLite databases that firefox maintains. To do this, first exit all firefox windows. WARNING: if you do not exit all firefox windows the following may corrupt your firefox configuration. Next, run the following command from a Linux Machine.

find ~/.mozilla/firefox -type f -name '*.sqlite' -exec sqlite3 {} VACUUM \;


6.06) How do I clean up my Google Chrome data?

To clean up Chrome, click the wrench icon on the far right of the toolbar and choose "Preferences" from the drop-down menu. On the "Under the Hood" tab, click the "Clear browsing data..." button and choose the data you want cleared. Generally the cache takes up the most disk space.

Currently Chrome does not offer an easy way to limit the amount of cache it stores on disk. To remedy this, you will need to run Chrome from a terminal or custom Gnome shortcut and pass the following options:

google-chrome --media-cache-size=15728640 --disk-cache-size=15728640

Where 5242880 represents the size of Chrome's cache in bytes. 5242880 (5 MB) should be reasonable, but you can tweak to your liking.


6.07) How do I clean out my .eclipse directory?

Eclipse regularly rolls its configuration files over into a new directory named something like ~/.eclipse/org.eclipse.platform_*

It should be safe to remove all but the latest of these directories. To do this, run the following script:

/usr/local/bin/clean_eclipse


6.08) How do I reduce the amount of disk space used by thunderbird?

The thunderbird mail client stores messages and indices locally in your ~/.thunderbird directory in order to improve performance. The following steps will reduce the amount of information stored locally.

Thunderbird also does not actually free the disk space for messages that your may have deleted until your directories are "compacted" and indices are rebuilt.


6.09) How can I compress files that I use only rarely?

gzip can be used to compress/uncompress a file that is used rarely.

gzip --best filename
gunzip filename.gz

You may also want to check the man pages for the gzip and tar commands.


6.10) I have a large amount of data in my directory which I'd like to archive to tape. How do I go about doing this?

See the systems folks in room 478.


7. The X Window System

7.01) What window managers are supported on the CS machines?

We support the vendors' primary window manager on each hardware platform. Hence, the following window managers are supported on their respective platforms:

A variety of other window managers are also available on most machines, on a "use at your own risk" basis.


7.02) Is it ok to lock my screen?

Generally speaking, Computer Science Department machines are shared resources. It is Department policy that they not be locked for exclusive use for long periods of time. They may be locked for brief periods (of five minutes or so) if you are called away briefly from your work-station, for instance.


7.03) How do I prevent others from displaying to or reading from my X session?

Generally speaking user-based authorization -- see xauth(1) -- is more secure and preferable to host-based -- see xhost(1). Because your home directory is shared by all machines on our subnet, most of the setup for user-based authorization occurs automatically. If you are running your X session via anything other than the xinit command, you (and only you) are automatically authorized to display to your X display from an X client on any machine. No setup is required. If you are running X via xinit, you must do the following:

1) Before running xinit, create .Xauthority records manually using the following commands:

xauth add ${HOST}/unix:0 . $KEY 
xauth add ${HOST}:0 . $KEY

where ${HOST} is the name of the host on which you are running and $KEY is a difficult to guess key composed of an even number of 32 or fewer hexadecimal digits.

2) run xinit using the following command:

xinit -- /usr/bin/X11/X -auth $HOME/.Xauthority

7.04) How can I remotely run X11 applications on CS department machines, from my machine at home?

If you have an Xserver running at home you can simply configure an ssh session to tunnel the X11 protocol, and start the remote X clients from the ssh session.

ssh -XC machine.cs.colostate.edu

If you don't have an X server, another option is to use VNC. For information on how to run VNC, see http://www.cs.colostate.edu/~info/vnc.txt.


7.05) How do I reset XFCE desktop settings to default?

Log out and start XFCE dekstop again. Select default settings option.


8. Printing

8.00) How do I print?

All printers are available via the system V command set (lp, lpstat, etc).

To print a file, type:

lp -d PRINTER-NAME FILE-NAME

If you are printing a large file and it is not world readable, you may have to type this:

lp -c -d PRINTER-NAME FILE-NAME

The -c option allows lp to make a copy of the file.


8.01) What printers are available?

See ~info/printers.


8.02) May I print as much output as I like?

No. Printer paper, toner, and maintenance represent a substantial expense to the CS Department. So far we have managed to keep this expense within bounds through voluntary conservation. There will continue to be no hard limits on printing as long as people continue not to abuse the privilege. Here are some suggestions to minimize wasted paper:

The soft limits for undergraduates are 35 pages per print job and 75 pages per week. These are limits of excess, not allocations. You should try to keep your printing well below these limits.

CS Department printers are for bona fide department-related work only.


8.03) How do I print a Unix man (manual) page?

Use the following command:

man -t MANPAGE-NAME | lpr -P PRINTER

On Suns using CDE, you can print man pages from the Man Page Viewer. You can find this in the Desktop_Apps folder.


8.04) How do I cancel my print job?

To cancel you print job, you need to check the job's status in order to get the job number.

To check on the status of your print job, type 'lpstat PRINTER-NAME'. You will get output that looks something like this:

lpstat banjo
banjo-195              root               367   Apr 06 08:27 on banjo

To cancel your job, type cancel JOB. To cancel the job above, one would type:

cancel banjo-195
request "banjo-195" cancelled

8.05) How do I print single-sided output?

By default, double-sided (duplex) printers use both sides of the paper. Since single-sided printing doubles our paper costs, it should only be selected when absolutely necessary. Single-sided printing may be selected as described below.

On Unix, use the -o sides=one-sided option with the lpr command. For instance:

lpr -Pbanjo -o sides=one-sided myfile

On Windows, go into the "Properties/Advanced/Printing Defaults" menu and select "Flip on Short Edge" or "Flip on Long Edge."


8.06) How do I set my default printer on Linux?

Setting the default printer is done as follows:

lpoptions -d <printer_name>

9. Wireless and Remote Access

9.01) How do I connect to the CS Department's wireless network?

The CS Department's wireless network is configured as part of the campus wireless network. So once your machine is configured to work on the department's wireless, it should work most anywhere on campus. For further information on setting up wireless access, consult the ACNS Wireless Web Page.

Note: wireless authentication is based on your CSU EID, not your CS login.


9.02) If I'm connecting from an off-campus ISP, is there anything special I should do?

Traveling personnel and those who use outside ISPs (e.g., cable-modems, AOL, and Earthlink) for remote access can benefit from the "Secure Gateway" VPN client. The client will ensure a secure connection between your computer and CSU. It will also authenticate your connection to use certain on-campus services, such as SMTP. For further information, see the "Secure Gateway" section of the ACNS "Get Connected" web page.


10. Mail

10.01)What is my CSU email address, where can I read my mail, and how do I configure my mail client?

See the CSU Academic Information Services Email Account Information webpage.


11. WWW

11.01) How do I set up a personal World Wide Web (WWW) home page?

First, you must create a public_html subdirectory in your home folder with permissions of 711:

cd
mkdir public_html
chmod 711 ./public_html

Now anything placed under this directory will be accessible from the web using the ~ operator. For example,

http://www.cs.colostate.edu/~USERNAME/file

Would map to ~/public_html/file. If you are running into "Access Forbidden" errors, you probably have a permissions problem. In general, permissions should be:

Note that PHP scripts do not need to be world-readable and are run using the permissions of their owner. This prevents other CS users from being able to see your PHP code.

Our web server also looks for files named index.html, index.php, etc. to determine the default page to be displayed when accessing a directory from the web. If you have an index.html in your ~/public_html/ directory, it will be displayed when visiting http://www.cs.colostate.edu/~USERNAME


11.02) How do I configure CGI scripts to work with my home page?

All cgi scripts in user home directories are run using the suEXEC wrapper. This causes cgi scripts to run with the owner's permissions. The scripts must also reside under the following path to be recognized as cgi scripts

~/public_html/cgi-bin

and are referenced as

http://www.cs.colostate.edu/~username/cgi-bin/scriptname

cgi scripts do NOT need to have permission bits set in the group or other fields.

For further information, see the suEXEC documentation.


11.03) How do I use PHP on my home page?

All php scripts in user home directories are run using the suPHP wrapper. This causes php scripts to run with the owner's permissions.

php scripts do NOT need to have permission bits set in the group or other fields.

suPHP requires that all php sessions be given a name that is unique to your page. A quick and easy to ensure that that your session names do not conflict is to base the session name on the directory that the script resides in

session_name(substr(str_replace("/", "_", getcwd()), 1, 512));

For further information, see the suPHP documentation.


11.04) How do I password-protect some of my web pages?

For information on how to set up password protection for your web-pages, log onto a department Unix machine and consult the text-file, ~info/htpasswd


12. Windows

12.01) How do I access my Unix home directory files from a CS department Windows machine?

To map your Unix directory from a department Windows machine (i.e., a machine in the cs-win domain), right click on "This PC", then select "Map network drive". Enter a path of "\\unix\LOGIN", where LOGIN is your Unix login.


12.02) How do I access my Unix home directory files from my Windows machine at home?

Mapping your Unix directory from home involves a little more configuration work. For further information read the unix text-file ~info/offsite-samba.


12.03) How do I log in to my Microsoft Imagine account?

To log in, visit the Microsoft Imagine page. Your login is "your_eid_name.cs.colostate.edu". Login/password info is emailed to every student at the beginning of each semester. If you don't know or didn't receive your password, click on "Forgot username or password" just below "Sign In" on the above Microsoft Imagine link. Note: This Microsoft Imagine store is only for CS Majors and students taking CS classes. Do not attempt to register for an account; accounts can only be created by the admin.


12.04) How can I best defend my machine from viruses?

Every Windows machine should run a virus scanner. Windows 10 comes with Windows Defender.

CSU used to provide antivirus software. Now it is up to each individual user to make a choice on how best to defend their machine.


12.05) What are spyware and adware, and how do I remove them from my Windows machine?

Spyware and Adware are applications that are installed onto a computer, often surreptitiously or as part of another useful application. Spyware tracks and reports a user's activities. Adware causes random popup adds to appear on the users system. No only are these activates annoying to users but these applications are often poorly written and so cause a wide range of other problems with the user's system.

There are several applications that aid in the removal of both Spyware and Adware. There is a good selection to be found under "Security" at: https://ninite.com


13. Mac OS

13.01) How do I access my CS Department Unix home directory files from a Macintosh?

Using the Apple Finder "Go" list, select "Connect to Server" and enter the following as the Server Address:

smb://smb.cs.colostate.edu

You will need to authenticate using your CS-WIN windows domain password.


13.02) How do I configure my Macintosh to find the department printers?

To set up a printer using Mac OS X 10.6, first make sure the computer is connected to our network via ethernet cable. Then, go to System Preferences -> Print & Fax and click on the plus icon under the left-side pane of the dialog window. In the Add Printer dialog make sure the Default button is selected at the top and wait for the list to populate, select the printer you want to use and hit Add. In the Installable Options dialog that appears, make sure Duplex Unit is checked to allow double-sided printing. Hitting Continue will finalize installation and the new printer should now appear in the system- wide Print dialogs.

To print on both sides using a CS printer set up as described above, check the Two-Sided check box in the File -> Print dialog.

Note: These instructions will not work in 1st floor labs.


13.03) How do I get my Macintosh to use an SSL connection to access the department IMAP server?

Using Mac OS 10.3, panther, one can now easily use SSL with mail. That is the good news. The bad news, the process of getting and retaining a local certificate is somewhat involved and has at least one known major pitfall.

To start, in the advanced settings for the IMAP account, there is a check box for SSL. Check it. Then, the next time you start email, follow the instructions here:

http://docs.info.apple.com/article.html?artnum=25593

And now, the big gotcha. If Mail.app is pointing to the inbox of the IMAP account whose certificate you are attempting to copy, Mail will freeze (apparently permanently). The fix is simple. Make sure to have Mail.app default to another folder, for example the inbox of a different email account. If you do this and then restart Mail.app, all will proceed smoothly and as described in the little instruction set from Apple given above.


13.04) How do I configure Mac Mail to use SMTP authentication?

Please see this ACNS guide: Configure Mac Mail to USE SMTP Authentication.


14. Linux

14.01) I'm trying to run an application, but it says that it's already running or in use. What do I do?

There are multiple reasons this can happen, but the two most common are:

Make sure the program isn't already running on your machine. Then check to see if you are logged in to any other workstations:

rusers -l | grep USERNAME

If you are logged in somewhere else, the best option would be to log back into the machine and close your application. To do this remotely:

ssh MACHINE
pkill -f APPNAME

If your application still won't start at this point, you will need to remove its lock file. Where the lockfiles are stored depends on the application:

For other applications, you can use the find(1) command to help determine where the lockfiles are stored. Since lockfiles generally do not contain data, using the -empty flag can narrow the search.

find ~ -iname '*lock*' -empty
find ~ -iname '*lock*' -type l ! -exec test -r {} \; -print

14.02) How do I mount my USB keychain device on a department Linux machine?

After physically plugging in the device, it should automatically be mounted. Run the command:

df -k

It will list the mount point in the last column. You can browse the USB by going into /media/USB\ MEMORY.

Please don't forget to unmount when you're done: Right click on the USB icon on your desktop and select 'Unmount Volume.' Removing the device without unmounting might corrupt your data files, and it will render the usb port un-usable for the next user.

Note: Be sure you are no longer in the /media/USR\ MEMORY directory or you will get a "Cannot unmount volume" error when attempting to unmount.

Note: You may need to re-format the device on a linux machine with a FAT16 partition. Devices formatted on a windows system may not mount correctly on Linux. But devices formatted on a Linux system will work on either. For further information see the unix text file, ~info/usb-stick-format

Note: If you are using a window manager other than Gnome or KDE, try starting Thunar. This file browser should automatically mount any attached USB thumb drives.


14.03) Can I play .mp3 or video files?

Yes, try /usr/local/xine/bin/xine or /usr/local/mplayer/bin/mplayer Don't forget to use headphones!


How can I use nVidia's CUDA programming language?

CUDA is available on the CS department Linux machines with newer nVidia GPU's. For more information about using CUDA, see the CUDA FAQ.


15. Resource Intensive Jobs

15.01) Where can I run my resource intensive jobs?

The CS Department network has been carefully configured to serve as a single integrated resource consisting of many powerful workstations physically distributed across all the labs and individual desktops. This open distributed configuration gives desktop users access to state-of-the-art hardware while simultaneously providing a powerful compute cluster for background jobs. Generally speaking, users may run resource intensive jobs on any machine which they can log onto (see section 3.10), provided the jobs don't interfere with other users.

The privilege to run background jobs, however, comes with a specific set of rules that must be followed and responsibilities which must be upheld. All long-running and/or background jobs should be run in a way that minimizes the impact on other users, and interactive users in particular. Scheduling priorities should be niced, memory constraints should be respected, and network and disk I/O loads should be kept within reason. If your jobs in any way annoy an interactive user then you are doing something wrong, and right or wrong aside, you must take action to correct the situation. Actions include terminating some or all of the jobs within a reasonable time-frame, and determining how to eliminate any interference before attempting to restart the jobs.

One of the best ways to avoid annoying another user is communication. Within the department there is a long tradition of using informal communication and coordination to mitigate resource competition, and this generally works quite well. In the event a user feels attempts to work out a problem with another user have not been productive, then that user should refer the matter to the systems administration staff. While rare, this may happen, for instance, when there is a dispute over who's jobs are at fault, or there is no email response from the owner of interfering jobs. Jobs that are interfering may be terminated by systems administration without notice. Repeat offenders may face enforced limits on their use of machines on the CS Department network.

See the following section for hints on analyzing or minimizing the impact of your jobs.


15.02) What are some commands that can help determine the resources that my job is using?


15.03) What CPU priority should I use for my resource intensive jobs?

It is mandatory social etiquette that all long-running and background jobs be run with a nice value of 19. To do this:

nice -n 19 COMMAND

Or, on an already-running job (where PID is the process ID):

renice +19 PID

An exception to this rule is made for the two computation servers, bacon and eggs. Since those machines are dedicated exclusively to the task of running resource intensive jobs, it would be pointless to nice any jobs running on them. Jobs may be run at the default priority on bacon and eggs.

For further information, consult the renice(1) and nice(1) man pages.

Note: If your job is multi-threaded, don't forget to renice the individual threads.


15.04) How can I prevent a process from consuming too much memory?

Typically, jobs should not use more physical memory than is available on the machine. Once a machine begins to swap pages to disk because of a shortage of memory, problems will result. In calculating the fit of your job to available memory, accommodation should also be made for memory to be used by other users. The amount of physical RAM available on each machine is listed in the file ~info/machines.

A resource limit on virtual memory size can be set with the ulimit command in bash or with limit in tcsh. For example, in bash:

ulimit -v 2000000

or in tcsh:

limit vmemoryuse 2000000

will prevent a job from using more than about 2G of memory. This limit is set for the current login session only and the process will segfault if the limit is exceeded.


15.05) How can I prevent a process from over-loading the file servers?

The CS department Unix clients share several NFS file servers. If a resource intensive job is performing many reads or writes to the NFS file servers, then performance will slow down for everyone.

If your job is performing many reads and writes or uses a large dataset, then you should consider keeping a copy on the local disk until the job has completed and then copy the data back to NFS. See section 15.06 for more information on using local, temporary disk space.


15.06) Where can I store temporary data that my jobs will read and/or write?

All Unix machines in the CS department have a local partition for temporary data storage located at:

/s/`hostname`/a/tmp

This space is not backed up and is provided on a "use at your own risk" basis. A copy of all important data should be kept in your Unix home directory.

Please remember to remove your temporary data after you are through so that others can use the space.

This space is regularly, automatically scrubbed and may be removed by systems staff at any time. Again, only temporary data should be stored in this location.


15.07) What I/O priority should I use for jobs that perform lots of local reads and writes?

If your job is performing many reads and/or writes to the local disks, the I/O priority should be set to 7 with the ionice command. To do this:

ionice -n 7 COMMAND

Or, on an already-running job (where PID is the process ID):

ionice -n 7 -p PID

For further information, consult the ionice(1) man pages.


15.08) What is the signficance of the linux load average?

The load average is an important indicator of how loaded (or overloaded) a machine is. It is represented by the three numbers in the upper right hand corner of the info displayed by the linux top or w commands, and is defined as the average length of the kernel process run queue over a period of time ( specifically 1, 5, and 15 minutes in the case of top and w). If the load average exceeds the number of cores on a machine, then context switching is taking place. The larger this excess, the more per-process performance will drop off, impacting everyone using the machine. As a general rule, background jobs should be configured so as not to cause the system load average to exceed the number of cores.

You can find the number of cores on a machine with the following command:

/usr/bin/nproc

16. Eclipse

16.01) How do I install the Android Development Tool (ADT) plugin in Eclipse?

Instructions to install the ADT plugin in Eclipse:

Once Eclipse is relaunched, you will find the Android SDK manager in the Eclipse toolbar as well as listed under Window.


16.02) How do I configure the ADT plugin in Eclipse with the Android SDK?

After you have successfully installed the ADT plugin, follow the next steps to point to the Android SDK directory:

Now you are all set to create an Android Project or an Android Virtual Device with the Device Manager, etc.


16.03) Eclipse is acting wonky and I am unable to create a new java class in an eclipse project. How can I fix this?

This is usually caused by a corruption in your local Eclipse space. The remedy is to back up your local eclipse settings and relaunch eclipse.

Once the problem goes away don't forget to remove your .eclipse_backup. Note: You will lose any custom plugins/settings you have currently installed.


17. Miscellaneous Applications

17.01) How do I run MPI?

The department supports openmpi. It is installed under /usr/lib64/openmpi/bin/. You'll need to modify your various PATH environment variables accordingly. In the bash shell, this can be done as follows:

export PATH=/usr/lib64/openmpi/bin/:${PATH}
export LD_LIBRARY_PATH=/usr/lib64/openmpi/lib/:${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH=/usr/lib64/openmpi/lib/:${LD_LIBRARY_PATH}