Commit 8933935fbd29c82f62ea26947e6b271e0c3e61f1
1 parent
0a575bb1
updated VERBOSE information for optimization
Showing
2 changed files
with
5 additions
and
5 deletions
Show diff stats
stim/envi/binary.h
... | ... | @@ -54,7 +54,7 @@ protected: |
54 | 54 | public: |
55 | 55 | |
56 | 56 | //constructor initializes a stream optimizer |
57 | - stream_optimizer(size_t min_batch_size, size_t max_batch_size, double a = 0.0001, size_t window = 1000){ | |
57 | + stream_optimizer(size_t min_batch_size, size_t max_batch_size, double a = 0.001, double probe_step = 5, size_t window = 2000){ | |
58 | 58 | //Bps = 0; //initialize to zero bytes per second processed |
59 | 59 | Bps[0] = Bps[1] = 0; //initialize the bits per second to 0 |
60 | 60 | interval_B = 0; //zero bytes have been processed at initialization |
... | ... | @@ -62,7 +62,7 @@ public: |
62 | 62 | dn = min_batch_size; //set the minimum batch size as the minimum change in batch size |
63 | 63 | maxn = max_batch_size; //set the maximum batch size |
64 | 64 | n[0] = max_batch_size; //set B |
65 | - h = (max_batch_size / min_batch_size) / 10 * dn; | |
65 | + h = (max_batch_size / min_batch_size) / probe_step * dn; | |
66 | 66 | std::cout<<"h = "<<h<<std::endl; |
67 | 67 | if(h < dn) h = dn; |
68 | 68 | alpha = a; | ... | ... |
stim/envi/bsq.h
... | ... | @@ -400,7 +400,7 @@ public: |
400 | 400 | |
401 | 401 | if(VERBOSE){ |
402 | 402 | std::cout<<"maximum memory available for processing: "<<(double)binary<T>::buffer_size/(double)1000000<<" MB"<<std::endl; |
403 | - std::cout<<" this supports a batch size of "<<max_slices_per_batch<<" Y-axis slices"<<std::endl; | |
403 | + std::cout<<" this supports a batch size of "<<max_slices_per_batch<<" Y-axis slices ("<<X()<<" x "<<Z()<<")"<<std::endl; | |
404 | 404 | } |
405 | 405 | |
406 | 406 | if(max_slices_per_batch == 0){ //if there is insufficient memory for a single slice, throw an error |
... | ... | @@ -449,7 +449,7 @@ public: |
449 | 449 | //} |
450 | 450 | if(y_load + N[b] > Y()) N[b] = Y() - y_load; //if the next batch would process more than the total slices, adjust the batch size |
451 | 451 | rthread = std::async(std::launch::async, &stim::bsq<T>::readlines, this, src[b], y_load, N[b]); |
452 | - rt_total += rthread.get(); | |
452 | + //rt_total += rthread.get(); | |
453 | 453 | y_load += N[b]; //increment the number of loaded slices |
454 | 454 | } |
455 | 455 | |
... | ... | @@ -461,7 +461,7 @@ public: |
461 | 461 | t_end = std::chrono::high_resolution_clock::now(); |
462 | 462 | t_batch = std::chrono::duration_cast<std::chrono::milliseconds>(t_end-t_start).count(); |
463 | 463 | t_total += t_batch; |
464 | - //if(y_load < Y()) rt_total += rthread.get(); //if a new batch was set to load, make sure it loads after calculations | |
464 | + if(y_load < Y()) rt_total += rthread.get(); //if a new batch was set to load, make sure it loads after calculations | |
465 | 465 | N[b] = O.update(N[!b] * slice_bytes, t_batch, data_rate); //set the batch size based on optimization |
466 | 466 | //std::cout<<"New N = "<<N[!b]<<" selected with "<<(double)data_rate / 1000000<<" MB/s"<<std::endl; |
467 | 467 | } | ... | ... |