File: PORTING

package info (click to toggle)
vis5d 4.3-5
  • links: PTS
  • area: main
  • in suites: slink
  • size: 16,856 kB
  • ctags: 6,127
  • sloc: ansic: 66,158; fortran: 4,470; makefile: 1,683; tcl: 414; sh: 69
file content (75 lines) | stat: -rw-r--r-- 2,624 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75

			Notes on Vis5D ports



As of version 4.1, Vis5D works on the following systems:

	Silicon Graphics	using GL or OpenGL
	IBM RS/6000		using GL or Mesa
	Stellar/Stardent	using XFDI
	Sun Sparc		using Mesa
	HP/apollo		using Mesa or PEX
	DECstation 5000		using VOGL
	DEC Alpha		using Mesa
	DEC Alpha w/ Denali	using Nth Portable GL


The following are some notes on improving the implementation of Vis5D on
your system.  If you make any of these enhancements please let us know so
that we can integrate your work into the Vis5D distribution.



Graphics
--------

Systems without a native graphics library such as GL use Mesa (an OpenGL
work-alike) or VOGL (an IRIS GL work-alike) to make 3-D renderings.  3-D
graphics in software is very compared to having rendering hardware.

Sun, HP, and DEC all have 3-D graphics hardware and associated graphics
libraries (Sun has XGL, HP has Starbase).  If you have one of these systems,
with 3-D graphics hardware and the graphics library, you might want to try
to modify vis5d to use it.  The basic steps are:

	1. copy one of the graphics.*.c file and modify it to make
	   calls to your graphics system
	2. edit the Makefile and src/Makefile to add an option for
	   your graphics system


Parallelism
-----------

vis5d for the SGI and Stellar systems make use of multiple processors when
present.  This is done by creating several threads of execution in the
address space.  Thread 0 is used to handle user input and rendering.  Threads
1 to N are used to compute isosurfaces, contour slice, trajectories, etc in
the background.

If you have a multi-CPU system you can modify vis5d to use the extra CPUs.
First you must edit the sync.c and sync.h files to provide synchronization
primitives.  Second, in main.c you'll have to write code to create the
threads.  Lastly, remove the -DSINGLE_TASK flag from the src/Makefile.

Even with just one CPU it is worthwhile to parallelize vis5d.  This is
because when background threads are present the user interface won't 'freeze'
while graphics are being computed.  The vis5d program operates much nicer
in this mode.  Again, the requirements for this are a way to create multiple
threads of execution in one address space and synchronization primitives.
SunOS 5.3 in Solaris 2.3 supports this...



Other misc. info
----------------

The following symbols are used in the Vis5D source code and specified 
in the Makefiles:

UNDERSCORE	- append an underscore to C function names if they
		  are to be called from Fortran
SINGLE_TASK	- specifies 1 thread of execution (no fork, sproc, etc)
LITTLE		- compile for a little endian computer