Micro and Nano Mechanics Group
(Difference between revisions)
(Bug 5)

Revision as of 06:57, 19 May 2011

Contents

Bug 1

If you download the standard distribution of ParaDiS pub-dd3d.v2.0.tar.gz, you will not be able to compile and run it in SERIAL mode. The fix to this problem is described below.

You need to download these three files (available on ParaDiS download site):

makefile.sys
makefile.setup
ReadConfig.c

This will allow you to use SYS = i386 or SYS = cygwin and MODE = SERIAL in makefile.setup.

The SYS = i386 option requires intel compiler icc. If you do not have this compiler, you can modify the makefile.sys file to use a different compiler.

We are working to enable the SYS = mac option. Please come back soon.

If your computer does not allow opening of X-window, then you need to set enable_window = 0 in your win.script file. This is also necessary if you submit your job to a queue in a cluster, because you won't be able to open an interactive window there.

Bug 2

As the numbers of cells and numbers of processors are changed, ownership or nodes/segments can alter which may result in segments changing the cells into which they are accounted... and hence alter results. So for a small test case, forces may be perfectly correct in serial but slightly off in parallel using cells (option FULL_N2Forces turned off).

On a large simulation the results should be insignificant, but on small simulations with very few dislocations, differences are more noticable.

Bug 3

Segmentation fault occurs with v2.3.5s and v.2.3.5.1 when compiling with GCC on Ubuntu and running codes with FMM. The error when compiling using -03 optimization in serial or parallel (cc -O3 or mpicc -03). Appears to be specific to -03 and doesn't occur for -02 or -g, for example. -03 works properly when using Rijm tables.

This doesn't occur with the older version of ParaDiS in the subversion (~2.2.3 or 2.2.6?).

Details of error:

Initialize: Control file parsing complete
Generating uniform domain decomposition.

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff732896d in ?? () from /lib/libc.so.6
(gdb) backtrace
#0  0x00007ffff732896d in ?? () from /lib/libc.so.6
#1  0x00007ffff732b424 in calloc () from /lib/libc.so.6
#2  0x0000000000448911 in ReadNodeDataFile ()
#3  0x000000000042dcd4 in Initialize ()
#4  0x000000000040e321 in ParadisInit ()
#5  0x000000000040185a in main ()

Bug 4

Not really a bug, but a suggestion. When an X-window cannot be opened sucessfully the code exits with a segmentation fault. Should be able to add a descriptive message and a break instead.

Bug 5. Errors of input files created in a DOS system

When ParaDiS input files (control and data files) are created in a DOS system (MS-DOS or Windows), the input files sometimes cannot be executed even though the files look okay in your editor of your linux system. For example, when you create input files using 'create_dislocation.f' in your DOS (or Windows) system, the hidden character, which is ^M, is embedded at the end of each line in your files. This character is sometimes shown or not shown in your editor. If it is shown, the input files look as the following.

### ParaDis nodal file (create_dislocation.f)^M
### S.A. (10/29/07)###^M
^M
#File version number^M
2^M
^M
#Number of data file segments^M
1^M
#Minimum coordinate values (x, y, z)^M
  -18348.6238532110       -18348.6238532110       -18348.6238532110^M     
#Maximum coordinate values (x, y, z)^M
   18348.6238532110        18348.6238532110        18348.6238532110^M     
^M
#Node count^M
          54^M
#Domain geometry (x, y, z)^M
1 1 1^M
...
...

When the character ^M is not shown, it is frustrating because the input files look perfect, ParaDiS canot execute these inputs with ^Ms and shows the errors such as

...
Error: Expected '=' in parameter assignment 
Fatal: Error obtaining values for parameter ) is produced.
...

We can remove this hidden character ^Ms simply using the command "dos2unix". This command erase all ^Ms in your files. Just run dos2unix (your-input-file-name), Then, the input files can be executed.