Friday, January 30, 2009

PDQ From SourceForge

Thoughly fed up doing mind-numbing company income taxes for 2008 (Yes, I have to do them earlier than most to get my 1099s out to sub-contractors), I decided to take a break and see if I could compile PDQ (Pretty Damn Quick) by downloading it from our SourceForge project onto my new Macbook.

It's been a long time (far too long) and I'd really like to get a new release out in the near future. Being able to work from my Macbook will definitely help things along. In the meantime, Phil Feller has done a great job of cleaning up and reorganizing the SWIG scripts that we use to generate the wrappers for Perl, Python, etc. As a consequence, here's how it went.
[njg]~/PDQ% uname -a
Darwin NJGs-MacBook.local 9.6.0 Darwin Kernel Version 9.6.0: 
Mon Nov 24 17:37:00 PST 2008;root:xnu-1228.9.59~1/RELEASE_I386 i386

Let's check out PDQ from SourceForge ...
[njg]~/PDQ%  cvs co pdq-qnm-pkg's password: 
cvs checkout: Updating pdq-qnm-pkg
U pdq-qnm-pkg/COPYRIGHT
U pdq-qnm-pkg/Getversion
U pdq-qnm-pkg/Makeall
U pdq-qnm-pkg/Makefile
U pdq-qnm-pkg/README
U pdq-qnm-pkg/pdq.i
cvs checkout: Updating pdq-qnm-pkg/bin

OK. That worked. Now, let's try to make the PDQ lib, as a test ...
[njg]~/PDQ/pdq-qnm-pkg% make
ar -rv libpdq.a MVA_Approx.o MVA_Canon.o MVA_Solve.o
PDQ_Build.o PDQ_Exact.o PDQ_Globals.o PDQ_MServer.o
PDQ_Report.o PDQ_Utils.o
r - MVA_Approx.o
r - MVA_Canon.o
r - MVA_Solve.o
r - PDQ_Build.o

So far, so good. Let's try to run the new multi-server extension in Perl-PDQ ...
[njg]~/PDQ/pdq-qnm-pkg/examples/MultiServer% ./
                 ****** Pretty Damn Quick REPORT *******
                 ***  of : Thu Jan 29 22:48:24 2009  ***
                 ***  for: M/M/1 Comparison          ***
                 ***  Ver: PDQ Analyzer v4.B 041807  ***

Node Sched Resource   Workload   Class     Demand
---- ----- --------   --------   -----     ------
CEN  FCFS  FIFO       Work       TRANS     1.0000
   1  MSQ   Multinode  Work       TRANS     1.0000


Throughput      Multinode    Work             0.7500  
Utilization     Multinode    Work            75.0000  
Queue length    Multinode    Work             3.0000  
Waiting line    Multinode    Work             2.2500  
Waiting time    Multinode    Work             3.0000  
Residence time  Multinode    Work             4.0000  

This proves that the new MSQ tag was understood correctly. We are well on our way by the looks of it.

No comments: