source: anuga_validation/automated_validation_tests/fitting/validate_benchmark_fit.py @ 5505

Last change on this file since 5505 was 5389, checked in by ole, 17 years ago

Better error message in validate_benchmark_fit

File size: 3.9 KB
Line 
1"""Automatic verification that the ANUGA fitting code is not taking more time
2or memory than usual.  This test has been tailored for computers in GA.
3
4I'm leaving a 20% error margin
5
6Note, going from version 4897 to 4917 uses more memory, based on how
7memory is measured here. What is actually happening is the mesh
8generation is using less memory, in version 4917.  In version 4897
9mesh gen uses and frees up more memory, so python asks for less extra
10memory in the fitting stage.  So overall version 4917 is an
11improvement.
12
13RAW DATA
14 version 4897
15test_fit_time_and_mem (__main__.Test_uq) ...  very start mem_usage() 98108
16 before fitting mem_usage() 134696
17 after fitting mem_usage() 155820
18
19version 4917
20test_fit_time_and_mem (__main__.Test_uq) ...  very start mem_usage() 98076
21 before fitting mem_usage() 120012
22 after fitting mem_usage() 150212
23time 15.19490695
24mem 30200
25
26"""
27
28import unittest
29import os, sys
30
31from anuga.fit_interpolate.benchmark_least_squares import BenchmarkLeastSquares
32
33class Test_uq(unittest.TestCase):
34    def setUp(self):
35        pass
36       
37
38    def tearDown(self):
39        pass
40
41    # FIXME test the time to put .pts elevation into a domain object
42    # FIXME do tests for interpolate as well.
43
44    # A version round 4872 has slower times.
45    # That's because v4872 is using geo-ref, whereas the
46    # previous version did not.
47    def test_fit_time_and_mem(self):
48        import socket
49        host =  socket.gethostname()
50        #print "host", host
51        ben = BenchmarkLeastSquares()
52        time, mem, num_tri, one_t, more_t, quad_t = ben.trial(
53            num_of_points=1000
54            ,maxArea=0.0001
55            ,is_fit=True
56            ,segments_in_mesh=False
57            ,use_file_type='pts'
58            ,save=False
59            )
60        #print "time", time
61        #print "mem", mem
62        if host.find('tornado') == 0 or host.find('compute-1') == 0:
63            # Tornado headnode or node
64            time_standard = 14.5
65            self.assert_(time<time_standard*1.2)
66            mem_standard = 302404 
67            #
68            self.assert_(mem<mem_standard*1.2)
69           
70        elif host.find('compute-0') == 0: # cyclone node
71            time_standard = 19.0
72            self.assert_(time<time_standard*1.2)
73            mem_standard = 30204
74            self.assert_(mem<mem_standard*1.2)
75
76        elif host.find('cyclone') == 0: # cyclone headnode
77            time_standard = 13.3
78            self.assert_(time<time_standard*1.2)
79            mem_standard = 29424
80            self.assert_(mem<mem_standard*1.2)
81
82        elif host.find('nautilus') == 0:
83            time_standard = 27.6
84            self.assert_(time<time_standard*1.2)
85             # v 4910 is giving a mem of 15572
86            mem_standard = 15572 # !!!
87            msg = 'Memory used was %d, mem_standard is %d' %(mem, mem_standard)                       
88            self.assert_(mem<mem_standard*1.2), msg
89
90        elif host.find('bogong') == 0:
91            time_standard = 14.2
92            self.assert_(time<time_standard*1.2)
93            mem_standard = 30000 # Updated by Ole 20080507
94            msg = 'Memory used was %d, mem_standard is %d' %(mem, mem_standard)           
95            assert mem < mem_standard*1.2, msg           
96
97        elif host.find('pc-31569') == 0: # DSG's PC
98            time_standard = 31.6
99            self.assert_(time<time_standard*1.2)
100
101            """
102            test_fit_time_and_mem (__main__.Test_uq) ...  very start mem_usage() 98076
103 before fitting mem_usage() 120012
104 after fitting mem_usage() 150212
105time 15.19490695
106mem 30200
107
108test_fit_time_and_mem (__main__.Test_uq) ...  very start mem_usage() 98108
109 before fitting mem_usage() 134696
110 after fitting mem_usage() 155820
111
112            """
113           
114#-------------------------------------------------------------
115if __name__ == "__main__":
116    suite = unittest.makeSuite(Test_uq,'test')
117    runner = unittest.TextTestRunner(verbosity=2)
118    runner.run(suite)
Note: See TracBrowser for help on using the repository browser.