Changeset e2f827f


Ignore:
Timestamp:
Mar 30, 2023, 4:01:44 PM (16 months ago)
Author:
caparson <caparson@…>
Branches:
ADT, ast-experimental, master
Children:
d24b1985
Parents:
76a8400
Message:

added go counterpart to cfa benchmarks

Location:
doc/theses/colby_parsons_MMAth/benchmarks/channels/go
Files:
13 added
1 moved

Legend:

Unmodified
Added
Removed
  • doc/theses/colby_parsons_MMAth/benchmarks/channels/go/contend/contend.go

    r76a8400 re2f827f  
    6464                case 3:
    6565                        if os.Args[2] != "d" {                                                  // default ?
    66                                 ChannelSize, _ = strconv.Atoi( os.Args[1] )
     66                                ChannelSize, _ = strconv.Atoi( os.Args[2] )
    6767                                        if ChannelSize < 0 { usage(); }
    6868                        } // if
     
    7878        } // switch
    7979        runtime.GOMAXPROCS( Processors );
    80         ProdsPerChan = Processors
    81         ConsPerChan = Processors
     80        ProdsPerChan = Processors /2
     81        ConsPerChan = Processors / 2
    8282
    8383        // fmt.Println("Processors: ",Processors," Channels: ",Channels," ProdsPerChan: ",ProdsPerChan," ConsPerChan: ",ConsPerChan," Channel Size: ",ChannelSize)
     
    108108        cons_done = true
    109109        for i := range chans {
    110                 J: for j := 0; j < ConsPerChan; j++ {
     110                L: for {
    111111                        select {
    112                                 case chans[i] <- 0:
    113                                        
     112                                case k := <-chans[i]:
     113                                        cons_check = cons_check ^ k
    114114                                default:
    115                                         break J
     115                                        break L
    116116                        }
    117117                }
    118118        }
     119        for i := range chans {
     120                close(chans[i])
     121        }
     122
    119123        for j := 0; j < ConsPerChan * Channels; j++{
    120124                <-consJoin
    121125        }
    122126       
    123         // for i := range chans {
    124         //      L: for {
    125         //              select {
    126         //                      case k := <-chans[i]:
    127         //                              cons_check = cons_check ^ k
    128         //                      default:
    129         //                              break L
    130         //              }
    131         //      }
    132         // }
     127       
    133128        if cons_check != prod_check {
    134129                fmt.Println("\nChecksum mismatch: Cons: %d, Prods: %d", cons_check, prod_check)
    135130        }
    136         for i := range chans {
    137                 close(chans[i])
    138         }
    139131    fmt.Println(total_operations)
    140132}
Note: See TracChangeset for help on using the changeset viewer.