JiscMail Logo
Email discussion lists for the UK Education and Research communities

Help for COMP-FORTRAN-90 Archives


COMP-FORTRAN-90 Archives

COMP-FORTRAN-90 Archives


COMP-FORTRAN-90@JISCMAIL.AC.UK


View:

Message:

[

First

|

Previous

|

Next

|

Last

]

By Topic:

[

First

|

Previous

|

Next

|

Last

]

By Author:

[

First

|

Previous

|

Next

|

Last

]

Font:

Proportional Font

LISTSERV Archives

LISTSERV Archives

COMP-FORTRAN-90 Home

COMP-FORTRAN-90 Home

COMP-FORTRAN-90  2004

COMP-FORTRAN-90 2004

Options

Subscribe or Unsubscribe

Subscribe or Unsubscribe

Log In

Log In

Get Password

Get Password

Subject:

Execution monitoring system

From:

Aleksandar Donev <[log in to unmask]>

Reply-To:

Fortran 90 List <[log in to unmask]>

Date:

Thu, 30 Sep 2004 12:43:43 -0400

Content-Type:

Multipart/Mixed

Parts/Attachments:

Parts/Attachments

text/plain (141 lines) , Test_Execution.WEB (159 lines)

Hello,

I have recently completed developing a system of utilities to
monitor/aid in the execution of a Fortran program, which is
compiler-independent and almost entirely written in Fortran. The system
is strongly based on macros (in FWEB) and thus not purely Fortran,
though the actual runtime is Fortran. The system tries to be geared
toward parallelism by keeping a separate "execution state" which can be
thread or process specific. I do not actually implement these in full
yet. It is also tries to use OOP stuff in strategic places to allow
easy extension/adaptation.

The execution monitoring system does multiple tasks:
1) Aids with output of user messages, warnings, errors, etc. to various
logs, either files, string buffers, or MPI files.
2) Allows one to trace the execution call sequence and include/exclude
portions of the call tree programatically, at either compile or
run-time. Various options can be programatically set for portions of
the call tree, such as whether to abort on a warning or not.
3) Aids in profiling the time spent in each procedure, and in fact uses
PAPI to profile other metrics as well, like L1 data misses. TAU can be
used to monitor this as well. Many compilers offer this themselves via
gprof, for example, but offer no programmatic control over it, which I
give, and also I integrate with PAPI.
4) Allows one to monitor heap allocations by replacing the traditional
(DE)ALLOCATE with a macro _(DE)ALLOCATE. It reports memory leaks and
other statistics at the end.
5) It will in the near future allow one to trace the execution via a
timestamped event-logging library (MPE---serial version not released
yet), to be visualized by a GUI.

Is there interest among people to learn more about this kind of thing (I
doubt that using the system directly is an option for anyone else, but
code can be borrowed of course). Maybe an article in the Forum or
alike. I just don't wanna spend the time if no one really cares. Do
other people have their own systems?

For those that like figuring things on their own, the attached program
(not pure Fortran!) can produce no output or as much as a detailed
trace, all controlled programatically:

[1349 Programs @ atom]$ Common/nf95/Test_Execution.x
Test_Execution starting...
Starting program Test_Execution at 12:37:59 on 30/ 9/2004
 Using initial random seed:  11327
_Test_1 starting...
 Debug message 1
__Test_2 starting...
___Test_2_random starting...
___Test_2_random ending.
___Test_2_matmul starting...
___Test_2_matmul ending.
___Test_3 starting...
____Test_3_loop starting...
 Sum=   1.6449339668473177
____Test_3_loop ending.
___Test_3 ending.
__Test_2 ending.
_Test_1 ending.
_Test_3 starting...
__Test_3_loop starting...
 Sum=   1.6449339668473177
__Test_3_loop ending.
_Test_3 ending.
_Test starting...
__Test starting...
___Test starting...
____Test starting...
_____Test starting...
______Test starting...
_______Test starting...
________Test starting...
_________Test starting...
__________Test starting...
___________Test starting...
___________Test ending.
__________Test ending.
_________Test ending.
________Test ending.
_______Test ending.
______Test ending.
_____Test ending.
____Test ending.
___Test ending.
__Test ending.
_Test ending.
Ending program Test_Execution at 12:38: 0 on 30/ 9/2004
Test_Execution ending.
Memory leak report:
______________________________
Heap status:  total_allocations=15 active_allocations=12
total_bytes=3004904 active_bytes=4904 max_bytes=3002000
Heap allocations still active:
---> p1 of size 44 bytes in Test
---> p2 of size 88 bytes in Test
---> p3 of size 132 bytes in Test
---> p4 of size 176 bytes in Test
---> p5 of size 220 bytes in Test
---> p6 of size 264 bytes in Test
---> p7 of size 308 bytes in Test
---> p8 of size 352 bytes in Test
---> p9 of size 396 bytes in Test
---> p10 of size 440 bytes in Test
---> p11 of size 484 bytes in Test
---> x of size 2000 bytes in Test_2
______________________________
Execution Profile summary:
______________________________
Total runtime (in s):    0.128802E+01
Hardware clock rate (in Hz):    0.179400E+10
n_calls     TIME    EXCL_DUR  USER    TOT_INS FP_INS  L1_DCM  TLB_DM
Test_3_loop
         2  37.669   100.000  90.884  17.664  52.517   0.001   0.000
         2  37.669 0.243E+06  90.884  17.664  52.517   0.001   0.000
Test_2_matmul
         1  22.547   100.000  95.307 107.426  45.528   5.032   0.030
         1  22.547 0.290E+06  95.307 107.426  45.528   5.032   0.030
Test_2
         1  22.178    33.898  94.014 109.146  45.427   5.083   0.020
         1  65.427 0.843E+06  94.822  80.421  45.491   3.474   0.017
Test_Execution
         1  14.563    14.563  95.603  12.943  23.535   0.251   0.000
         1 100.000 0.129E+07  92.748  58.235  45.013   2.318   0.012
Test_2_random
         1   1.827   100.000  83.121  42.522   7.526   0.024   0.010
         1   1.827 0.235E+05  83.121  42.522   7.526   0.024   0.010
Test
        11   0.420   100.000  73.394  37.208   0.000   0.499   0.013
        11   0.420 0.492E+03  73.394  37.208   0.000   0.499   0.013
Test_3
         2   0.151     0.399  59.738  35.423   0.000   0.380   0.011
         2  37.820 0.244E+06  90.695  17.704  52.278   0.002   0.000
Test_1
         1   0.092     0.140  66.122  36.954   0.021   0.369   0.020
         1  65.519 0.844E+06  94.765  80.383  45.472   3.471   0.017
______________________________

Thanks,
Aleks

Top of Message | Previous Page | Permalink

JiscMail Tools


RSS Feeds and Sharing


Advanced Options


Archives

December 2023
February 2023
November 2022
September 2022
February 2022
January 2022
June 2021
November 2020
September 2020
June 2020
May 2020
April 2020
December 2019
October 2019
September 2019
March 2019
February 2019
January 2019
November 2018
October 2018
September 2018
August 2018
July 2018
May 2018
April 2018
March 2018
February 2018
January 2018
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
January 2017
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
December 2015
November 2015
October 2015
September 2015
August 2015
June 2015
April 2015
March 2015
January 2015
December 2014
November 2014
October 2014
August 2014
July 2014
May 2014
April 2014
March 2014
February 2014
January 2014
December 2013
November 2013
July 2013
June 2013
May 2013
April 2013
February 2013
January 2013
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
April 2012
March 2012
February 2012
January 2012
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
December 2010
November 2010
October 2010
August 2010
July 2010
June 2010
March 2010
February 2010
January 2010
December 2009
October 2009
August 2009
July 2009
June 2009
March 2009
February 2009
January 2009
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
January 2007
2006
2005
2004
2003
2002
2001
2000
1999
1998
1997


JiscMail is a Jisc service.

View our service policies at https://www.jiscmail.ac.uk/policyandsecurity/ and Jisc's privacy policy at https://www.jisc.ac.uk/website/privacy-notice

For help and support help@jisc.ac.uk

Secured by F-Secure Anti-Virus CataList Email List Search Powered by the LISTSERV Email List Manager