Changes between Version 2 and Version 3 of CsMapRfc5


Ignore:
Timestamp:
Jun 16, 2011, 3:49:23 PM (13 years ago)
Author:
Norm Olsen
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • CsMapRfc5

    v2 v3  
    5151Those CS-MAP conversions and transformations which are not reentrant are usually that way due to the heritage of CS-MAP (the days of the 640KB PC and no more than 8 files open at one time) and the level of resource consumption which would be necessary to achieve reentrant status.  In Phase Two of this proposal, all non-reentrant conversions and transformations for which reentrancy can be achieved without unreasonable additional resource consumption will be recoded to achieve reentrancy.
    5252Hubris might lead one to believe that the entire library could be re-written to achieve complete reentrancy.  While this is indeed the expected result, this proposal retains Phase One as necessary to:
    53 * insure that exceptions are not encountered, and to
    54 * prevent a reentrancy requirement from precluding valuable future additions to the algorithmic repertoire of the library.
     53 * insure that exceptions are not encountered, and to
     54 * prevent a reentrancy requirement from precluding valuable future additions to the algorithmic repertoire of the library.
    5555
    5656
     
    6363
    6464Normal regression testing will apply to insure that existing numerical results are preserved.  Additionally, a multi-core specific test module shall be developed which, given a table of test cases specifically constructed to include most (if not all) conversions and transformations (directly or indirectly), shall:
    65 * Construct all the CS-MAP conversion and transformation objects necessary to perform all conversions.  This will typically consist of a source cs_Csprm_ object, a cs_Dtcvt_ object, and a target cs_Csprm_ object.
    66 * Pointers to such conversion and transformation objects shall be duplicated as necessary to fully populate the test table such that only one instance of any equivalent conversion/transformation object exists.
    67 * A function capable of performing any conversion given a pointer to a table entry (which includes the three pointers identified above) will be written.
    68 * The host test application will create a new threads and thus cause the execution of the test conversion function with the pointers obtained from the above described table.
    69 * The host test application will cause 16 threads to perform the same tests using the same objects concurrently.
    70 * This test shall for a specified amount of time, the default value will be 20 seconds.  It is expected that each of the 16 threads will execute, on average, 20 times in this period of time.
    71 * In the event of an error, the test application lists the indicate the specific test conversion which produced the failure.
     65 * Construct all the CS-MAP conversion and transformation objects necessary to perform all conversions.  This will typically consist of a source cs_Csprm_ object, a cs_Dtcvt_ object, and a target cs_Csprm_ object.
     66 * Pointers to such conversion and transformation objects shall be duplicated as necessary to fully populate the test table such that only one instance of any equivalent conversion/transformation object exists.
     67 * A function capable of performing any conversion given a pointer to a table entry (which includes the three pointers identified above) will be written.
     68 * The host test application will create a new threads and thus cause the execution of the test conversion function with the pointers obtained from the above described table.
     69 * The host test application will cause 16 threads to perform the same tests using the same objects concurrently.
     70 * This test shall for a specified amount of time, the default value will be 20 seconds.  It is expected that each of the 16 threads will execute, on average, 20 times in this period of time.
     71 * In the event of an error, the test application lists the indicate the specific test conversion which produced the failure.
    7272
    7373It is expected that this test facility will be implemented using the environment of the MeatCRS’s OsGeo sibling MapGuide as the MapGuide environment is more readily adaptable to multi-threaded applications.