[MITgcm-support] Porting MITgcm to Solaris x64

Patrick Heimbach heimbach at MIT.EDU
Thu May 31 11:50:05 EDT 2007


Bill,

glad to hear that it works
(I forwarded to support list for reference to close this thread).

Note that the reference output may well have changed between c57c and  
c58
(you can trace this online via CVS if you want).
It actually also differs slightly when using different compilers.
We are generating this reference output on a specific platform
using g77 (plus IEEE compiler flag), but also test on other platforms
where we don't get comparable 16-digit precision.

Cheers
-p.



On May 31, 2007, at 11:23 AM, william aiken wrote:

> Patrick,
>
>   Thanks for the clarification. I had been following the
> directions in MITgcm.pdf, which I downloaded. These directions (page
> 114) differ slightly from yours, which appear on the URL listed below.
>
> My problem was that I had failed to specify "-mods=../code" when I ran
> genmake2. I thought this option was related to building mitgcmuv with
> modified source code that I had placed in the code/ directory. Now I
> realize that I always need to specify this option.
>
>  I rebuilt mitgcmuv using your directions and now mitcgmuv runs to
> completion.
>
>  There are differences between my output.txt and results/output.txt.
> Some of these appear to be formatting differences between versions
> checkpoint57c_pre and checkpoint58.
>
> I am getting a new message to the screen:
>
> STOP: NORMAL END
>  Note: IEEE floating-point exception flags raised:
>     Inexact;  Invalid Operation;
>
> I'll need to investigate why this occurs, must be related to the OS/ 
> chip
> architecture (Solaris 10, AMD Opteron). I assume other versions do not
> produce this message.
>
> Thanks for your help!
>
> Regards,
>
> Bill
>
>
> Patrick Heimbach wrote On 05/30/07 17:26,:
>> Bill,
>>
>> you should not do step 7 i.e.
>> you should not comment out lines in SIZE.h
>> The fact that you had to comment out these lines
>> is that you were not using a SIZE.h customized to
>> your experiment, but instead ran into a "safety trap" compile failure
>> (reminding you that you need to use customized SIZE.h
>> rahter than default one in model/inc/)
>> You need to link the customized header from directory code/
>> So, after step 4. do this:
>>
>> 5. cd verification/exp2/build/
>> 6. ../../../tools/genmake2 -of ../../../tools/build_options/
>> sunos_i86_f77 -mods ../code
>> 7. make depend; make
>> 8. ln -s ../input/* .
>> 9. ./mitgcmuv > output.txt
>>
>> For more, read manual, section 3.4 onward:
>> http://mitgcm.org/r2_web_testing/latest/online_documents/node94.html
>>
>> -Patrick
>>
>>
>>
>> On May 30, 2007, at 5:13 PM, william aiken wrote:
>>
>>
>>> Andrea,
>>>
>>> I commented out only these lines:
>>>
>>> c These lines are here to deliberately cause a compile-time error.
>>> c If you see these lines in your .F files or the compiler shows them
>>> c as an error then it means you have not placed your configuration
>>> c files in the appropriate place.
>>> c You need to place you own copy of SIZE.h in the include
>>> c path for the model, and comment out these lines.
>>>
>>> Attached is my SIZE.h file.
>>>
>>> Thanks,
>>>
>>> Bill
>>>
>>>
>>> Andrea Molod wrote On 05/30/07 17:03,:
>>>
>>>> hi bill,
>>>> your step 7 below seems to have commented out the line
>>>> in SIZE.h that tells the model how many levels, which in
>>>> the case of exp2 should be 20. i think if you 'uncomment'
>>>> this line (why did you comment it out?) it should see
>>>> that there should be 20 levels and continue along.
>>>> andrea
>>>>
>>>> On Wed, 30 May 2007, william aiken wrote:
>>>>
>>>>
>>>>
>>>>> Hi,
>>>>>
>>>>> I am porting MITgcm to Solaris x64. I expect the 32 bit binaries
>>>>> will
>>>>> run on both AMD Opteron and Intel Woodcrest systems with  
>>>>> Solaris 10.
>>>>>
>>>>> These are the steps that I have taken:
>>>>>
>>>>> 1. downloaded MITgcm_checkponts58.tar.gz
>>>>> 2. gunzipped and untarred the file.
>>>>> 3. mkdir tools/build_options
>>>>> 4. copied sunos_sun4u_f77 to sunos_i86_f77
>>>>> 5. cd verification/exp2/input
>>>>> 6. ran genmake2 and make depend
>>>>> 7. commented out lines in SIZE.h
>>>>> 8. make
>>>>> 9. ./mitgcmuv > output.txt yields 166 lines in
>>>>>   output.txt (attached) and these 2 lines to
>>>>> the screen:
>>>>>
>>>>> S/R INI_PARMS: No value for delZ/delP/delR at K =   21
>>>>> STOP: ABNORMAL END: S/R INI_PARMS
>>>>>
>>>>> 10. I reviewed ../results/output.txt and it appears the next 2
>>>>> lines in
>>>>> output.txt should have been:
>>>>>
>>>>> (PID.TID 0000.0001) S/R INI_PARMS ; starts to read PARM05
>>>>> (PID.TID 0000.0001) S/R INI_PARMS ; read PARM05 : OK
>>>>>
>>>>> I noted that results/output.txt has different parameters than my
>>>>> run.
>>>>>
>>>>> It appears for my case that delZ has 20 elements, but mitgcm is
>>>>> trying
>>>>> to access the 21st element.
>>>>>
>>>>> Any suggestions on what this behavior signifies are greatly
>>>>> appreciated.
>>>>>
>>>>> Regards,
>>>>>
>>>>> Bill
>>>>>
>>>
>>> -- 
>>> William Aiken          Sun Microsystems, Inc.
>>> Phone: 781.442.3312    Market Development Engineering
>>> FAX: 781.442.1678      One Network Drive UBUR01-204
>>>                       Burlington, Massachusetts 01803
>>>
>>> C $Header: /u/gcmpack/MITgcm/model/inc/SIZE.h,v 1.27 2005/09/19
>>> 18:42:35 baylor Exp $
>>> C $Name:  $
>>>
>>> c These lines are here to deliberately cause a compile-time error.
>>> c If you see these lines in your .F files or the compiler shows them
>>> c as an error then it means you have not placed your configuration
>>> c files in the appropriate place.
>>> c You need to place you own copy of SIZE.h in the include
>>> c path for the model, and comment out these lines.
>>>
>>> C
>>> CBOP
>>> C    !ROUTINE: SIZE.h
>>> C    !INTERFACE:
>>> C    include SIZE.h
>>> C    !DESCRIPTION: \bv
>>> C     *==========================================================*
>>> C     | SIZE.h Declare size of underlying computational grid.
>>> C     *==========================================================*
>>> C     | The design here support a three-dimensional model grid
>>> C     | with indices I,J and K. The three-dimensional domain
>>> C     | is comprised of nPx*nSx blocks of size sNx along one axis
>>> C     | nPy*nSy blocks of size sNy along another axis and one
>>> C     | block of size Nz along the final axis.
>>> C     | Blocks have overlap regions of size OLx and OLy along the
>>> C     | dimensions that are subdivided.
>>> C     *==========================================================*
>>> C     \ev
>>> CEOP
>>> C     Voodoo numbers controlling data layout.
>>> C     sNx :: No. X points in sub-grid.
>>> C     sNy :: No. Y points in sub-grid.
>>> C     OLx :: Overlap extent in X.
>>> C     OLy :: Overlat extent in Y.
>>> C     nSx :: No. sub-grids in X.
>>> C     nSy :: No. sub-grids in Y.
>>> C     nPx :: No. of processes to use in X.
>>> C     nPy :: No. of processes to use in Y.
>>> C     Nx  :: No. points in X for the total domain.
>>> C     Ny  :: No. points in Y for the total domain.
>>> C     Nr  :: No. points in Z for full process domain.
>>>      INTEGER sNx
>>>      INTEGER sNy
>>>      INTEGER OLx
>>>      INTEGER OLy
>>>      INTEGER nSx
>>>      INTEGER nSy
>>>      INTEGER nPx
>>>      INTEGER nPy
>>>      INTEGER Nx
>>>      INTEGER Ny
>>>      INTEGER Nr
>>>      PARAMETER (
>>>     &           sNx =  20,
>>>     &           sNy =  16,
>>>     &           OLx =   4,
>>>     &           OLy =   4,
>>>     &           nSx =   1,
>>>     &           nSy =   1,
>>>     &           nPx =   1,
>>>     &           nPy =   1,
>>>     &           Nx  = sNx*nSx*nPx,
>>>     &           Ny  = sNy*nSy*nPy,
>>>     &           Nr  =  23)
>>>
>>> C     MAX_OLX  - Set to the maximum overlap region size of any array
>>> C     MAX_OLY    that will be exchanged. Controls the sizing of exch
>>> C                routine buufers.
>>>      INTEGER MAX_OLX
>>>      INTEGER MAX_OLY
>>>      PARAMETER ( MAX_OLX = OLx,
>>>     &            MAX_OLY = OLy )
>>>
>>> _______________________________________________
>>> MITgcm-support mailing list
>>> MITgcm-support at mitgcm.org
>>> http://mitgcm.org/mailman/listinfo/mitgcm-support
>>
>>
>> ---
>> Dr Patrick Heimbach | heimbach at mit.edu | http://www.mit.edu/~heimbach
>> MIT | EAPS, 54-1518 | 77 Massachusetts Ave | Cambridge, MA 02139, USA
>> FON: +1-617-253-5259 | FAX: +1-617-253-4464 | SKYPE: patrick.heimbach
>>
>>
>> _______________________________________________
>> MITgcm-support mailing list
>> MITgcm-support at mitgcm.org
>> http://mitgcm.org/mailman/listinfo/mitgcm-support
>
> -- 
> William Aiken          Sun Microsystems, Inc.
> Phone: 781.442.3312    Market Development Engineering
> FAX: 781.442.1678      One Network Drive UBUR01-204
>                        Burlington, Massachusetts 01803
>

---
Dr Patrick Heimbach | heimbach at mit.edu | http://www.mit.edu/~heimbach
MIT | EAPS, 54-1518 | 77 Massachusetts Ave | Cambridge, MA 02139, USA
FON: +1-617-253-5259 | FAX: +1-617-253-4464 | SKYPE: patrick.heimbach





More information about the MITgcm-support mailing list