1. Why does HeNCE execute on machines with no entries in the cost matrix? There was a bug in v1.2 of htool; it produced an entry in the cost matrix file for each cell. If no cost was specified, it wrote out a cost of zero. This is fixed in v1.3. ------------------------------------------------------------------------------ 2. HeNCE won't compile on my machine. Version 1.3 works on many more machines than did 1.2. HeNCE compiles easily on most machines that support the X Window System, so long as a correct set of imake config files is installed on the system. Your vendor should have supplied imake config files, but some (like IBM) do not do so, and others (like Sun) supply incorrect ones. I have tried to include notes on how to compile HeNCE on various machines. If necessary I will include custom Makefiles for especially troublesome machines. ------------------------------------------------------------------------------ 3. I need a way to link extra libraries into my HeNCE subprograms. Sorry, the best way to do this at present is to edit the Makefile. The next major release of HeNCE will have a better way to do this. ------------------------------------------------------------------------------ 4. The HeNCE sources seem to have arrived trashed from netlib. You can use the xnetlib program to get files from the netlib server in "real time" much more quickly than by email access. Xnetlib is available from netlib. To get a copy from a UNIX system, type: echo "send xnetlib.shar from netlib" | mail netlib@ornl.gov Of course, you may have the same problem with xnetlib, but it's a bit smaller and therefore easier to retrieve intact. ------------------------------------------------------------------------------ 5. Htool won't let me exit compose mode even though I'm not editing any node programs. This was a bug on SysV-style machines due to the fact that they do not restart signals. Hopefully it is fixed now on these machines. If necessary, edit imake.defs and add -DSYSVSIGNAL to the HENCE_DEFINES line for your machine. ------------------------------------------------------------------------------ 6. How do I use HeNCE to watch the execution of (or tweak performance of) PVM programs? HeNCE isn't designed to do this. Various people are working on X-windows based tools to do similar things for bare PVM. ------------------------------------------------------------------------------ 7. All files produced by the HeNCE.shar file are readonly. Should be fixed now. At least the files you need to scribble on should now be writable. ------------------------------------------------------------------------------ 8. What does the following error message mean? master: PVM user lib master: initiateM: No such File master: ERROR: InitiateM failed on node 1/0: master: initiateM(start,somewhere) returned -7 It means that the program "start" in not installed in the right directory on machine "somewhere". Normally it would belong in "~/pvm/$(ARCH)" where $(ARCH) is the architecture name for that machine. (But you can change this with the ep= option of the PVM hosts file.) The "make install" button under the "build" function should take care of installing this for you. Be sure the htool.binDir is either set to ~/pvm/$(ARCH), or matches whatever the ep= option is set to in the pvm hosts file. (If you change this, you'll have to quit restart htool and do "make makefile" before the change has any effect.) ------------------------------------------------------------------------------ 9. When I try to compile HeNCE on a SUN, the following routines are missing: _get_wmShellWidgetClass _get_applicationShellWidgetClass (This is from the FAQ file for X11...) In SunOS 4.1.2 Sun fixed a shared-library bug in ld which conflicts with the way X11R4 builds the shared Xmu library, causing these symbols to be undefined when building some X11 clients. Compiling "-Bstatic -lXmu -Bdynamic" appears to work. To solve the problem if you are using OpenWindows 3.0 (X11R4-based Xt), please contact your local Sun office and request the following patches: Patch i.d. Description 100512-02 4.1.x OpenWindows 3.0 libXt Jumbo patch 100573-03 4.1.x OpenWindows 3.0 undefined symbols when using shared libXmu [Greg Earle, earle@Sun.COM; 7/92] ------------------------------------------------------------------------------ 10. I compiled htool on one machine and moved it to another. When I try to run it, I get the message that says some library or another is not found. How do I fix it? On Suns and IBM RS/6000s, you can edit imake.defs and uncomment out the line that reads "#define StaticallyLink". This should allow you to produce an executable that does not depend on shared libraries. ------------------------------------------------------------------------------ 11. Performance is lousy. The current HeNCE implementation is not very efficient. A new pvm process is started every time a new HeNCE subroutine is called. There is no effort to minimize communication overhead in scheduling new tasks. Each new subroutine may have to query several of its ancestors to obtain its complete set of data before it can start executing, and may have to wait around in "idle" state (consuming swap space) so that its children can query it for data. Although the executioner does try to take machine speed into account when scheduling (via the cost matrix), no attempt is made to take the machine's current load into account, other than that produced by HeNCE itself. Even then, all subroutines are treated as if they load down the processor equally. Most of the recent work on HeNCE has been into making the tool usable on many different machines, so people can experiment with the language. The initial htool was very difficult to use, and the language still needs some work. The current HeNCE executioner is essentially a prototype; the next implementation will focus on improved performance while attempting to fix some of the problems in the design of the language that make HeNCE both difficult to use and difficult to implement efficiently. ------------------------------------------------------------------------------ 12. How can I resize the various windows? Most of the windows in htool 1.3 are still fixed size. htool 2.0 has a new spiffy screen layout (with resizable everything) and will be out sometime early in 1993. ------------------------------------------------------------------------------ 13. I'm having trouble getting HeNCE to work with FORTRAN. HeNCE doesn't currently work very well with FORTRAN. In particular: * HeNCE tries to treat all arrays as if they were in C order (last subscript varies fastest). This is fine for FORTRAN one-dimensional arrays, but fails for anything larger. One workaround is to treat all arrays as one-dimensional within HeNCE, but they can be two-dimensional in your FORTRAN codes, as long as they are always the same size and shape. * HeNCE doesn't always generate the right calling sequence for character strings when calling FORTRAN subroutines. * The "mkwrap" program does not generate correct FORTRAN wrappers for some machines. * Constructs like the C '&' operator don't translate very well into FORTRAN. All of these things are targeted to be fixed, but they're not fixed yet. Please bear with us! ------------------------------------------------------------------------------ 14. I use HeNCE on several machines that do not share a common file system, but HeNCE tries to use the X server's resources no matter what machine I'm using. In addition to putting resources in .Xresources (or your server's resource data base), you can put a file named "htool" in your home directory on each machine that contains machine-specific resources. This is a good place to put things like file and directory names. Names of fonts, colors, etc., should probably remain in .Xresources. Note that any resource definitions in .Xresources will override the ones in your "htool" file, so you need to remove the machine-specific resources from your .Xresources file. If you don't want to clutter up your home directory, define an environment variable named XAPPLRESDIR, set it to point to some other directory, and put your "htool" file in that directory. ------------------------------------------------------------------------------ 15. When I start up PVM under htool, the window goes away immediately, and htool says "pvmd exited normally". Htool is lying. Actually, the xterm exited normally. Currently, htool must use an xterm to pop up a window for pvmd, and there's no good way to get the status back from a program that runs under xterm. The real problem is probably that the pvm startup failed on one or more hosts. htool 1.3 has been modified to prompt you to press RETURN after pvmd dies before getting rid of the window, so you can read the error messages. In htool 2.0, pvmd will run directly under htool, and the window will always be there. ------------------------------------------------------------------------------ 16. How can I get the hostmap popup window to display cool icons for each machine? (instead of the "tape drive") 1) make sure the htool.iconList resource is set to point to a file that contains the icon list. Make sure that the icon list file name begins with either a '/' or a '~'. If it begins with ~username, make sure the username is valid and that his/her home directory exists and is mounted and readable. etc. % xrdb -query | grep 'htool.[Ii]conList' htool.iconList: ~/.htool_icons 2) make sure the file named in that resource exists and is readable and has reasonable contents. Mine looks like: % cat ~/.htool_icons chili ~moore/src/Hence/icons/chili.xbm rx ~moore/src/Hence/icons/intelicon.xbm rx.epm.ornl.gov ~moore/src/Hence/icons/intelicon.xbm austin ~moore/src/Hence/icons/rs6000.xbm rios ~moore/src/Hence/icons/rs6000.xbm alliant ~moore/src/Hence/icons/alliant.xbm cray ~moore/src/Hence/icons/crayicon.xbm barney ~moore/src/Hence/icons/sun.xbm duncan ~moore/src/Hence/icons/sunrack.xbm fred ~moore/src/Hence/icons/fred_flintstone.xbm thud ~moore/src/Hence/icons/sparcserver.xbm tmc ~moore/src/Hence/icons/tmc.xbm tonka ~moore/src/Hence/icons/symmetry.xbm betty ~moore/src/Hence/icons/dec5200.xbm u2.ncsa.uiuc.edu ~moore/src/Hence/icons/crayicon.xbm cmsun4.ncsa.uiuc.edu ~moore/src/Hence/icons/tmc.xbm groucho ~moore/src/Hence/icons/banana6000.xbm 3) make sure each of the files named in the icons list file exists. Also, make sure each filename in the icons list file begins with either a '~' or a '/'. If the file starts with ~username, make sure that the username is valid and his/her home directory exists and is readable, etc., etc. 4) if htool has trouble displaying specific icons, try looking at them with the "bitmap" utility (or xloadimage, or xv) to make sure they are still there and intact. ------------------------------------------------------------------------------ 17. Explain about the "null" subroutine. The "null" subroutine is special. Whenever the executioner tries to schedule a subroutine named "null", it doesn't actually execute it -- it just pretends to. This is useful because you sometimes need a "do nothing" node just to declare variables. However, not all components of HeNCE take this into account. So if you use the "null" function in a node, you may still end up having to declare "null" in the cost matrix (for htool) and give it a machine to run on (even though it won't actually be used for this purpose), defining an empty subroutine named "null", generating wrappers, compiling, and installing it along with the other subroutines. Hopefully a later version of HeNCE will have fixed this. ------------------------------------------------------------------------------ 18. How do I display the output of the mandelbrot demos? The program "xpx" is in the demos/demo0 directory, and the README file tells how to run it. Unfortunately, it only works on color screens. ------------------------------------------------------------------------------ 19. How do I change the editor that HeNCE uses? Basically, use %s in the editorCommand resource wherever you want the filename to appear. If the editor you want to use already knows about X windows (i.e. opens up its own window), then something like "edit %s" should suffice. Otherwise, if the editor requires a terminal, then you need to run it under an xterm or other terminal emulator. In this case, something like "xterm -e edit %s" should work. The example in the HeNCE User's Guide uses the -title option of xterm to set the window's title bar to match the name of the file being edited. ------------------------------------------------------------------------------ 20. I can't seem to print the HeNCE user's guide postscript files. We have compressed some of the bitmaps used in the figures in the PostScript version of the HeNCE User's Guide, resulting in a much smaller file. Hopefully this will be easier to print. (The compressed bitmaps are still in PostScript, but they use run length encoding instead of straight binary). ------------------------------------------------------------------------------ 21. When trying to compile on a Sun, it complains that I'm missing _dlsym, _dlopen, and _dlclose. What's wrong and how do I fix it? There are several reasons why this may happen: * your system is running SunOS 4.1.1, which has some functions missing from libc.a, and you are trying to generate a statically-linked executable. * your system has had its shared libc replaced by one that does not include these functions. This is usually done to get Sun network programs to use the DNS rather than NIS for host name lookups. (As it should; SunOS is broken to use NIS by default.) Unfortunately, Sun forgot to include the libdl stuff in its kit for rebuilding shared libraries. Suggested fixes: (a) try adding "-ldl" to EXTRA_LIBRARIES for SUN4 in imake.defs. This may fail on 4.1.1 if your system does not have a libdl.a installed (it's missing on our 4.1.1 systems). (b) give up trying to generate a statically-linked executable. ------------------------------------------------------------------------------ 22. What does the message "sendto: no buffer space available" mean? This is a PVM error message that occurs when the recipient of a PVM message can't allocate any more space to buffer incoming messages. PVM will keep trying to send the messages until enough space exists. Since PVM normally recovers from this condition, the message is usually of no concern, except to give a clue as to why communication is slower than normal. ------------------------------------------------------------------------------ 23. What does it mean when I get the message: PVM user lib : snd: No such Component PVM would generate these messages whenever HeNCE was trying to send a message to a node subroutine, telling it to exit, but the subroutine had already exited. ------------------------------------------------------------------------------