00001 /* 00002 Copyright (C) 2013- The University of Notre Dame 00003 This software is distributed under the GNU General Public License. 00004 See the file COPYING for details. 00005 */ 00006 00007 #ifndef WORK_QUEUE_RESOURCES_H 00008 #define WORK_QUEUE_RESOURCES_H 00009 00010 #include "link.h" 00011 #include "jx.h" 00012 00013 struct work_queue_resource { 00014 int64_t inuse; 00015 int64_t total; 00016 int64_t smallest; 00017 int64_t largest; 00018 }; 00019 00020 struct work_queue_resources { 00021 int64_t tag; // Identifies the resource snapshot. 00022 struct work_queue_resource workers; 00023 struct work_queue_resource disk; 00024 struct work_queue_resource cores; 00025 struct work_queue_resource memory; 00026 struct work_queue_resource gpus; 00027 struct work_queue_resource unlabeled; 00028 }; 00029 00030 struct work_queue_resources * work_queue_resources_create(); 00031 void work_queue_resources_delete( struct work_queue_resources *r ); 00032 void work_queue_resources_debug( struct work_queue_resources *r ); 00033 void work_queue_resources_measure_locally( struct work_queue_resources *r, const char *workspace ); 00034 void work_queue_resources_send( struct link *master, struct work_queue_resources *r, time_t stoptime ); 00035 void work_queue_resources_clear( struct work_queue_resources *r ); 00036 void work_queue_resources_add( struct work_queue_resources *total, struct work_queue_resources *r ); 00037 void work_queue_resources_add_to_jx( struct work_queue_resources *r, struct jx *j ); 00038 00039 #endif