further nc_test progress

Jianwei Li jianwei at pop.ece.nwu.edu
Wed Mar 19 15:02:10 CST 2003


Good news. 

Now, nc_test can pass most of the tests. I've committed modifications into cvs.
But there are some other "FAILURE"s not addressed yet, though some of them are
due to different error reporting mechanisms hardcoded in netcdf implementations.
I'm still working on it to get rid of all those "FAILURE"s.

Here's a summary of problems I've identified and my solutions.

1. 
I didn't include "BYTE" datatype support in the parallel implementation, while
the nc_test DOES require this and expect type-related errors in the test. Now,
I've added this kind of support.

2.
Some of the error codes are not catched in ncmpi, while nc_test DOES expect the 
correct codes in time of specific errors. I've fixed them.

3. 
nc_test is tightly connected with the authors' serial netCDF implementation
code. Most FAILURE in our test is due to "incorrect" test.nc file which is
generated by nc_test itself. In serial nc_test, the authors assume if some
error (e.g. datatype range error) happens, the (overflowed) data is still
written into file, while in the parallel netCDF implementation, I chose to
abort with the error code returned. I've changed it to follow the same rule
to satisfy nc_test.

4. [FATAL]
The type conversion between int and float is incorrect in ncmpi implementation. 
I've fixed it.

5.
In time of multi-errors, the serial netcdf check these errors in a different
sequential order than ncmpi implementation, while nc_test assumes and expects
the former. I've changed it to follow the same order to satisfy nc_test.

6.
Some special-case errors were not detected and make nc_test crash, e.g.
MPI_Type_create_subarray crashes when 0-subsize is specified. I've fixed it.

--

Jianwei

>On Thu, Mar 13, 2003 at 05:28:51PM -0600, Jianwei Li wrote:
>
>> 	Well, why does my nc_test against ncmpi_ library turn out to be 
>> 	all "FAILURE"s instead of expected "ok"s?
>> 	For example, at the very beginning, when testing "open test.nc"
>> 	I obviously can not find "test.nc" in my nc_test DIR (of course
>> 	it will FAIL).
>> 	Am I missing sth. from the cvs?
>
>run nc_test with the -c (for 'create') argument.  that will create
>test.nc, but there will also be some strange 'FAILURES' which i do not
>understand... (FAILURE: stauts is 0 )
>
>> 	Another question about the tests: How do you test parallel APIs?
>> 	Just call them in serial code or test them in a real parallel 
>> 	environment? If it's the latter case, how do I specify number of
>> 	processors when I submit "mpirun"?
>
>the nc_test program should have been built with MPICC, so you can do
>'mpirun -np 4 nc_test' for example. 
>
>==rob
>
>-- 
>Rob Latham
>Mathematics and Computer Science Division    A215 0178 EA2D B059 8CDF
>Argonne National Labs, IL USA                B29D F333 664A 4280 315B




More information about the parallel-netcdf mailing list