コード例 #1
0
int main(int argc, char** argv){
	#ifdef MPI
	MPI_Init(&argc, &argv);
	#endif

	int power;
	init_msr();

	struct rapl_data r[NUM_SOCKETS]; 
	
        int socket;
	
	for(socket=0; socket<NUM_SOCKETS; socket++)
		r[socket].flags =  RDF_REENTRANT | RDF_INIT;
	// Initialize r
	for(socket=0; socket<NUM_SOCKETS; socket++) 
		read_rapl_data(socket, &r[socket]);

	sleep(1);	
	perform_rapl_measurement(r);
	for(power=5; power<150; power+=10) {
		rapl_set_test(power);
		sleep(10);
		perform_rapl_measurement(r);
	}

	finalize_msr();

	#ifdef MPI
	MPI_Finalize();
	#endif

	return 0;
}
コード例 #2
0
ファイル: msr_rapl.c プロジェクト: LLNL/libmsr
int poll_rapl_data(void)
{
    static struct rapl_data *rapl = NULL;

#ifdef LIBMSR_DEBUG
    fprintf(stderr, "%s %s::%d DEBUG: (poll_rapl_data) socket=%lu\n", getenv("HOSTNAME"), __FILE__, __LINE__, num_sockets());
#endif

    if (rapl == NULL)
    {
        if (rapl_storage(&rapl, NULL))
        {
            return -1;
        }
    }

    if (rapl == NULL)
    {
        libmsr_error_handler("poll_rapl_data(): RAPL init failed or has not yet been called", LIBMSR_ERROR_RAPL_INIT, getenv("HOSTNAME"), __FILE__, __LINE__);
        return -1;
    }

    read_rapl_data();
    delta_rapl_data();

    return 0;
}
コード例 #3
0
void perform_rapl_measurement(struct rapl_data* r) {
	int socket;
	for(socket=0; socket<NUM_SOCKETS; socket++)
		fprintf(stdout,"pkgW%02d\tpkgE%02d\tdramW%02d\tdramE%02d\telapsed%02d\t", socket, socket, socket, socket, socket );
	fprintf(stdout, "\n");

	for(socket=0; socket<NUM_SOCKETS; socket++) {
		r[socket].flags = RDF_REENTRANT;
		read_rapl_data(socket, &r[socket]);
		fprintf(stdout,"%8.6lf\t%8.6lf\t%8.6lf\t%8.6lf\t%8.6lf\t", r[socket].pkg_watts, r[socket].pkg_delta_joules, r[socket].dram_watts, r[socket].dram_delta_joules, r[socket].elapsed);
	}
	fprintf(stdout, "\n");
}
コード例 #4
0
ファイル: msr_rapl.c プロジェクト: LLNL/libmsr
int dump_rapl_data_terse(FILE *writedest)
{
    int socket;
    static struct rapl_data *rapl = NULL;
    static uint64_t *rapl_flags = NULL;
    static uint64_t sockets = 0;

    if (rapl == NULL || rapl_flags == NULL || sockets == 0)
    {
        sockets = num_sockets();
        if (rapl_storage(&rapl, &rapl_flags))
        {
            return -1;
        }
    }

#ifdef LIBMSR_DEBUG
    fprintf(writedest, "%s %s::%d Writing terse label\n", getenv("HOSTNAME"), __FILE__, __LINE__);
#endif
    read_rapl_data();
    delta_rapl_data();

    for (socket = 0; socket < sockets; socket++)
    {
        /* Check to see which registers are available. */
        if (*rapl_flags & PKG_ENERGY_STATUS)
        {
            fprintf(writedest, "%8.4lf ", rapl->pkg_watts[socket]);
        }
        if (*rapl_flags & DRAM_ENERGY_STATUS)
        {
            fprintf(writedest, "%8.4lf ", rapl->dram_watts[socket]);
        }
    }
    return 0;
}