Ignore:
Timestamp:
Apr 12, 2021, 5:22:02 PM (7 months ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
arm-eh, jacob/cs343-translation, master, new-ast-unique-expr
Children:
7f5683e
Parents:
fe63ae6
Message:

Many small changes to prototype code

File:
1 edited

Legend:

Unmodified
Added
Removed
  • doc/theses/thierry_delisle_PhD/code/readyQ_proto/dynamic_entropy.hpp

    rfe63ae6 ra1b9bc3  
    3333                do {
    3434                        // Pick the index of a lane
    35                         i = idx_from_r(tls.rng1.next(), tls.my_queue);
     35                        i = idx_from_r(tls.rng1.next(), tls.my_queue).first;
    3636                        // i = ret.first; //local = ret.second;
    3737                        tls.stats.push.attempt++;
     
    4848                        // Pick two lists at random
    4949                        unsigned i, j;
    50                         // bool locali, localj;
    51                         i = idx_from_r(tls.rng2.prev(), tls.my_queue);
    52                         j = idx_from_r(tls.rng2.prev(), tls.my_queue);
    53 
    54                         // i = reti.first; //local = reti.second;
    55                         // j = retj.first; //local = retj.second;
     50                        bool locali, localj;
     51                        auto reti = idx_from_r(tls.rng2.prev(), tls.my_queue);
     52                        auto retj = idx_from_r(tls.rng2.prev(), tls.my_queue);
     53
     54                        i = reti.first; locali = reti.second;
     55                        j = retj.first; localj = retj.second;
    5656                        tls.stats.pop.attempt++;
    5757
     
    108108        }
    109109
    110         inline unsigned idx_from_r(unsigned r, unsigned preferred) {
     110        inline std::pair<unsigned, bool> idx_from_r(unsigned r, unsigned preferred) {
    111111                unsigned i;
    112                 // bool local;
     112                bool local;
    113113                unsigned rlow  = r % 4;
    114114                unsigned rhigh = r / 4;
     
    117117                        // Use perferred queues
    118118                        i = preferred + (rhigh % 4);
    119                         // local = true;
     119                        local = true;
    120120                }
    121121                else {
     
    123123                        // Use all queues
    124124                        i = rhigh;
    125                         // local = false;
    126                 }
    127                 return i % numLists;
     125                        local = false;
     126                }
     127                return {i % numLists, local};
    128128        }
    129129private:
     
    141141                Random     rng1 = { unsigned(std::hash<std::thread::id>{}(std::this_thread::get_id()) ^ rdtscl()) };
    142142                Random     rng2 = { unsigned(std::hash<std::thread::id>{}(std::this_thread::get_id()) ^ rdtscl()) };
     143                Random     rng3 = { unsigned(std::hash<std::thread::id>{}(std::this_thread::get_id()) ^ rdtscl()) };
    143144                unsigned   my_queue = calc_preferred();
    144145                struct {
     
    185186        }
    186187
    187         static void stats_print(std::ostream & os) {
     188        static void stats_print(std::ostream & os, double) {
    188189                        const auto & global = global_stats;
    189190
Note: See TracChangeset for help on using the changeset viewer.