a8d8f2a7a84b08010739da5a35b3563006a87602
[charm.git] / README.cygwin
1                               Charm++ 5.4 (Release 1)
2
3        Copyright (C) 1989-2000 Regents of the University of Illinois
4
5 Now you can compile charm++ under Windows9x/2000/NT with Cygwin.
6 Note: This version of cygwin is still under testing.
7 Check the FAQ at end of this file for more help.
8
9
10                        Setup and Compilation
11                     ===========================
12
13 To compile charm on cygwin:
14 1. install cygwin from: http://sourceware.cygnus.com/cygwin
15    with inetutils, openssh, w32api packages and gcc of course. Remember to
16    choose default file type as "unix" at the beginning of cygwin installation.
17
18 2. before compiling, make sure you have /bin/sh correctly installed, otherwise
19    make a link from /bin/bash.exe:  ln -s /bin/bash.exe /bin/sh.exe
20    compile charm++:    ./build charm++ net-cygwin
21
22 3. setting up running environment:
23      There are several ways to do this, using rsh or ssh. 
24    Under Windows2000/NT, ssh is recommended, I once had difficulty to have 
25    inetd working.
26      Starting from Charm++ version 5.4, ++local option is added to start
27    node programs directly ob your desktop machine. You no longer need rshd or 
28    sshd to start charm program on local machine. This is for testing purpose 
29    or small job run though, for best performance, launch one process per 
30    processor with rsh daemons.
31
32  ** RSH method **
33    setup /etc/inetd.conf and /etc/services to start rshd, 
34    Here is an example of /etc/inetd.conf:
35
36 ###
37 shell stream tcp nowait.1000  root /usr/sbin/in.rshd  in.rshd
38 ###
39
40    and an example of /etc/services:
41
42 ###   
43 shell     514/tcp    cmd
44 ###
45
46    before running charm program, start 'inetd' first to get rshd running.
47    Run debug mode 'inetd -d' to see the debug information.
48
49  ** SSH method **
50      Check /etc/passwd, make sure your home directory is correct. (it may be
51    empty there!)
52    run "/usr/bin/ssh-config" to setup all ssh config files.
53      Since openssh version 2.5.1p2, you have to run /usr/bin/ssh-host-config
54    for the first time to generate global config files and server keys; and 
55    run /usr/bin/ssh-user-config creates the private and public keys for a user.
56    You may need to modify /etc/sshd_config or /etc/ssh_config for your needs.
57      Setup ~/.shosts, or add your public key to your ~/.ssh/authorized_keys to 
58    allow you to login without password authentication.
59    now you can start sshd and run charm programs.
60
61  ** run only on local machine with ++local **
62      This allows a user to run charm program on his/her desktop machine for 
63    testing purpose or running a small job without the hassle of setting up any 
64    rsh deamons. To launch a charm++ program on your local machine, use 
65    "++local" option via:
66   
67      ./charmrun +p4 ++local ./pgm
68
69 4. If you have any problem with it, please check the FAQ below for help.
70    Let me know if it works or not by sending email to (ppl@uiuc.edu).
71
72
73
74
75                                     FAQ
76                               ==============
77
78  * Why would I use net-cygwin version?
79
80    First cygwin is free, it comes with free gcc compiler, cvs and openSSH.
81    You don't need expensive Visual C++ compiler to get work done. For unix 
82    fans, it is also a good idea to just turn your windows box to a unix 
83    workspace, and learn and run charm++ program uniformly on all platforms.
84
85  * How to get your latest version of Charm++?
86
87    You can use anonymous cvs login to checkout the latest version of charm.
88    (It may not be the latest stable version though)
89    1. login the cvs server:
90
91       cvs -d :pserver:checkout@thrift.cs.uiuc.edu:/expand6/cvsroot login
92
93       when CVS passwd is prompted, just type <Enter>.
94    2. checkout charm
95
96       cvs co -P charm
97
98       You should get latest charm source tree.
99    3. logout the cvs server
100
101       cvs logout
102
103  * Problem: Charm++ build script stops when it compile "ckfutures.ci", with 
104    error message: "Syntax error at line 1: parse error"
105
106    This happens when the .ci files have strange characters like '^M' at end
107    of each line. Don't use WinCVS to checkout charm because it will append
108    '^M' for each line. Use the cvs that comes free from cygwin.
109    After charm++ version 5.4, this bug is fixed.
110
111  * Problem: I got a runtime error "CthCreate failed to create fiber!".
112
113      net-cygwin uses Win32 Fiber in its user threads implementation. However, 
114    there is a limit upon the number of Fibers you can create at one time in 
115    the w32api of cygwin. The current limit (as I tested) is between 50-52. You 
116    have to reduce the number of processors or the number of charm++ threads
117    you create in the program to run the program under cygwin.
118
119
120