ailab/benchmark/models.py (109 lines of code) (raw):

# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models class BenchmarkInfo(models.Model): command = models.TextField(null=False) start_time = models.DateTimeField(null=True) done_time = models.DateTimeField(null=True) status = models.CharField( max_length=10, choices=[ ("Q", "QUEUE"), ("C", "CLAIMED"), ("R", "RUNNING"), ("D", "DONE"), ("F", "FAILED"), ("E", "USER_ERROR"), ], default="QUEUE", null=False, ) result = models.TextField(null=True) identifier = models.BigIntegerField(null=False) claimer = models.CharField(max_length=40, null=True) benchmarks = models.TextField(null=True) claimed_time = models.DateTimeField(null=True) device = models.CharField(max_length=40, null=True) log = models.TextField(null=True) failed_time = models.DateTimeField(null=True) user = models.CharField(max_length=40, null=True) job_queue = models.CharField(max_length=40, null=False, default="pep_interactive") queue_time = models.DateTimeField(auto_now_add=True, null=True) class Meta: indexes = [ models.Index(fields=["status"]), models.Index(fields=["identifier"]), models.Index(fields=["claimer"]), models.Index(fields=["device"]), models.Index(fields=["job_queue"]), ] class Device(models.Model): device = models.CharField(max_length=64, null=True) status = models.CharField( max_length=9, choices=[ ("AVA", "AVAILABLE"), ("OCC", "OCCUPIED"), ("OFF", "OFFLINE"), ("DIS", "DISABLED"), ], null=True, ) claimer = models.CharField(max_length=40, null=True) hash = models.CharField(max_length=32, null=True, unique=True) update_time = models.DateTimeField(null=True) heartbeat_time = models.DateTimeField(null=True) job_queue = models.CharField(max_length=40, null=False, default="pep_interactive") class Meta: indexes = [ models.Index(fields=["device"]), models.Index(fields=["status"]), models.Index(fields=["claimer"]), models.Index(fields=["job_queue"]), ] class BenchmarkResult(models.Model): # Count num_runs = models.BigIntegerField(null=True) time = models.BigIntegerField(null=True) control_commit_time = models.BigIntegerField(null=True) commit_time = models.BigIntegerField(null=True) control_stdev = models.BigIntegerField(null=True) stdev = models.BigIntegerField(null=True) control_mean = models.BigIntegerField(null=True) mean = models.BigIntegerField(null=True) diff_mean = models.BigIntegerField(null=True) control_p0 = models.BigIntegerField(null=True) p0 = models.BigIntegerField(null=True) diff_p0 = models.BigIntegerField(null=True) control_p10 = models.BigIntegerField(null=True) p10 = models.BigIntegerField(null=True) diff_p10 = models.BigIntegerField(null=True) control_p50 = models.BigIntegerField(null=True) p50 = models.BigIntegerField(null=True) diff_p50 = models.BigIntegerField(null=True) control_p90 = models.BigIntegerField(null=True) p90 = models.BigIntegerField(null=True) diff_p90 = models.BigIntegerField(null=True) control_p100 = models.BigIntegerField(null=True) p100 = models.BigIntegerField(null=True) diff_p100 = models.BigIntegerField(null=True) control_p95 = models.BigIntegerField(null=True) p95 = models.BigIntegerField(null=True) control_p99 = models.BigIntegerField(null=True) p99 = models.BigIntegerField(null=True) # Normals control_commit = models.TextField(null=True) commit = models.TextField(null=True) backend = models.TextField(null=True) command = models.TextField(null=True) framework = models.TextField(null=True) group = models.TextField(null=True) identifier = models.TextField(null=True) info_string = models.TextField(null=True) metric = models.TextField(null=True) model = models.TextField(null=True) platform = models.TextField(null=True) platform_hash = models.TextField(null=True) type = models.TextField(null=True) unit = models.TextField(null=True) user = models.TextField(null=True) user_identifier = models.TextField(null=True) # Normal Vectors control_values = models.TextField(null=True) # JSON-serialized list values = models.TextField(null=True) # JSON-serialized list