Newsgroups: comp.parallel From: schooler@apollo.hp.com (Richard Schooler) Subject: Parallel Tools Survey Organization: HP/Apollo Massachusetts Language Lab Date: Mon, 18 Oct 1993 13:44:23 GMT I haven't gotten anything in a while, so here goes. My original question was: What tools exists for industrial (non-research) parallel programming? In more detail, if you have experience trying to develop real applications on parallel architectures (shared-memory multiprocessors, massively-parallel machines, workstation clusters, etc.), what is your view on the level of support for such activities? What tools do the hardware vendors supply? Are there third-party solutions? Public-domain software? What are the most useful tools? Any details on why you found particular tools good or bad would be very helpful. Here the (non-commercial) responses: ================================================== I have implemented an eigenvalue solver on 2 different platforms: An nCUBE-2 and a cluster of SUN4 workstations. On the nCUBE-2 I used their "native" environment. They have some additional software from Express for implementing certain communication primitives very efficiently and for performance tunning. They have a debugger that I was not able to figure out. On the cluster I used PVM (versions 2.4 and 3.1). Debugging is a nightmare. There are no tools for performance tunning. I haven't tried Xab yet. From what I have seen in the literature it is a good debugger. For performance tunning, I have been creating my own trace files in PICL format. At the end of the program those trace files (kept in memory to avoid disturbances) are dumped into a file that can be observed with Paragraph. It helped enormously. Paragraph is an excellent tool. PVM, PICL and Paragraph are public domain tools. There is a committee (MPIF) that is drafting a standard for message passing systems. Such a standard will be extremely useful. Your partners at CONVEX are very active in PVM customization. ================================================== What tools are there for programming multiprocessors? Outside of tools specific to certain scientific applications or database applications my experience is that there is C-threads and maybe C++/threads if you are lucky. If you are really lucky, the C compiler has no bugs, and on miraculous systems the operating system is pretty stable too. Here, when I say C, I mean C and probably Fortran too. My best experience has been on the the Cray machines. Stable OS, stable compilers, good perf. analysis tools. Unfortunately, these machines are hardly ever available in multiprocessor mode. Mostly they are in "partitioned to run lots of batch jobs in parallel"-mode. UniCOS is kind of wierd, and lack of VM makes interactive use awkward. But overall, a very nice system. Next in line is the KSR-1. Less stable compilers, less stable OS, and lousy processor performance. But, not bad overall. No tools other than C-threads and some loop parallelization stuff that probably doesn't work well (never tried it). They have some profiling stuff and very good support for standard UNIX tools, since their OS is standard UNIX. The TMC machines are pitifully bad. They are in a constant revolving beta-release. Nothing ever works and the new release of the OS or compilers always breaks all existing code. Don't know about Intel machines, but I can't imagine that they'd be much better than TMC. The Maspar is a nice environment on a bad architecture. The processors are just too small to be useful on big problems. They have a nice parallel C, good profiling and debugging tools and a pretty stable OS environment. I don't know what's around for MP workstations. I think that's where the interesting work is to be done, because the machines have a stable base to work from...good tools should be coming along. ================================================== A good starting point might be the survey report by Louis Turcotte: /parallel/reports/misc/soft-env-net-report.tar.Z Report: "A Survey of Software Environments for Exploiting Networked Computing Resources" by Louis Turcotte covering over 60 distributed and other networked software environments (150 pages). Announcement of report contains author contact details. Available via anonymous ftp from unix.hensa.ac.uk ================================================== Greetings! Sometime back I came to know about a tool MENTAT which they call it Object Oriented Programming tool for Parallel Programming. Also I found out some people are using it in the industry to develop applications in FEA in a workstation cluster. MENTAT is a Public domain tool developed and available in Univ. of Virginia. I never used it and don't know how good it is. But if you want to know more, it is available in the following location through anonymous ftp. uvacs.cs.virginia.edu /pub/mentat -> the software is here /pub/techreports -> contains couple of reports CS91-07, CS91-31 and 32 which will give you more details. There are not many tools to develop software in parallel computers. I am a graduate student and I did lot of programmimg in CM -5 both using C* and CMMD message passing libraries. There is PRISM in CM-5 which helps in debugging and profiling.But I found it useful in C* and it is not good while using CMMD.But my feeling is there are no good tools to program in CM-5. Still many of these tool developments are in the research project level as sometime back I saw a project description in Univ. of Wisconsin for developing tools for CM-5 and Intel Paragon. ================================================== -- Richard schooler@apollo.com