Skip to content

Commit 9239ee8

Browse files
committed
Fallback resources: allocated to measured (#3998)
* add merge default to rmsummary * fallback to committe resources when monitoring not enabled
1 parent 0308a13 commit 9239ee8

File tree

3 files changed

+28
-5
lines changed

3 files changed

+28
-5
lines changed

dttools/src/rmsummary.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -742,6 +742,21 @@ void rmsummary_merge_override_basic(struct rmsummary *dest, const struct rmsumma
742742
RM_BIN_OP_BASIC(dest, src, override_field);
743743
}
744744

745+
/* Copy the value for all the fields in src to dest when dest < 0 */
746+
static inline double default_field(double d, double s)
747+
{
748+
return (d > -1) ? d : s;
749+
}
750+
751+
void rmsummary_merge_default(struct rmsummary *dest, const struct rmsummary *src)
752+
{
753+
if (!src) {
754+
return;
755+
}
756+
757+
RM_BIN_OP(dest, src, default_field);
758+
}
759+
745760
struct rmsummary *rmsummary_copy(const struct rmsummary *src, int deep_copy)
746761
{
747762
struct rmsummary *dest = rmsummary_create(-1);

dttools/src/rmsummary.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ void rmsummary_merge_max_w_time(struct rmsummary *dest, const struct rmsummary *
111111
struct rmsummary *rmsummary_copy(const struct rmsummary *src, int deep_copy);
112112
void rmsummary_merge_override(struct rmsummary *dest, const struct rmsummary *src);
113113
void rmsummary_merge_override_basic(struct rmsummary *dest, const struct rmsummary *src);
114+
void rmsummary_merge_default(struct rmsummary *dest, const struct rmsummary *src);
114115
void rmsummary_merge_max(struct rmsummary *dest, const struct rmsummary *src);
115116
void rmsummary_merge_min(struct rmsummary *dest, const struct rmsummary *src);
116117
void rmsummary_add(struct rmsummary *dest, const struct rmsummary *src);

taskvine/src/manager/vine_manager.c

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -564,12 +564,17 @@ static vine_result_code_t get_completion_result(struct vine_manager *q, struct v
564564
t->time_workers_execute_last = observed_execution_time > execution_time ? execution_time : observed_execution_time;
565565
t->time_workers_execute_last_start = start_time;
566566
t->time_workers_execute_last_end = end_time;
567-
t->resources_measured->wall_time = t->time_workers_execute_last_end - t->time_workers_execute_last_start;
568567
t->time_workers_execute_all += t->time_workers_execute_last;
569568
t->output_length = output_length;
570569
t->result = task_status;
571570
t->exit_code = exit_status;
572571

572+
/* fill resources measured with whatever vine reported/committed, as a fallback when task ran without monitoring enabled */
573+
t->resources_measured->start = ((double)start_time) / ONE_SECOND;
574+
t->resources_measured->end = ((double)end_time) / ONE_SECOND;
575+
t->resources_measured->wall_time = ((double)t->time_workers_execute_last) / ONE_SECOND;
576+
rmsummary_merge_override_basic(t->resources_measured, t->resources_allocated);
577+
573578
/* If output is less than 1KB stdout is sent along with completion msg. retrieve it from the link. */
574579
if (bytes_sent) {
575580
get_stdout(q, w, t, bytes_sent);
@@ -1156,12 +1161,14 @@ static void read_measured_resources(struct vine_manager *q, struct vine_task *t)
11561161
{
11571162
char *summary = monitor_file_name(q, t, ".summary", 0);
11581163

1159-
if (t->resources_measured) {
1160-
rmsummary_delete(t->resources_measured);
1161-
}
1162-
1164+
struct rmsummary *tmp = t->resources_measured;
11631165
t->resources_measured = rmsummary_parse_file_single(summary);
11641166

1167+
/* read the fallback values set by get_completion_result, if any */
1168+
/* if tmp is null that's ok, both delete and merge_default check for it */
1169+
rmsummary_merge_default(t->resources_measured, tmp);
1170+
rmsummary_delete(tmp);
1171+
11651172
if (t->resources_measured) {
11661173
t->exit_code = t->resources_measured->exit_status;
11671174

0 commit comments

Comments
 (0)