/[escript]/trunk/paso/src/performance.h
ViewVC logotype

Contents of /trunk/paso/src/performance.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2548 - (show annotations)
Mon Jul 20 06:20:06 2009 UTC (10 years, 4 months ago) by jfenwick
File MIME type: text/plain
File size: 2458 byte(s)
Updating copyright notices
1
2 /*******************************************************
3 *
4 * Copyright (c) 2003-2009 by University of Queensland
5 * Earth Systems Science Computational Center (ESSCC)
6 * http://www.uq.edu.au/esscc
7 *
8 * Primary Business: Queensland, Australia
9 * Licensed under the Open Software License version 3.0
10 * http://www.opensource.org/licenses/osl-3.0.php
11 *
12 *******************************************************/
13
14
15 /**************************************************************/
16
17 /* Paso: perfomance monitor interface using papi */
18
19 /**************************************************************/
20
21 /* Copyrights by ACcESS Australia 2006 */
22 /* Author: gross@access.edu.au */
23
24 /**************************************************************/
25
26 #ifndef INC_PASO_PERFORMANCE
27 #define INC_PASO_PERFORMANCE
28
29 #define PERFORMANCE_UNMONITORED_EVENT -1
30 #define PERFORMANCE_NUM_EVENTS 10 /* maximum number of events handeled by PAPI */
31
32 #define PERFORMANCE_ALL 0
33 #define PERFORMANCE_SOLVER 1
34 #define PERFORMANCE_PRECONDITIONER_INIT 2
35 #define PERFORMANCE_PRECONDITIONER 3
36 #define PERFORMANCE_MVM 4
37 #define PERFORMANCE_ASSEMBLAGE 5
38 #define PERFORMANCE_UNKNOWN 6 /* more can be added here */
39 #define PERFORMANCE_NUM_MONITORS PERFORMANCE_UNKNOWN+1
40
41 #define PERFORMANCE_UNUSED -1
42 #define PERFORMANCE_CLOSED 0
43 #define PERFORMANCE_OPENED 1
44
45 #ifdef PAPI
46 #include <papi.h>
47 struct Paso_Performance {
48 int event_set; /* papi event sets for the monitors */
49 int num_events; /* number of events tracked by the monitors */
50 int events[PERFORMANCE_NUM_EVENTS]; /* the event tracked by the monitors */
51 long_long values[PERFORMANCE_NUM_MONITORS][PERFORMANCE_NUM_EVENTS]; /* counter accummulator */
52 long_long cycles[PERFORMANCE_NUM_MONITORS]; /* cycle accumulator */
53 int set[PERFORMANCE_NUM_MONITORS];
54 };
55 #else
56 struct Paso_Performance {
57 int none;
58 };
59 #endif
60 typedef struct Paso_Performance Paso_Performance;
61
62
63 void Performance_open(Paso_Performance* pp,int verbose);
64 int Performance_getEventIndex(Paso_Performance* pp, int event_id);
65 void Performance_close(Paso_Performance* pp,int verbose);
66 void Performance_startMonitor(Paso_Performance* pp,int monitor);
67 void Performance_stopMonitor(Paso_Performance* pp,int monitor);
68
69 #endif
70
71 /*
72 * $Log$
73 */

  ViewVC Help
Powered by ViewVC 1.1.26