;;;; -*- Scheme -*- ;; ;; neighbors example for HLSIM ;; ;; David DeRoure Sep 11 1997 ;; dder@martigny.ai.mit.edu ;; ;; This is the simulation setup for commcheck1.scm. See the ;; HLSIM documentation for further details. (load-option 'hlsim) ;; If you are using this example for the very first time, you need some ;; compiled files available to load. If you do not have these, you can ;; generate them with the following: (cf "club5d") ; normal compilation (scm -> bin -> com), generates club5d.com (cps "commcheck1") ; gunk compilation (scm -> bin), generates neighbors1.bin (cbf "commcheck1") ; gunk compilation (bin -> com), generates neighbors1.com ;; If you have the compiled files, start from here (load "club5d") ;; Make the simulation (set! *store-size* 30) ;; Go from here to run different simulations. ;; The mean neighborhood density is just under n * pi * r^2 ;; e.g. for a quick simulation try 1000 procs, radius 0.04, n pi r^2 = 5.0 (define sim (make-sim/1 1000 0.04)) ;; e.g. for a large simulation try 10000 procs, radius 0.012, n pi r^2 = 4.5 ; (define sim (make-sim/1 10000 0.012)) (simulation.display! sim #T) (simulation.load sim 'init "commcheck1") (simulation.run sim) ;; get some stats on simulation (define (stats sim exp) (let ((l (list-transform-positive (vector->list (simulation.eval sim exp)) number?))) (list exp (apply min l) (round (/ (apply + l) (length l))) (apply max l)))) (stats sim 'collisions) (stats sim 'receives) (stats sim 'end-time) ;; end of commcheck1s.scm