performance/Makefile

include ../Makefile.def

ALL = signaloverhead timeroverhead pipes socketlocal \
      fifoserver fifoclient shared \
      tcpsclientoverhead tcpsserverconcurrentoverhead semaphore \
      tcpsserverconcurrent tcpsclientthroughput \
      udpsserver udpsclient message \
      systemcalloverhead memory

all: $(ALL)

# generate performance data

dataget:
    # measure memory throughput
    memory >memory.log
    #   
    # measure system call overhead
    systemcalloverhead >systemcalloverhead.log
    #
    # measure signal time
    signaloverhead >signaloverhead.log
    #
    # measure timer overhead
    timeroverhead >timeroverhead.log
    #
    # measure pipe throughput
    pipes
    #
    # measure throughput of local sockets
    socketlocal
    #
    # measures fifo throughput
    fifoserver &
    sleep 3
    fifoclient
    #
    # System V IPC
    #
    # measure how many sem ops per sec
    semaphore >semaphore.log
    #
    # measure how many shared memory region ops per sec
    shared >shared.log
    #
    # measure throughput and ops/s of messages
    message >message.log
    #
    # local TCP / UDP   
    #
    # measure (local) UDP throughput and ops/s
    udpsserver 6543 &
    sleep 3
    udpsclient 127.0.0.1 6543
    #
    # measure (local) TCP throughput
    tcpsserverconcurrent 6542 &
    sleep 3
    tcpsclientthroughput 127.0.0.1 6542
    #
    # measure overhead of establishing a (local) TCP connection
    tcpsserverconcurrentoverhead 6541 &
    sleep 3
    tcpsclientoverhead  127.0.0.1 6541
    #
    #
    ## dist TCP / UDP
    ##
    ## measure (dist) UDP throughput and ops/s
    #udpsserver 6543 &
    #udpsclient 127.0.0.1 6543
    ##
    ## measure (dist) TCP throughput
    #tcpsserverconcurrent 6542 &
    #tcpsclientthroughput 127.0.0.1 6542
    ##
    ## measure overhead of establishing a (dist) TCP connection
    #tcpsserverconcurrentoverhead 6541 &
    #tcpsclientoverhead 127.0.0.1 6541


# rename log files

datamove:
    echo $(HOSTTYPE) $(OSTYPE)
    # move data files
    mv systemcalloverhead.log systemcalloverhead.log.$(OSTYPE) 
    mv fifoclient.write.data fifoclient.write.data.$(OSTYPE)
    mv fifoclient.write.log fifoclient.write.log.$(OSTYPE)
    mv fifoserver.read.data fifoserver.read.data.$(OSTYPE)
    mv fifoserver.read.log fifoserver.read.log.$(OSTYPE)
    mv memory.log memory.log.$(OSTYPE)
    mv message.log message.log.$(OSTYPE)
    mv message.write.data message.write.data.$(OSTYPE)
    mv pipes.read.data pipes.read.data.$(OSTYPE)
    mv pipes.read.log pipes.read.log.$(OSTYPE)
    mv pipes.read2.data pipes.read2.data.$(OSTYPE)
    mv pipes.read2.log pipes.read2.log.$(OSTYPE)
    mv pipes.write.data pipes.write.data.$(OSTYPE)
    mv pipes.write.log pipes.write.log.$(OSTYPE)
    mv pipes.write2.data pipes.write2.data.$(OSTYPE)
    mv pipes.write2.log pipes.write2.log.$(OSTYPE)
    mv semaphore.log semaphore.log.$(OSTYPE)
    mv shared.log shared.log.$(OSTYPE)
    mv shared.mes.data shared.mes.data.$(OSTYPE)
    mv signaloverhead.log signaloverhead.log.$(OSTYPE)
    mv socketlocal.read.data socketlocal.read.data.$(OSTYPE)
    mv socketlocal.read.log socketlocal.read.log.$(OSTYPE)
    mv socketlocal.read2.data socketlocal.read2.data.$(OSTYPE)
    mv socketlocal.read2.log socketlocal.read2.log.$(OSTYPE)
    mv socketlocal.write.data socketlocal.write.data.$(OSTYPE)
    mv socketlocal.write.log socketlocal.write.log.$(OSTYPE)
    mv socketlocal.write2.data socketlocal.write2.data.$(OSTYPE)
    mv socketlocal.write2.log socketlocal.write2.log.$(OSTYPE)
    mv tcpsclientoverhead.mes.data tcpsclientoverhead.mes.data.$(OSTYPE)
    mv tcpsclientoverhead.mes.log tcpsclientoverhead.mes.log.$(OSTYPE)
    mv tcpsclientthroughput.write.data tcpsclientthroughput.write.data.$(OSTYPE)
    mv tcpsclientthroughput.write.log tcpsclientthroughput.write.log.$(OSTYPE)
    mv tcpsserverconcurrent.read.data tcpsserverconcurrent.read.data.$(OSTYPE)
    mv tcpsserverconcurrent.read.log tcpsserverconcurrent.read.log.$(OSTYPE)
    mv timeroverhead.log timeroverhead.log.$(OSTYPE)
    mv udpsclient.mes.data udpsclient.mes.data.$(OSTYPE)
    mv udpsclient.mes.log udpsclient.mes.log.$(OSTYPE)
    mv udpsclient.mes2.data udpsclient.mes2.data.$(OSTYPE)
    mv udpsclient.mes2.log udpsclient.mes2.log.$(OSTYPE)

datamovedist:
    mv tcpsclientoverhead.mes.data tcpsclientoverhead.mes.data.dist.hpux
    mv tcpsclientoverhead.mes.log tcpsclientoverhead.mes.log.dist.hpux
    mv tcpsclientthroughput.write.data tcpsclientthroughput.write.data.dist.hpux
    mv tcpsclientthroughput.write.log tcpsclientthroughput.write.log.dist.hpux
    mv tcpsserverconcurrent.read.data tcpsserverconcurrent.read.data.dist.hpux
    mv tcpsserverconcurrent.read.log tcpsserverconcurrent.read.log.dist.hpux


# generate postscript performance pictures
# changing to another system like this:
## find . -name '*.gnuplot' -exec ../../bin/replace "Linux" "hpux" \{\} \;

dataeps:
    gnuplot fifo.gnuplot.Linux
    gnuplot fifo.gnuplot.SunOS5
    gnuplot fifo.gnuplot.hpux
    gnuplot message.gnuplot.Linux
    gnuplot message.gnuplot.SunOS5
    gnuplot message.gnuplot.hpux
    gnuplot pipes.gnuplot.Linux
    gnuplot pipes.gnuplot.SunOS5
    gnuplot pipes.gnuplot.hpux
    gnuplot shared.gnuplot.Linux
    gnuplot shared.gnuplot.SunOS5
    gnuplot shared.gnuplot.hpux
    gnuplot socketlocal.gnuplot.Linux
    gnuplot socketlocal.gnuplot.SunOS5
    gnuplot socketlocal.gnuplot.hpux
    gnuplot tcpsthroughput.gnuplot.Linux
    gnuplot tcpsthroughput.gnuplot.SunOS5
    gnuplot tcpsthroughput.gnuplot.aidanpike
    gnuplot tcpsthroughput.gnuplot.hphp
    gnuplot tcpsthroughput.gnuplot.hpux
    gnuplot udps.gnuplot.Linux
    gnuplot udps.gnuplot.SunOS5
    gnuplot udps.gnuplot.aidanpike
    gnuplot udps.gnuplot.hphp
    gnuplot udps.gnuplot.hpux
    gnuplot fifo.gnuplot
    gnuplot message.gnuplot
    gnuplot pipes.gnuplot
    gnuplot shared.gnuplot
    gnuplot socketlocal.gnuplot
    gnuplot tcpsthroughput.gnuplot
    gnuplot udps.gnuplot


# generate time per operation data from log files

datagettime:
    gendat ./fifoclient.write.log.Linux >./fifoclient.write.datat.Linux
    gendat ./fifoclient.write.log.SunOS5 >./fifoclient.write.datat.SunOS5
    gendat ./fifoclient.write.log.hpux >./fifoclient.write.datat.hpux
    gendat ./fifoserver.read.log.Linux >./fifoserver.read.datat.Linux
    gendat ./fifoserver.read.log.SunOS5 >./fifoserver.read.datat.SunOS5
    gendat ./fifoserver.read.log.hpux >./fifoserver.read.datat.hpux
    gendat ./message.log.Linux >./message.datat.Linux
    gendat ./message.log.SunOS5 >./message.datat.SunOS5
    gendat ./message.log.hpux >./message.datat.hpux
    gendat ./pipes.read.log.Linux >./pipes.read.datat.Linux
    gendat ./pipes.read.log.SunOS5 >./pipes.read.datat.SunOS5
    gendat ./pipes.read.log.hpux >./pipes.read.datat.hpux
    gendat ./pipes.read2.log.Linux >./pipes.read2.datat.Linux
    gendat ./pipes.read2.log.SunOS5 >./pipes.read2.datat.SunOS5
    gendat ./pipes.read2.log.hpux >./pipes.read2.datat.hpux
    gendat ./pipes.write.log.Linux >./pipes.write.datat.Linux
    gendat ./pipes.write.log.SunOS5 >./pipes.write.datat.SunOS5
    gendat ./pipes.write.log.hpux >./pipes.write.datat.hpux
    gendat ./pipes.write2.log.Linux >./pipes.write2.datat.Linux
    gendat ./pipes.write2.log.SunOS5 >./pipes.write2.datat.SunOS5
    gendat ./pipes.write2.log.hpux >./pipes.write2.datat.hpux
    #   gendat ./semaphore.log.Linux >./semaphore.datat.Linux
    #   gendat ./semaphore.log.SunOS5 >./semaphore.datat.SunOS5
    #   gendat ./semaphore.log.hpux >./semaphore.datat.hpux
    gendat ./shared.log.Linux >./shared.datat.Linux
    gendat ./shared.log.SunOS5 >./shared.datat.SunOS5
    gendat ./shared.log.hpux >./shared.datat.hpux
    #   gendat ./signaloverhead.log.Linux >./signaloverhead.datat.Linux
    #   gendat ./signaloverhead.log.SunOS5 >./signaloverhead.datat.SunOS5
    #   gendat ./signaloverhead.log.hpux >./signaloverhead.datat.hpux
    gendat ./socketlocal.read.log.Linux >./socketlocal.read.datat.Linux
    gendat ./socketlocal.read.log.SunOS5 >./socketlocal.read.datat.SunOS5
    gendat ./socketlocal.read.log.hpux >./socketlocal.read.datat.hpux
    gendat ./socketlocal.read2.log.Linux >./socketlocal.read2.datat.Linux
    gendat ./socketlocal.read2.log.SunOS5 >./socketlocal.read2.datat.SunOS5
    gendat ./socketlocal.read2.log.hpux >./socketlocal.read2.datat.hpux
    gendat ./socketlocal.write.log.Linux >./socketlocal.write.datat.Linux
    gendat ./socketlocal.write.log.SunOS5 >./socketlocal.write.datat.SunOS5
    gendat ./socketlocal.write.log.hpux >./socketlocal.write.datat.hpux
    gendat ./socketlocal.write2.log.Linux >./socketlocal.write2.datat.Linux
    gendat ./socketlocal.write2.log.SunOS5 >./socketlocal.write2.datat.SunOS5
    gendat ./socketlocal.write2.log.hpux >./socketlocal.write2.datat.hpux
    #   gendat ./tcpsclientoverhead.mes.log.Linux >./tcpsclientoverhead.mes.datat.Linux
    #   gendat ./tcpsclientoverhead.mes.log.SunOS5 >./tcpsclientoverhead.mes.datat.SunOS5
    #   gendat ./tcpsclientoverhead.mes.log.aidanpike >./tcpsclientoverhead.mes.datat.aidanpike
    #   gendat ./tcpsclientoverhead.mes.log.hphp >./tcpsclientoverhead.mes.datat.hphp
    #   gendat ./tcpsclientoverhead.mes.log.hpux >./tcpsclientoverhead.mes.datat.hpux
    gendat ./tcpsclientthroughput.write.log.Linux >./tcpsclientthroughput.write.datat.Linux
    gendat ./tcpsclientthroughput.write.log.SunOS5 >./tcpsclientthroughput.write.datat.SunOS5
    gendat ./tcpsclientthroughput.write.log.aidanpike >./tcpsclientthroughput.write.datat.aidanpike
    gendat ./tcpsclientthroughput.write.log.hphp >./tcpsclientthroughput.write.datat.hphp
    gendat ./tcpsclientthroughput.write.log.hpux >./tcpsclientthroughput.write.datat.hpux
    gendat ./tcpsserverconcurrent.read.log.Linux >./tcpsserverconcurrent.read.datat.Linux
    gendat ./tcpsserverconcurrent.read.log.SunOS5 >./tcpsserverconcurrent.read.datat.SunOS5
    gendat ./tcpsserverconcurrent.read.log.aidanpike >./tcpsserverconcurrent.read.datat.aidanpike
    gendat ./tcpsserverconcurrent.read.log.hphp >./tcpsserverconcurrent.read.datat.hphp
    gendat ./tcpsserverconcurrent.read.log.hpux >./tcpsserverconcurrent.read.datat.hpux
    #   gendat ./timeroverhead.log.Linux >./timeroverhead.datat.Linux
    #   gendat ./timeroverhead.log.SunOS5 >./timeroverhead.datat.SunOS5
    #   gendat ./timeroverhead.log.hpux >./timeroverhead.datat.hpux
    gendat ./udpsclient.mes.log.Linux >./udpsclient.mes.datat.Linux
    gendat ./udpsclient.mes.log.SunOS5 >./udpsclient.mes.datat.SunOS5
    gendat ./udpsclient.mes.log.aidanpike >./udpsclient.mes.datat.aidanpike
    gendat ./udpsclient.mes.log.hpux >./udpsclient.mes.datat.hpux
    #   gendat ./udpsclient.mes2.log.Linux >./udpsclient.mes2.datat.Linux
    #   gendat ./udpsclient.mes2.log.SunOS5 >./udpsclient.mes2.datat.SunOS5
    #   gendat ./udpsclient.mes2.log.aidanpike >./udpsclient.mes2.datat.aidanpike
    #   gendat ./udpsclient.mes2.log.hpux >./udpsclient.mes2.datat.hpux


include ../Makefile.def2