Re: Very big NONMEM
Hi,
Unfortunately I am unable to give you more info about the project other than that big is too small...
Using less surreal MAXIDS=50K and NO=25 (starting from reg. SIZES) works but doesn't really "solve" the issue. As the issue is apparently not coming from NONMEM per se but the combination with ifort, I hoped it could have been solved by changing some compiler options...
But I guess this will be one of these "we'll find a solution when we really need it" type of problems.
K. Regards,
Xavier
Quoted reply history
On 10/08/2010 04:22 PM, Leonid Gibiansky wrote:
> Just out of curiosity, what type of problem will require 100K subjects? If this is parametric, 15K should be sufficient to describe any number of normal-type distributions. Is this a non-parametric model to catch a very rare events?
>
> Thanks
> Leonid
>
> --------------------------------------
> Leonid Gibiansky, Ph.D.
> President, QuantPharm LLC
> web: www.quantpharm.com
> e-mail: LGibiansky at quantpharm.com
> tel: (301) 767 5566
>
> On 10/8/2010 8:25 AM, Xavier Woot de Trixhe wrote:
>
> > Hi,
> >
> > NONMEM7 is limited to 15000 individuals (in big install), which is a lot
> > but not enough for a project....
> >
> > A quick look at the SIZES_reg & SIZES_big files showed the following:
> >
> > !CTL
> > ! MAXIDS: MAX. NO. OF INDIVIDUALS IN DATA SET
> > PARAMETER (MAXIDS=15000)! TL 4/22/09
> >
> > Setting this to 100k I hoped for the best... Reinstalling nonmem with
> > recompilation (Intel fortran 11 on Linux x64) everything goes smoothly
> > Unfortunately the very last steps gives a nasty error message in
> > function `pk_` (PrGlobal.o). (see Appendix A)
> >
> > After some googling I found this:
> >
> > http://software.intel.com/en-us/articles/avoiding-relocation-errors-when-building-applications-with-large-global-or-static-data-on-intel64/
> >
> > In essence there is more than 2Gig allocated for data and adding the
> > -mcmodel=medium option to the setup (SESTU7 line 358) should solve the
> > issue...
> >
> > Unfortunately this only moved the issue to function `output_open_'
> > (NMDATA.o). (see Appendix B)
> >
> > Now I am out of ideas...
> >
> > So here are my questions, if anyone can help it would be great
> > 1) How do I compute the size of the data array? MAXID * NO * ?? *
> > sizeof( a number )
> > 2) Why does output_open fail?
> > 3) Has anyone done this before?
> >
> > K. Regards,
> >
> > Xavier
> >
> > PS: In SETUP7 only allows SIZES_reg and SIZES_big to replace SIZES.f90
> > It might be nice to allow any SIZES_xxx as template for SIZES.f90 (not
> > to mess up the defaults)
> >
> > Is disabling lines 112-118 and changing line 275 onwards to the
> > following code enough to do the trick?
> >
> > if [ -s ./resource/SIZES_$s ]; then
> > echo Using resource/SIZES_$s
> > cp resource/SIZES_$s resource/SIZES.f90
> > else
> > if [ -e resource/SIZES.f90 ]
> > then
> > echo Using existing resource/SIZES.f90
> > else
> > echo Using resource/SIZES_reg
> > cp resource/SIZES_reg resource/SIZES.f90
> > fi
> > fi
> >
> > Appendix A:
> >
> > Testing the installation. Commands are
> > cd /opt/NONMEM/7.1.0/huge_i11.1/run
> > ./nmfe7 CONTROL5 REPORT5.txt
> > If the run is successful, file REPORT5.txt will be created.
> >
> > WARNINGS AND ERRORS (IF ANY) FOR PROBLEM 1
> >
> > (WARNING 2) NM-TRAN INFERS THAT THE DATA ARE POPULATION.
> >
> > (WARNING 43) THE $PK BLOCK REQUESTS "CALL ONCE PER INDIVIDUAL RECORD", BUT
> >
> > DATA ITEMS ARE USED IN THE $PK BLOCK. VALUES OF THESE DATA ITEMS
> > SUBSEQUENT TO THOSE FROM THE FIRST EVENT RECORD WILL BE IGNORED. IF THIS
> > IS NOT APPROPRIATE, THE CALL DATA ITEM CAN BE USED TO OBTAIN ADDITIONAL
> > CALLS, OR $PK'S CALLING PROTOCOL SHOULD BE CHANGED.
> > CREATING MUMODEL ROUTINE...
> > /tmp/ifortNDVtJq.o: In function `pk_':
> > FSUBS.f90:(.text+0x56): relocation truncated to fit: R_X86_64_PC32
> > against symbol `procm_int_mp_pnewif_' defined in COMMON section in
> > /opt/NONMEM/7.1.0/huge_i11.1/resource/resource.a(PrGlobal.o)
> > FSUBS.f90:(.text+0x6f): relocation truncated to fit: R_X86_64_32 against
> > symbol `nmprd_real_mp_eta_' defined in COMMON section in
> > /opt/NONMEM/7.1.0/huge_i11.1/resource/resource.a(Global.o)
> > FSUBS.f90:(.text+0x84): relocation truncated to fit: R_X86_64_PC32
> > against symbol `nmprd_int_mp_iquit_' defined in COMMON section in
> > /opt/NONMEM/7.1.0/huge_i11.1/resource/resource.a(Global.o)
> > FSUBS.f90:(.text+0x97): relocation truncated to fit: R_X86_64_PC32
> > against symbol `nmprd_real_mp_eta_' defined in COMMON section in
> > /opt/NONMEM/7.1.0/huge_i11.1/resource/resource.a(Global.o)
> > FSUBS.f90:(.text+0xab): relocation truncated to fit: R_X86_64_PC32
> > against symbol `nmprd_real_mp_eta_' defined in COMMON section in
> > /opt/NONMEM/7.1.0/huge_i11.1/resource/resource.a(Global.o)
> > FSUBS.f90:(.text+0xd2): relocation truncated to fit: R_X86_64_PC32
> > against symbol `nmprd4p_mp_ka_' defined in COMMON section in
> > /tmp/ifortNDVtJq.o
> > FSUBS.f90:(.text+0xe1): relocation truncated to fit: R_X86_64_PC32
> > against symbol `nmprd4p_mp_a00071_' defined in COMMON section in
> > /tmp/ifortNDVtJq.o
> > FSUBS.f90:(.text+0xf8): relocation truncated to fit: R_X86_64_PC32
> > against symbol `nmprd_real_mp_eta_' defined in COMMON section in
> > /opt/NONMEM/7.1.0/huge_i11.1/resource/resource.a(Global.o)
> > FSUBS.f90:(.text+0x102): relocation truncated to fit: R_X86_64_PC32
> > against symbol `nmprd4p_mp_k_' defined in COMMON section in
> > /tmp/ifortNDVtJq.o
> > FSUBS.f90:(.text+0x10e): relocation truncated to fit: R_X86_64_PC32
> > against symbol `nmprd4p_mp_a00072_' defined in COMMON section in
> > /tmp/ifortNDVtJq.o
> > FSUBS.f90:(.text+0x119): additional relocation overflows omitted from
> > the output
> > No nonmem execution.
> >
> > Appendix B:
> > Testing the installation. Commands are
> > cd /opt/NONMEM/7.1.0/huge_i11.1/run
> > ./nmfe7 CONTROL5 REPORT5.txt
> > If the run is successful, file REPORT5.txt will be created.
> >
> > WARNINGS AND ERRORS (IF ANY) FOR PROBLEM 1
> >
> > (WARNING 2) NM-TRAN INFERS THAT THE DATA ARE POPULATION.
> >
> > (WARNING 43) THE $PK BLOCK REQUESTS "CALL ONCE PER INDIVIDUAL RECORD", BUT
> >
> > DATA ITEMS ARE USED IN THE $PK BLOCK. VALUES OF THESE DATA ITEMS
> > SUBSEQUENT TO THOSE FROM THE FIRST EVENT RECORD WILL BE IGNORED. IF THIS
> > IS NOT APPROPRIATE, THE CALL DATA ITEM CAN BE USED TO OBTAIN ADDITIONAL
> > CALLS, OR $PK'S CALLING PROTOCOL SHOULD BE CHANGED.
> > CREATING MUMODEL ROUTINE...
> > /opt/NONMEM/7.1.0/huge_i11.1/nm/nonmem.a(ifortlinux.o): In function
> > `output_open_':
> > ifortlinux.f:(.text+0x17): relocation truncated to fit: R_X86_64_PC32
> > against symbol `nmdata_mp_iun_' defined in COMMON section in
> > /opt/NONMEM/7.1.0/huge_i11.1/resource/resource.a(NMDATA.o)
> > /opt/NONMEM/7.1.0/huge_i11.1/nm/nonmem.a(ifortlinux.o): In function
> > `output_open2_':
> > ifortlinux.f:(.text+0xfb): relocation truncated to fit: R_X86_64_32S
> > against symbol `nmdata_mp_iun_' defined in COMMON section in
> > /opt/NONMEM/7.1.0/huge_i11.1/resource/resource.a(NMDATA.o)
> > /opt/intel/Compiler/11.1/056/lib/intel64/libifcore.a(for_diags_intel.o):
> > In function `for__io_return':
> > for_diags_intel.c:(.text+0xcb): relocation truncated to fit: R_X86_64_32
> > against `tmp_buf'
> > for_diags_intel.c:(.text+0xf4): relocation truncated to fit: R_X86_64_32
> > against `tmp_buf'
> > for_diags_intel.c:(.text+0x64d): relocation truncated to fit:
> > R_X86_64_PC32 against symbol `for__user_iomsg_len' defined in .bss
> > section in
> > /opt/intel/Compiler/11.1/056/lib/intel64/libifcore.a(for_diags_intel.o)
> > for_diags_intel.c:(.text+0x654): relocation truncated to fit:
> > R_X86_64_PC32 against symbol `for__user_iomsg_buf' defined in .bss
> > section in
> > /opt/intel/Compiler/11.1/056/lib/intel64/libifcore.a(for_diags_intel.o)
> > for_diags_intel.c:(.text+0x892): relocation truncated to fit:
> > R_X86_64_PC32 against symbol `for__user_iomsg_len' defined in .bss
> > section in
> > /opt/intel/Compiler/11.1/056/lib/intel64/libifcore.a(for_diags_intel.o)
> > for_diags_intel.c:(.text+0x899): relocation truncated to fit:
> > R_X86_64_PC32 against symbol `for__user_iomsg_buf' defined in .bss
> > section in
> > /opt/intel/Compiler/11.1/056/lib/intel64/libifcore.a(for_diags_intel.o)
> > for_diags_intel.c:(.text+0x9f7): relocation truncated to fit:
> > R_X86_64_PC32 against symbol `message_catalog' defined in COMMON section
> >
> > in /opt/intel/Compiler/11.1/056/lib/intel64/libifcore.a(for_diags_intel.o)
> >
> > for_diags_intel.c:(.text+0xa38): relocation truncated to fit:
> > R_X86_64_PC32 against `tmp_ptr'
> > for_diags_intel.c:(.text+0xab9): additional relocation overflows omitted
> > from the output
> > No nonmem execution.
> >
> > You should now compare REPORT5.txt vs. REPORT5IDS.txt
> > Values should be similar.
> > E.g., the following should be identical:
> > grep #OBJV: REPORT5.txt
> > grep: REPORT5.txt: No such file or directory
> > grep #OBJV: REPORT5IDS.txt
> >
> > --
> > ---
> > Xavier Woot de Trixhe, Ir
> > Exprimo NV
> > Tel:+32 (0)485 033872
> >
> > E-mail: [email protected] < mailto: [email protected] >
> >
> > Web:www.exprimo.com http://www.exprimo.com
> >
> > This e-mail is confidential. It is also privileged or otherwise protected by work product immunity or other legal rules. The information is intended to be for use of the individual or entity named above. If you are not the intended recipient, please be aware that any disclosure, copying, distribution or use of the contents of this information is prohibited. You should therefore delete this message from your computer system. If you have received the message in error, please notify us by reply e-mail. The integrity and security of this message cannot be guaranteed on the Internet.
> >
> > Thank you for your co-operation.
> >
> > This e-mail message has been scanned for Viruses by Norman Virus Control
> > and it's Content by MailMarshal * *
--
---
Xavier Woot de Trixhe, Ir
Exprimo NV
Tel:+32 (0)485 033872
E-mail: [email protected]
Web: www.exprimo.com
This e-mail is confidential. It is also privileged or otherwise protected by
work product immunity or other legal rules. The information is intended to be
for use of the individual or entity named above. If you are not the intended
recipient, please be aware that any disclosure, copying, distribution or use of
the contents of this information is prohibited. You should therefore delete
this message from your computer system. If you have received the message in
error, please notify us by reply e-mail. The integrity and security of this
message cannot be guaranteed on the Internet.
Thank you for your co-operation.