diff --git a/.ftpconfig b/.ftpconfig new file mode 100644 index 0000000..f2bf403 --- /dev/null +++ b/.ftpconfig @@ -0,0 +1,20 @@ +{ + "protocol": "sftp", + "host": "login.storrs.hpc.uconn.edu", + "port": 22, + "user": "rjm11010", + "pass": "", + "promptForPass": false, + "remote": "/home/rjm11010/hpcproj/parallel_mcmc", + "local": "", + "agent": "", + "privatekey": "/home/reynaldo/.ssh/uconn_hpc", + "passphrase": "", + "hosthash": "", + "ignorehost": true, + "connTimeout": 10000, + "keepalive": 10000, + "keyboardInteractive": false, + "watch": [], + "watchTimeout": 500 +} diff --git a/README.md b/README.md index 4b23a05..a65de42 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ Parallel MCMC On GPU =========================== - This project compares the performance of MCMC on a single threaded CPU, and a multicore, multithreaded GPU (using CUDA). diff --git a/sequential/data.txt b/sequential/data.txt new file mode 100644 index 0000000..85cfd66 --- /dev/null +++ b/sequential/data.txt @@ -0,0 +1,3055 @@ +4 0.91643 +23 3.23709 +7 0.40103 +0 0.40402 +6 1.29803 +0 0.08981 +2 0.29237 +16 2.15126 +7 0.53503 +3 0.56055 +3 0.89153 +3 0.20779 +2 0.37454 +1 0.29324 +1 0.34494 +3 0.85883 +7 1.09271 +1 0.18752 +3 0.19719 +5 0.77527 +1 0.24678 +14 1.89241 +4 0.95541 +2 0.37544 +8 1.5693 +7 1.33969 +6 0.62414 +12 2.10235 +0 0.39206 +3 0.72299 +2 0.55223 +0 0.04833 +2 0.19001 +1 0.27067 +13 1.60546 +7 1.23441 +68 9.28634 +1 0.33113 +12 1.88267 +5 0.69368 +15 2.20622 +6 1.4498 +0 0.08992 +0 0.09093 +31 5.17599 +2 0.26269 +4 0.71707 +12 1.97904 +53 6.18711 +3 0.33826 +21 2.6166 +14 2.4006 +1 0.08761 +1 0.28656 +2 0.43897 +0 0.42186 +8 0.68765 +5 1.5418 +11 3.44257 +1 0.0891 +11 1.32963 +6 0.73251 +20 2.82091 +7 1.58407 +1 0.29445 +2 0.08619 +4 0.59831 +55 12.24884 +2 0.38025 +15 2.755 +9 2.03241 +20 1.06698 +4 0.71176 +0 0.20098 +448 74.77299 +48 3.93904 +6 1.26624 +134 19.24118 +39 4.54658 +8 0.92423 +45 4.25457 +22 4.36901 +2 0.37315 +4 0.42155 +17 0.92571 +32 3.94285 +7 0.82489 +1 0.22277 +3 0.10568 +11 0.63483 +0 0.15625 +1 0.43642 +5 0.40928 +6 0.58997 +2 0.18487 +3 0.38623 +3 0.43096 +12 1.84178 +9 1.29606 +4 0.6426 +0 0.35888 +1 0.12719 +0 0.18909 +2 0.32751 +14 1.98842 +6 0.43268 +1 0.28191 +21 1.98335 +4 0.40248 +2 0.92124 +1 0.40203 +3 0.66881 +0 0.27403 +4 0.81479 +0 0.32609 +6 0.34194 +2 1.00397 +4 0.56095 +0 0.12909 +4 0.4215 +2 0.1443 +1 0.27087 +5 0.25419 +1 0.54819 +5 1.27171 +5 0.35389 +3 0.39806 +4 0.77323 +9 0.79758 +3 0.14225 +4 0.22207 +1 0.1616 +3 0.21514 +2 0.40349 +0 0.24966 +3 0.23412 +2 0.26143 +5 0.57309 +3 0.48632 +4 1.29404 +2 0.19792 +32 5.71227 +3 0.43917 +4 0.38175 +14 2.05633 +3 0.26752 +4 0.19834 +14 2.50156 +3 0.36667 +8 0.41038 +6 0.28209 +3 0.72299 +5 0.39499 +25 3.8754 +14 1.60463 +3 0.14275 +1 0.5174 +121 21.70451 +0 0.02534 +14 0.89836 +38 4.66031 +12 1.02463 +5 0.46738 +116 18.34387 +7 0.63562 +32 3.9132 +99 17.2995 +4 0.63199 +15 2.82205 +11 3.39655 +4 0.39218 +64 15.52025 +9 3.2491 +12 1.41379 +5 0.8662 +831 183.0199 +23 2.87864 +40 5.49023 +7 0.41894 +19 2.00922 +25 4.85755 +3 0.224 +2 0.33725 +34 9.14773 +32 2.97776 +14 2.29199 +327 59.35259 +44 6.39355 +5 0.50226 +273 36.84726 +173 23.32273 +2 1.30983 +194 37.43315 +334 59.52887 +84 11.62165 +65 11.70525 +34 5.94615 +88 12.46395 +69 9.07948 +146 28.48017 +33 5.85544 +40 3.89458 +1 0.08718 +5 1.00883 +49 6.88076 +89 10.567 +56 10.47814 +8 1.69303 +10 1.36519 +1 0.3154 +42 8.81314 +15 1.36826 +82 17.44393 +25 3.63442 +10 1.32871 +35 8.71125 +2 0.34934 +41 10.65785 +1 0.26868 +0 0.10577 +0 0.14388 +36 7.39228 +3 0.4213 +1 0.05213 +1 0.23904 +0 0.20216 +0 0.08324 +1 0.15788 +2 0.09188 +8 0.70622 +56 11.80352 +0 0.04521 +18 4.98308 +0 1.18352 +2 0.53163 +50 11.89908 +6 1.19094 +4 1.17025 +1 0.12471 +0 0.33424 +1 0.37071 +0 0.01939 +2 0.19197 +0 0.03751 +54 12.50156 +1 0.03588 +4 0.20003 +0 0.20214 +3 1.07346 +29 6.30564 +6 0.35755 +0 0.14965 +1 0.52617 +27 2.91555 +0 0.02206 +1 0.34075 +4 0.52736 +6 0.84349 +3 0.67832 +7 0.46397 +2 0.09765 +0 0.40158 +0 0.1074 +2 0.38739 +2 0.34859 +14 3.3823 +2 0.14835 +1 0.29364 +0 0.54401 +2 0.15802 +0 0.01449 +0 0.18686 +0 0.06532 +0 0.6943 +2 0.52739 +1 0.12109 +22 4.92746 +1 0.23977 +130 18.44975 +144 17.33498 +40 4.40727 +21 3.59886 +188 16.89508 +48 5.79167 +20 3.29819 +16 2.62094 +21 2.42219 +71 9.33952 +47 3.36233 +21 5.13072 +30 4.07576 +3 0.50573 +22 3.26527 +5 0.54433 +130 10.8172 +341 30.26654 +2 0.27355 +75 3.35542 +39 2.86014 +17 3.35201 +60 6.43886 +8 1.19964 +334 43.08536 +5 0.78922 +3 0.32672 +92 13.26471 +47 5.5085 +17 1.27078 +0 0.22354 +7 0.47919 +2 0.35778 +3 0.24417 +2 0.29919 +3 0.24404 +4 0.65673 +3 0.87081 +49 3.14813 +25 1.95089 +149 20.88808 +8 0.44175 +31 2.5943 +8 0.86353 +3 0.22208 +2 0.17136 +80 5.14922 +148 10.68288 +24 3.94875 +7 0.77283 +1 0.15872 +2 0.28756 +61 6.10702 +81 5.75026 +37 3.00827 +17 1.96048 +8 1.36618 +27 3.82921 +5 0.88268 +104 17.68214 +17 4.22306 +303 23.60506 +133 8.61963 +260 19.29015 +103 10.36822 +21 1.44829 +22 3.0952 +60 4.18068 +13 2.95073 +114 7.63651 +50 8.02078 +12 1.26064 +6 0.77847 +7 0.38718 +1 0.32169 +140 9.93737 +4 0.56006 +8 1.02572 +5 0.4583 +3 0.35444 +0 0.1547 +3 0.20927 +0 0.04787 +7 0.65693 +0 0.36559 +4 1.11062 +9 1.83789 +1 0.2836 +0 0.35768 +13 1.78978 +0 0.21277 +0 0.3616 +1 0.24233 +4 0.52926 +6 1.00975 +2 0.2731 +3 0.38875 +0 0.06745 +1 0.88885 +1 0.18094 +11 1.93082 +9 1.33365 +1 0.19104 +23 3.26465 +0 0.32214 +3 0.57532 +17 3.79536 +7 1.77335 +0 0.03092 +23 2.37238 +1 0.1158 +43 11.98649 +2 0.69085 +5 0.8211 +8 1.94732 +4 0.27819 +14 1.99438 +2 0.24479 +2 0.29504 +2 0.37709 +0 0.43837 +3 0.40609 +39 6.7454 +0 0.33862 +2 0.14762 +9 0.85321 +10 1.82878 +1 0.14685 +1 0.09793 +5 0.88334 +2 0.35099 +2 0.36321 +3 0.18059 +4 0.49735 +7 1.96771 +8 1.91097 +6 2.84684 +1 0.46034 +45 11.46094 +2 0.61923 +1 0.05649 +8 1.21863 +5 1.11153 +2 0.40675 +0 0.21285 +33 12.37534 +1 0.87416 +17 3.50735 +0 0.06459 +2 0.61837 +1 0.50301 +4 0.45687 +1 0.24428 +8 2.69852 +12 2.09418 +3 0.18241 +6 1.0348 +1 0.22444 +3 0.26712 +1 0.18182 +1 0.12702 +1 0.14152 +0 0.46913 +3 0.27656 +0 0.1352 +2 0.71923 +1 0.57176 +2 0.82248 +0 0.13699 +1 0.20107 +7 1.51539 +1 0.53766 +6 0.3157 +1 0.17596 +1 0.14424 +2 0.59774 +1 0.11787 +2 0.31978 +1 0.10875 +7 0.31451 +1 0.41118 +1 0.1578 +2 0.29203 +5 0.95373 +20 2.37645 +11 1.29178 +3 0.62152 +1 0.25702 +10 2.11874 +2 0.33182 +3 0.61797 +2 0.35338 +2 0.31452 +5 0.84705 +1 0.14709 +1 0.33674 +0 0.03265 +5 0.37659 +1 0.07233 +20 2.2613 +8 1.34656 +0 0.06672 +2 0.20472 +2 0.14749 +2 0.9904 +6 0.53202 +0 0.04761 +0 0.39962 +1 0.06468 +1 0.01814 +6 0.4102 +1 0.12935 +1 0.1857 +1 0.10167 +5 0.6254 +4 0.68855 +1 0.47929 +3 0.22876 +1 0.11376 +5 0.9682 +3 0.13692 +1 0.14772 +5 0.44622 +2 0.48051 +7 1.44055 +4 1.3931 +4 0.61337 +0 0.06091 +2 0.22567 +4 0.54849 +0 0.03137 +1 0.11669 +3 0.52234 +11 2.04988 +0 0.14631 +0 0.14868 +0 0.14585 +1 0.37889 +37 8.04711 +38 7.6668 +2 0.08703 +10 1.78861 +0 0.15592 +3 0.2103 +7 0.97991 +0 0.5142 +1 0.17968 +12 0.9415 +12 2.08101 +1 0.24519 +3 0.07158 +0 0.02569 +12 3.50676 +0 0.18003 +3 0.52949 +1 0.02485 +3 0.22348 +1 0.10687 +6 0.74819 +0 0.29238 +1 0.30597 +5 0.38131 +0 0.3595 +5 0.38371 +1 0.49406 +8 0.47255 +15 2.78122 +7 0.86073 +4 0.19134 +0 0.08879 +0 0.10463 +5 0.67252 +4 0.47779 +4 0.85121 +0 0.10463 +1 0.27456 +4 0.51388 +1 0.18157 +4 0.32333 +1 0.1767 +11 1.58258 +1 0.19656 +2 0.23904 +16 1.55533 +1 0.14941 +2 0.42133 +9 1.101 +2 0.15691 +7 0.84715 +0 0.12742 +3 0.3998 +2 0.33949 +23 3.68052 +8 0.83855 +5 0.41018 +8 0.34045 +7 0.85671 +12 1.19734 +624 89.4564 +3 0.47502 +1 0.2712 +11 2.10709 +6 0.40171 +2 0.47988 +97 19.75186 +5 0.45752 +0 0.16442 +5 0.84328 +5 0.51008 +3 0.33729 +15 0.93452 +6 0.8997 +1 0.15031 +2 0.35228 +9 0.96274 +3 0.20201 +7 0.47505 +0 0.11304 +0 0.19958 +11 1.22171 +11 0.74337 +6 1.24227 +1 0.24581 +6 0.91338 +7 0.52788 +4 0.56018 +3 0.29879 +46 10.1239 +20 2.14477 +4 1.50919 +7 1.22577 +67 14.81266 +15 2.67087 +1 0.36882 +7 0.84369 +16 0.90399 +7 0.6955 +5 0.74343 +36 6.77912 +26 3.37475 +24 2.27146 +8 1.17542 +41 5.77675 +6 0.93982 +6 0.31888 +6 0.38875 +1 0.33891 +1 0.30694 +6 0.41423 +5 0.7142 +9 0.72807 +6 0.82394 +4 0.34642 +9 1.27301 +27 3.53378 +4 0.52134 +0 0.39745 +5 0.41121 +0 0.10149 +1 0.116 +0 0.14867 +5 0.76363 +2 0.38177 +28 3.23281 +37 4.3286 +6 0.59427 +28 4.01514 +0 0.17492 +0 0.13303 +7 0.55493 +3 0.15025 +12 1.05897 +23 3.0874 +4 0.43227 +21 1.77215 +4 0.30713 +2 0.42939 +3 0.37199 +3 0.4088 +5 0.36021 +11 1.43852 +57 12.03803 +13 1.44175 +53 5.98657 +6 0.87717 +4 0.82692 +59 7.09648 +9 1.69415 +3 0.22834 +4 0.33933 +10 1.16998 +4 0.3788 +2 0.50586 +12 0.99129 +18 2.19302 +7 0.64265 +6 0.83149 +2 0.27358 +4 0.73032 +6 1.16332 +6 0.60471 +5 1.00917 +18 2.60547 +3 0.98603 +18 4.31985 +6 0.59672 +11 1.62584 +2 0.4379 +5 0.56223 +2 0.49952 +6 0.779 +9 1.57758 +6 0.81378 +12 4.82363 +9 1.41241 +2 0.87183 +11 2.75445 +9 1.14538 +11 1.86604 +5 0.91807 +13 1.00693 +5 0.75729 +6 0.52903 +4 0.76856 +5 0.6871 +22 2.89995 +9 0.92918 +9 1.83985 +8 0.89775 +62 8.63936 +16 2.45523 +5 1.11115 +20 2.93943 +88 15.28825 +8 1.127 +1 0.26127 +5 0.86453 +20 2.7158 +2 0.92805 +9 1.6813 +3 0.3551 +4 1.16941 +0 0.13982 +8 0.47071 +2 0.55255 +4 0.40809 +4 0.47461 +3 0.32136 +21 3.60193 +6 0.6626 +2 0.34116 +4 0.89126 +6 0.65869 +7 0.66555 +2 0.43853 +56 5.50004 +3 0.57657 +11 1.06267 +5 0.50424 +1 0.55837 +6 0.83301 +4 0.53616 +1 0.23549 +17 3.50795 +2 0.40287 +2 0.18026 +28 3.68681 +3 0.40378 +11 2.33447 +13 0.82325 +1 0.21848 +9 1.29697 +5 0.68746 +6 1.57688 +4 0.68181 +5 0.61094 +4 0.77254 +1 0.19632 +3 0.10773 +2 0.36424 +0 0.32339 +3 0.15829 +3 0.64556 +21 2.75348 +4 0.63568 +3 0.55786 +6 0.51551 +2 0.48201 +2 0.37123 +4 0.26561 +5 0.51089 +4 0.3495 +3 0.44539 +7 1.06807 +2 0.31037 +2 0.32039 +1 0.2252 +1 0.41091 +1 0.45444 +7 1.17423 +3 0.4184 +4 1.08064 +3 0.21251 +0 0.20653 +1 0.45085 +3 0.95288 +1 0.39936 +13 2.14099 +3 0.26187 +6 0.5253 +3 0.39823 +1 0.26156 +1 0.19227 +3 0.24677 +4 0.30062 +1 0.28074 +3 0.3948 +4 0.29099 +7 0.44572 +5 0.38436 +3 0.48846 +1 0.24299 +2 0.24768 +0 0.18434 +1 0.38477 +2 0.49708 +8 0.92422 +1 0.38163 +8 2.57471 +2 0.5111 +2 0.27449 +5 0.4062 +9 0.8751 +24 4.5112 +6 0.29968 +3 0.22902 +3 0.28961 +2 0.35489 +8 0.53969 +6 0.79095 +3 0.94527 +1 0.36702 +2 0.26485 +3 0.23598 +2 0.1912 +1 0.27016 +8 1.01808 +2 0.35798 +5 0.16718 +4 0.40424 +0 0.24187 +6 0.61277 +3 0.20416 +55 8.52886 +14 2.11157 +7 0.44581 +1 0.13028 +2 0.2713 +31 3.56031 +3 0.31524 +4 0.77441 +12 1.88446 +4 0.4117 +2 0.16433 +1 0.28813 +0 0.19251 +8 0.85347 +7 1.00259 +1 0.50518 +3 0.15787 +7 0.93975 +3 0.27746 +1 0.5162 +18 2.3436 +2 0.19237 +3 0.34224 +7 0.33328 +3 0.19838 +5 0.3795 +2 0.12098 +5 0.6641 +7 0.35105 +2 0.22812 +7 1.46443 +1 0.07472 +0 0.09863 +3 0.50999 +2 0.07504 +0 0.05679 +1 0.2134 +3 0.23604 +4 0.21505 +1 0.04619 +10 0.81461 +4 0.88047 +0 0.08243 +5 0.46053 +5 0.19285 +9 2.23035 +0 0.08132 +1 0.0753 +5 0.65079 +1 0.15664 +3 0.94595 +4 0.80818 +2 0.61506 +1 0.47754 +2 0.07153 +1 0.06692 +0 0.19237 +2 0.14838 +2 0.03598 +2 0.18462 +1 0.06431 +2 0.15098 +9 0.7827 +0 0.10712 +0 0.05174 +0 0.29247 +4 0.46365 +0 0.08764 +42 10.78836 +0 0.11292 +5 0.20688 +0 0.0752 +4 0.50186 +0 0.05008 +11 1.59057 +0 0.08597 +0 0.23929 +0 0.07066 +3 0.83349 +6 0.70967 +1 0.32134 +2 0.26252 +0 0.11387 +6 0.69982 +0 0.16392 +9 0.75627 +2 0.14748 +1 0.07863 +5 0.25741 +2 0.39506 +0 0.0808 +2 0.14729 +7 0.40776 +0 0.10526 +1 0.1529 +0 0.1665 +2 0.14017 +4 0.45064 +5 0.22521 +0 0.07081 +13 1.51779 +0 0.13189 +5 0.2475 +6 1.45658 +2 0.13258 +1 0.08399 +3 0.16896 +12 1.24102 +1 0.12016 +55 9.64525 +2 0.54051 +24 3.61764 +1 0.06713 +2 0.16358 +0 0.10408 +1 0.11307 +0 0.05974 +0 0.12775 +7 0.61319 +3 0.19192 +1 0.07563 +0 0.16998 +1 0.04057 +2 0.15798 +0 0.0626 +3 0.24239 +1 0.08728 +24 2.69533 +2 0.40754 +4 0.43868 +2 0.4686 +0 0.19673 +6 0.89086 +0 0.27505 +12 0.69273 +15 2.23221 +2 0.44024 +8 1.16356 +4 0.6029 +1 0.20709 +2 0.39051 +1 0.45517 +8 1.57039 +0 0.32474 +2 0.29445 +11 0.77845 +11 2.06928 +0 0.12928 +2 0.24842 +2 0.66003 +3 0.38241 +6 1.36234 +7 0.77505 +1 0.58886 +3 0.22972 +1 0.22112 +0 0.16673 +23 2.09673 +3 0.28698 +3 0.16616 +2 0.36894 +22 5.40309 +3 0.34165 +5 1.01195 +11 1.03172 +2 0.13634 +1 0.1929 +1 0.3699 +5 0.57527 +6 0.85881 +4 0.60068 +0 0.27864 +5 0.87765 +1 0.20576 +12 2.02045 +3 0.75106 +6 0.42864 +2 0.40783 +3 1.00435 +4 0.36529 +0 0.11267 +16 1.03788 +0 0.33504 +99 13.15858 +7 0.9553 +4 0.56317 +30 3.54386 +2 0.42985 +9 0.75544 +4 0.31399 +11 1.31105 +2 0.39024 +1 0.1914 +1 0.29656 +3 0.60519 +2 0.34485 +5 0.5767 +0 0.24106 +3 0.59405 +6 0.20712 +14 1.36186 +3 0.41382 +2 0.2425 +8 1.67131 +1 0.32676 +4 0.41626 +5 0.74144 +4 0.30862 +2 0.37651 +6 0.64429 +1 0.16523 +4 0.48726 +2 0.24132 +2 0.27643 +1 0.54597 +1 0.35925 +8 0.73859 +4 0.89979 +1 0.16567 +3 0.56542 +5 1.21904 +1 0.26903 +0 0.11944 +0 0.36785 +4 0.69902 +13 1.63645 +2 0.33055 +6 1.37251 +0 0.05505 +4 0.41011 +2 0.52318 +5 0.39741 +3 0.81311 +2 0.7789 +2 0.36059 +2 0.33599 +1 0.52447 +1 0.26858 +3 0.28552 +1 0.21017 +3 0.32773 +11 2.06572 +1 0.25383 +2 0.4878 +3 0.32844 +7 0.87995 +0 0.17297 +3 0.53731 +5 1.16799 +4 0.48819 +12 1.61911 +1 0.38628 +8 0.69344 +4 0.7132 +0 0.21543 +11 1.91504 +18 3.20539 +18 3.3399 +2 0.21543 +0 0.23244 +1 0.19318 +2 0.21375 +1 0.30217 +4 0.36787 +20 5.59833 +1 0.07522 +2 0.29294 +6 0.61407 +3 0.34285 +0 0.40667 +12 1.18718 +2 0.4056 +2 0.26899 +59 7.79337 +4 0.61517 +18 3.48268 +3 1.86928 +3 0.29949 +3 0.61382 +9 2.33804 +2 0.12489 +5 0.41641 +6 0.55225 +30 3.4055 +7 2.29721 +4 0.49591 +1 0.3474 +12 2.05925 +0 0.13389 +4 0.30465 +2 0.43511 +13 1.42825 +6 0.88647 +0 0.11991 +2 0.26346 +1 0.578 +11 1.23173 +7 0.82126 +4 0.83725 +22 4.36677 +9 1.77222 +0 0.0703 +5 1.96549 +1 0.40361 +12 1.09969 +5 1.04841 +2 0.72606 +0 0.67339 +2 0.34733 +4 0.2433 +0 0.21589 +1 0.2796 +24 2.49735 +13 1.74315 +63 6.31382 +9 0.70927 +11 1.27 +29 2.83431 +10 0.98054 +10 0.83245 +15 1.34817 +30 3.47056 +2 0.42021 +5 0.86853 +12 1.23673 +6 0.91512 +11 0.77515 +45 4.66016 +13 1.67462 +68 10.2711 +137 13.54866 +8 1.71191 +1 0.63247 +27 3.76761 +21 2.11764 +8 2.11783 +7 0.5178 +29 4.6162 +6 0.73201 +32 4.88021 +19 4.77302 +2 0.38988 +88 15.35614 +47 6.19514 +8 0.96341 +7 1.89698 +4 0.36526 +6 0.68563 +34 2.999 +18 1.52591 +13 0.97422 +48 5.05372 +54 5.16795 +40 3.0729 +110 12.32241 +5 0.35574 +149 16.12367 +11 1.69039 +92 9.69582 +18 3.33076 +285 31.31604 +0 0.225 +105 13.9104 +88 10.72142 +73 10.95685 +153 17.3382 +4 0.28981 +1 0.22416 +19 2.64946 +10 0.74507 +6 0.58301 +7 0.42218 +0 0.17979 +8 1.42978 +30 2.58556 +5 0.40473 +27 3.25606 +9 1.12234 +22 2.90833 +14 1.17842 +5 0.63612 +8 0.64908 +7 0.817 +6 0.76557 +8 1.61941 +5 0.35763 +9 0.9169 +7 0.66352 +21 2.36631 +5 0.75781 +70 8.2783 +7 0.65217 +6 0.40605 +15 1.92887 +6 1.00702 +5 1.15002 +10 0.91384 +12 0.86731 +39 5.59886 +13 1.51711 +13 0.64901 +4 0.30591 +13 1.41082 +32 3.6345 +31 5.0234 +6 0.4196 +89 12.61308 +0 0.05662 +3 0.25907 +11 2.23445 +7 0.51717 +17 2.40001 +21 4.16305 +3 0.15413 +4 0.24279 +143 18.35746 +5 0.59962 +14 1.54401 +16 0.68907 +5 0.9907 +8 0.60674 +16 1.98036 +2 0.36791 +22 3.58477 +11 1.51427 +8 0.2554 +17 3.57846 +7 1.18917 +154 24.81685 +6 0.68277 +8 0.5313 +4 0.19133 +3 0.57177 +0 0.22939 +3 0.58796 +27 5.8036 +7 0.35195 +10 0.6283 +32 4.00069 +35 3.98661 +11 1.48568 +16 1.09119 +2 0.19976 +16 1.75507 +18 1.4137 +9 1.79152 +38 6.53109 +205 27.36357 +3 0.75337 +6 0.38367 +28 7.30638 +3 0.70133 +5 0.78709 +4 0.87561 +5 0.137 +10 1.34785 +8 0.65834 +7 0.75763 +8 1.84564 +3 0.62008 +3 0.30976 +8 1.11184 +6 1.20704 +3 0.19064 +0 0.1197 +6 0.28278 +11 1.3826 +36 8.39852 +0 0.45811 +6 0.83 +4 0.38786 +6 0.52352 +7 0.78215 +7 1.08557 +3 0.15128 +146 22.84687 +3 0.48504 +0 0.44986 +3 0.83889 +11 1.05253 +6 0.2771 +2 0.38523 +10 1.00089 +2 0.12454 +2 0.33776 +4 0.195 +5 0.27456 +1 0.10854 +6 0.65134 +3 0.15381 +6 0.58801 +3 0.87004 +2 0.08851 +1 0.25316 +6 0.5173 +6 0.57641 +4 0.55456 +10 0.80493 +9 0.92987 +2 0.22359 +10 0.7343 +1 0.48441 +3 0.17584 +20 2.88139 +14 1.41547 +6 0.32733 +6 0.67193 +4 0.22961 +5 0.75012 +2 0.275 +85 9.74781 +0 0.10637 +1 0.38985 +7 0.41875 +11 1.41001 +1 0.23221 +3 0.40181 +41 4.69257 +10 2.44698 +5 1.78259 +1 0.38325 +16 3.33096 +8 0.82839 +1 0.23258 +5 0.28365 +4 0.61124 +1 0.0936 +4 0.54323 +2 0.33289 +5 0.48113 +21 4.87847 +0 0.28007 +2 0.16959 +10 1.16312 +19 2.43733 +4 0.26187 +4 0.36083 +8 0.74919 +1 0.19082 +2 0.28533 +4 0.12223 +2 0.33078 +2 0.25499 +1 0.17032 +0 0.27471 +1 0.16135 +0 0.04443 +2 0.2855 +1 0.22598 +3 0.19998 +3 0.34429 +5 0.30732 +13 2.53696 +5 1.14347 +0 0.1278 +4 0.45631 +0 0.25385 +2 0.31984 +6 1.01528 +29 3.54058 +10 2.16495 +0 0.10264 +0 0.07375 +0 0.02073 +3 0.5209 +15 2.54018 +1 0.20803 +0 0.03329 +1 0.138 +5 1.16626 +0 0.10294 +3 0.72135 +2 0.8607 +4 1.12623 +3 0.22291 +4 0.30579 +11 1.38546 +1 0.26886 +6 0.56806 +7 0.8424 +17 1.14823 +2 0.41436 +5 0.43645 +4 0.62855 +1 0.15611 +4 0.45575 +2 0.35302 +1 0.09192 +3 0.66306 +3 0.4399 +7 1.06993 +1 0.23261 +4 0.47234 +3 0.57166 +2 0.53715 +1 0.07212 +4 2.41641 +4 0.43026 +1 0.04571 +3 0.44048 +1 0.30205 +1 0.28226 +0 0.25907 +0 0.13888 +3 0.43769 +3 0.42238 +1 0.44203 +1 0.06929 +2 0.53288 +3 0.2045 +4 0.65022 +2 0.49869 +0 0.31743 +0 0.19697 +0 0.08543 +1 0.27113 +3 0.19781 +0 0.34373 +2 0.55981 +2 0.40469 +1 0.15172 +4 0.5486 +10 0.84341 +2 0.31015 +2 0.40523 +6 0.43641 +1 0.30018 +11 2.91779 +21 1.95844 +9 0.91371 +0 0.22364 +9 0.98807 +8 0.93438 +11 1.5588 +2 0.24296 +1 0.14279 +14 2.06178 +4 0.33372 +2 0.19309 +7 1.42641 +2 0.18218 +25 4.38249 +7 0.47434 +9 1.5801 +1 0.39457 +6 0.56982 +3 0.19191 +3 0.39176 +2 0.19148 +0 0.3377 +4 0.35824 +3 0.3228 +8 0.70534 +14 2.34094 +4 0.37535 +0 0.16178 +36 5.60864 +3 0.2428 +0 0.21346 +5 0.53445 +6 0.21813 +1 0.12777 +2 0.22684 +13 0.88774 +0 0.25021 +63 11.88622 +20 2.47507 +21 4.99101 +9 1.15802 +1 0.10332 +5 0.79995 +3 0.78419 +4 0.87514 +0 0.24586 +4 1.02696 +1 0.31447 +0 0.32397 +2 0.52995 +2 0.37065 +2 0.28292 +1 0.21943 +4 0.63186 +1 0.08932 +6 0.58756 +3 0.2506 +4 0.36726 +4 0.22134 +3 0.28925 +8 0.48095 +2 0.39731 +8 1.25361 +6 0.52465 +2 0.24389 +1 0.33347 +5 0.233 +5 0.35113 +2 0.44907 +9 0.91632 +1 0.97331 +0 0.43101 +13 1.79269 +3 0.6622 +4 0.97078 +0 0.12656 +0 0.23984 +7 0.57481 +4 0.57887 +1 0.16339 +0 0.3248 +31 7.12999 +3 0.2359 +3 0.44692 +8 1.39606 +133 18.65067 +4 0.53242 +0 0.10083 +1 0.12001 +6 0.86253 +1 0.19915 +0 0.15967 +10 0.70091 +1 0.71531 +4 0.17713 +8 0.96622 +6 0.57117 +1 0.48175 +1 0.631 +2 0.57796 +1 0.32286 +3 0.79464 +2 0.05647 +6 0.43299 +32 3.90984 +2 0.22554 +1 0.12199 +1 0.08946 +1 0.11064 +4 0.24008 +0 0.03248 +16 1.834 +2 0.12172 +2 0.27504 +0 0.04707 +0 0.21389 +2 0.22086 +1 0.06911 +1 0.28065 +19 1.88577 +7 1.81619 +1 0.03211 +0 0.11571 +0 0.02671 +1 0.07254 +3 0.33086 +4 0.25643 +0 0.05809 +3 0.49037 +10 1.34562 +0 0.05069 +8 0.46778 +0 0.04541 +0 0.17494 +0 0.04826 +0 0.09642 +13 2.33008 +1 0.10702 +4 0.38327 +0 0.0127 +0 0.10101 +1 0.13024 +0 0.04393 +6 0.19304 +0 0.02994 +9 0.9238 +0 0.22727 +1 0.10626 +1 0.15139 +3 0.24908 +0 0.09332 +15 0.8028 +1 0.21086 +1 0.09055 +1 0.15406 +1 0.12922 +0 0.0197 +7 0.16394 +1 0.05208 +0 0.02415 +25 3.05298 +9 0.75453 +0 0.17772 +0 0.01035 +0 0.02026 +1 0.01392 +0 0.15091 +1 0.28307 +0 0.05647 +1 0.08528 +5 1.02298 +1 0.18192 +1 0.22568 +6 0.61011 +1 0.23332 +0 0.09782 +3 0.14658 +1 0.2393 +3 0.16663 +1 0.26724 +0 0.25103 +2 0.28296 +2 0.4735 +1 0.20625 +4 0.60306 +1 0.04977 +1 0.15297 +3 0.85759 +57 9.86789 +0 0.05396 +1 0.15653 +0 0.08293 +0 0.07426 +2 0.12392 +6 0.55623 +0 0.05365 +1 0.04493 +0 0.05212 +0 0.01871 +1 0.06439 +14 1.30312 +3 0.23367 +0 0.09138 +0 0.02704 +2 0.07411 +2 0.27317 +0 0.01702 +2 0.16441 +3 0.20087 +1 0.1029 +2 0.16884 +4 0.20975 +0 0.02377 +4 0.09528 +2 0.20732 +24 5.90398 +4 0.83547 +1 0.01779 +0 0.01861 +0 0.01315 +9 0.85078 +2 0.19827 +1 0.12967 +0 0.09874 +1 0.17371 +0 0.11742 +2 0.37627 +1 0.07129 +0 0.07758 +2 0.2352 +4 0.19242 +3 0.76755 +0 0.13788 +2 0.27184 +2 0.21452 +1 0.04003 +1 0.33929 +7 2.96439 +4 0.49644 +9 0.84363 +3 0.41778 +0 0.13137 +0 0.07828 +0 0.03832 +0 0.15888 +0 0.14068 +0 0.01688 +1 0.08609 +1 0.10968 +3 0.47379 +1 0.22645 +2 0.09316 +0 0.02081 +3 0.33728 +3 0.54792 +228 31.80264 +14 1.05188 +4 1.07582 +0 0.02346 +0 0.03962 +2 0.40151 +2 0.12979 +0 0.10475 +11 0.92871 +3 0.09628 +8 0.8467 +1 0.17432 +0 0.08816 +46 8.22981 +2 0.21614 +17 1.29228 +25 1.42817 +16 1.10453 +16 1.80568 +7 0.81518 +13 1.96985 +75 9.19463 +26 3.398 +44 6.91231 +16 2.71997 +11 1.01323 +63 4.72942 +184 17.58367 +73 8.56926 +76 9.34346 +28 2.28763 +22 2.77519 +73 10.08957 +41 5.64399 +63 10.91046 +24 2.95229 +56 6.34476 +108 13.71308 +94 13.23852 +70 10.48176 +162 12.06043 +61 9.59161 +13 1.31171 +44 6.11971 +21 3.56944 +86 9.3365 +18 2.49019 +58 12.45621 +2 0.08574 +13 1.42979 +2 0.3442 +5 0.98093 +0 0.05135 +17 4.17522 +7 1.201 +6 0.71143 +0 0.1218 +0 0.01912 +1 0.13135 +9 1.29013 +4 0.47153 +0 0.43443 +3 0.59765 +2 0.39768 +0 0.12874 +8 1.36096 +0 0.22528 +6 0.84858 +2 0.42515 +9 1.86855 +11 1.74049 +6 0.69385 +21 3.09491 +5 0.31607 +2 0.39246 +3 0.68938 +2 0.4131 +1 0.09577 +13 1.97427 +46 5.97024 +19 1.22905 +37 4.43819 +11 1.94835 +22 1.90647 +42 3.2441 +17 2.01727 +14 1.24439 +14 1.90591 +16 1.4547 +4 1.14704 +19 1.13845 +59 6.15564 +173 19.00301 +6 0.94243 +9 1.14231 +13 1.30439 +15 1.40847 +11 1.11757 +1 0.12956 +9 1.52652 +14 2.63922 +0 0.6562 +10 1.51177 +19 1.66237 +151 14.62207 +13 1.14669 +231 26.82849 +769 111.89284 +30 4.8373 +59 5.28989 +85 9.47263 +23 2.40183 +43 7.81896 +11 0.99003 +26 2.98565 +14 1.44626 +11 2.35832 +34 3.45383 +41 5.77542 +16 2.65766 +43 4.93379 +50 3.13457 +9 0.76834 +4 0.46752 +8 0.81825 +18 2.3496 +280 31.60385 +19 1.66085 +11 1.25495 +16 2.09936 +38 4.04741 +8 1.53145 +19 1.48677 +15 2.20785 +149 17.8573 +5 1.03786 +7 0.59328 +17 2.60254 +4 0.80993 +3 0.26095 +2 0.31529 +1 0.60597 +3 0.42966 +5 0.77579 +4 0.17356 +6 0.48438 +12 1.66132 +28 4.6119 +9 1.96083 +19 2.9345 +11 1.81476 +0 0.15524 +15 1.36143 +0 0.38082 +21 3.18283 +7 1.09445 +7 0.57637 +0 0.2121 +3 0.22019 +14 1.8429 +5 0.86718 +17 1.69347 +23 4.59547 +2 0.45594 +7 0.77528 +21 3.31061 +4 0.83255 +2 0.915 +16 3.27209 +0 0.55324 +33 5.50731 +4 0.88885 +31 3.95593 +0 0.16136 +1 0.18014 +4 0.85444 +4 0.29601 +41 6.90653 +3 0.57289 +9 1.79805 +6 1.29147 +22 2.14763 +2 0.20992 +1 0.46632 +1 0.09242 +10 2.732 +6 0.71735 +12 2.75319 +1 0.1626 +7 1.01952 +8 0.83619 +6 1.52751 +5 0.9973 +9 0.71796 +2 0.48199 +1 0.32513 +55 12.34459 +3 0.38241 +4 0.52466 +26 1.56509 +8 1.37369 +24 3.31825 +2 0.21621 +9 3.28193 +9 2.25921 +1 0.23855 +6 0.50575 +5 0.82801 +2 0.20379 +1 0.6284 +7 2.13889 +4 0.41607 +8 3.08025 +7 0.76787 +12 1.12037 +16 1.78659 +14 2.72173 +14 1.34246 +7 1.03502 +4 0.45282 +10 1.24758 +8 1.04421 +17 1.66813 +2 0.21595 +10 0.67133 +0 0.06264 +12 3.02182 +2 0.52765 +40 12.7988 +1 0.19931 +0 0.1644 +5 1.03253 +12 1.85049 +8 1.56699 +10 1.09246 +3 0.87467 +2 0.43576 +1 0.05896 +3 0.27127 +0 0.08934 +0 0.02246 +1 0.17084 +3 0.07567 +1 0.05326 +11 1.65209 +24 3.02706 +0 0.11362 +2 0.13678 +1 0.05505 +2 0.07848 +0 0.06253 +1 0.10248 +1 0.08862 +1 0.04355 +12 1.57024 +0 0.06781 +1 0.06469 +0 0.06468 +1 0.06651 +3 0.11566 +0 0.05401 +0 0.14523 +0 0.07725 +2 0.1109 +0 0.20986 +0 0.20788 +4 0.6065 +2 0.11096 +2 0.08539 +0 0.04946 +3 0.20518 +0 0.10906 +5 0.27205 +4 0.14869 +1 0.06185 +4 0.44527 +3 0.0881 +2 0.11123 +1 0.04011 +0 0.0197 +0 0.02013 +2 0.53807 +0 0.05417 +3 0.51362 +0 0.0654 +1 0.20648 +5 0.293 +13 1.33288 +0 0.11722 +5 0.44851 +3 0.67415 +20 2.29444 +11 1.28112 +17 2.40906 +4 1.44283 +9 1.13423 +15 1.60432 +4 1.05263 +52 7.61996 +2 0.71315 +12 0.92915 +32 3.09276 +30 4.39135 +6 0.98158 +22 2.66618 +11 0.88657 +7 1.10323 +255 22.66601 +9 1.28972 +7 0.94133 +11 2.9549 +17 1.73696 +17 3.0282 +8 0.67104 +154 20.25144 +14 1.02259 +5 0.73305 +9 2.23836 +27 3.3101 +10 0.96968 +124 14.71898 +19 1.70402 +7 0.76682 +6 0.37541 +4 0.71192 +3 0.99556 +9 0.69831 +6 0.99919 +11 1.44073 +8 0.78329 +23 1.61148 +9 1.34607 +47 5.39143 +12 1.45404 +17 3.50458 +11 1.10286 +51 6.30453 +98 8.80577 +3 0.97446 +35 5.03546 +7 1.54345 +22 3.82035 +2 0.55599 +6 1.01674 +18 2.35872 +3 0.37061 +100 10.3801 +3 0.34814 +7 0.81513 +18 1.92497 +3 0.35129 +8 1.00252 +5 0.48153 +6 0.85381 +12 1.2595 +5 0.66675 +27 3.56691 +9 1.04375 +10 0.85854 +26 2.82116 +7 1.73786 +15 1.45802 +23 1.80189 +6 1.39467 +7 1.16013 +65 8.32429 +111 11.11769 +44 4.90533 +17 2.19819 +3 1.01252 +12 0.70592 +1 0.32275 +21 4.14696 +16 1.49541 +25 2.70382 +5 0.94753 +27 2.86607 +5 0.55179 +6 0.28344 +0 0.14991 +1 0.3009 +0 0.13859 +5 0.44547 +1 0.25568 +8 0.75973 +7 0.52438 +15 2.04505 +9 0.90414 +9 0.66831 +2 0.2596 +2 0.07281 +20 4.67936 +1 0.11836 +10 2.03022 +3 0.14302 +3 0.28186 +7 1.44327 +8 0.54933 +8 0.69705 +1 0.10869 +0 0.09705 +16 1.28397 +4 0.57912 +6 1.04068 +3 0.11813 +1 0.13763 +0 0.06648 +2 0.08282 +0 0.24125 +0 0.27417 +2 0.60652 +1 0.14509 +0 0.20553 +10 1.01454 +0 0.32521 +2 0.21381 +2 0.20358 +3 1.02271 +3 0.70952 +7 0.7386 +1 0.20021 +1 0.64944 +5 0.61992 +7 0.36429 +0 0.18022 +2 0.29061 +4 0.73526 +4 0.26514 +12 1.15392 +1 0.25124 +0 0.20438 +0 0.2064 +101 12.56156 +4 0.71671 +6 0.82131 +8 0.63522 +4 0.3579 +6 1.51588 +10 0.89059 +5 0.6643 +9 1.34061 +0 0.22969 +1 0.07774 +5 1.57679 +7 0.44223 +6 0.73266 +9 0.94883 +0 0.50182 +2 0.19212 +65 11.16245 +12 1.26059 +11 1.00858 +3 0.26547 +7 0.2088 +1 0.44142 +3 0.40188 +8 1.80192 +70 8.21024 +14 0.8536 +9 1.1005 +26 1.46647 +3 0.49934 +10 0.50729 +14 3.03484 +25 2.41529 +1 0.04604 +1 0.18532 +3 0.17698 +2 0.49496 +50 4.39337 +2 0.40465 +33 1.83222 +9 1.50847 +2 0.18063 +69 7.61215 +9 1.02096 +23 2.51204 +8 0.79659 +49 6.96063 +1 0.28751 +99 14.18362 +11 1.50585 +0 0.04513 +5 0.60122 +14 1.7371 +5 0.57721 +4 0.17653 +6 0.54939 +56 10.44121 +0 0.03757 +9 2.12187 +17 2.26636 +310 25.52482 +17 1.72508 +42 4.01816 +12 1.22272 +56 8.76193 +32 3.00651 +12 1.50834 +106 13.99059 +34 4.2605 +18 3.48974 +3 0.14126 +18 1.43501 +8 3.22487 +62 10.04442 +9 0.97918 +29 2.0089 +9 0.89847 +20 1.50478 +15 2.14779 +45 5.00813 +48 4.80876 +95 10.58031 +9 0.84927 +52 6.32059 +26 3.37399 +1 0.12747 +16 3.09139 +2 0.35562 +8 0.96391 +8 1.08191 +16 2.10386 +9 1.1151 +4 0.56141 +48 4.83919 +105 11.02274 +23 2.13604 +23 2.87967 +50 7.06847 +77 7.33627 +17 2.75363 +18 1.08284 +25 2.73201 +14 1.10701 +25 3.29991 +137 16.053 +6 0.41848 +69 6.3098 +29 2.22115 +5 1.08006 +190 17.41511 +10 1.1884 +2 0.44098 +30 3.54049 +5 0.90777 +16 1.91868 +0 0.15629 +11 1.0367 +12 0.99872 +6 1.00765 +20 1.35788 +7 1.04995 +59 4.69742 +14 1.18006 +73 8.62178 +6 0.68858 +66 9.07472 +24 1.21483 +42 3.93539 +15 1.9391 +125 13.06309 +19 2.93473 +3 0.45011 +15 2.58701 +2 0.08517 +34 3.40408 +3 0.14678 +4 0.3243 +17 2.45946 +13 2.59351 +4 0.19579 +32 5.04462 +13 1.0305 +3 0.50536 +3 0.6989 +3 0.38876 +3 0.54744 +8 0.94059 +4 0.38358 +11 1.80906 +0 0.37146 +0 0.23755 +14 1.81037 +9 0.88697 +44 7.63962 +11 1.06939 +2 0.24254 +34 4.2372 +1 0.26863 +6 0.96324 +9 1.11418 +10 1.25926 +1 0.19125 +30 4.64512 +3 0.12702 +2 0.37055 +2 0.31606 +4 0.60515 +5 1.52072 +9 0.81266 +17 2.55299 +17 4.12841 +3 0.34161 +43 4.8933 +10 1.33096 +7 0.47022 +2 0.29298 +16 3.359 +1 0.07287 +2 0.39429 +0 0.03771 +1 0.18738 +5 0.68526 +2 0.80746 +0 0.11312 +0 0.00975 +0 0.21978 +0 0.04237 +2 0.15674 +1 0.09793 +1 0.29866 +2 0.62841 +1 0.03928 +2 0.18391 +3 0.44242 +2 0.1352 +1 0.10984 +0 0.03844 +0 0.08087 +0 0.10472 +3 0.17781 +2 0.06223 +2 0.18896 +5 0.10289 +2 0.04963 +1 0.13712 +2 0.08774 +0 0.08524 +0 0.03261 +4 0.35706 +3 0.19037 +1 0.0372 +0 0.03416 +0 0.05449 +0 0.02763 +1 0.1363 +2 0.27132 +1 0.5219 +7 0.68144 +1 0.06565 +0 0.14471 +0 0.06744 +1 0.10317 +4 0.58476 +1 0.02298 +1 0.06867 +29 3.5672 +1 0.13996 +18 1.99547 +0 0.07759 +0 0.06165 +3 0.17158 +0 0.06749 +0 0.02005 +0 0.17968 +0 0.06514 +0 0.03796 +1 0.03586 +1 0.13679 +2 0.21399 +3 0.31361 +0 0.12117 +4 0.52237 +0 0.01797 +12 1.62018 +3 0.88954 +5 0.39053 +3 0.32054 +18 2.54973 +15 2.06816 +8 0.95937 +1 0.3142 +6 0.63017 +7 1.38345 +5 0.90378 +2 0.34297 +3 0.72272 +1 0.18862 +8 0.80466 +9 1.13773 +3 0.30125 +15 1.17251 +52 9.76738 +3 0.27464 +0 0.42969 +4 1.02739 +5 0.77407 +2 0.51993 +1 0.41136 +7 0.91725 +13 0.9153 +2 0.62769 +3 0.52575 +9 1.51275 +5 0.35117 +12 1.37487 +50 5.794 +0 0.16379 +2 0.43531 +6 0.60872 +7 1.3044 +1 0.23287 +4 0.56891 +8 0.68602 +5 0.56691 +4 0.19056 +1 0.4274 +2 0.27321 +6 1.09958 +6 0.45557 +44 8.48905 +0 0.14268 +2 0.44342 +8 0.95849 +5 0.27535 +4 0.70957 +8 0.97906 +11 1.1428 +3 0.56172 +3 0.51181 +12 1.49955 +6 0.64976 +5 0.61788 +8 1.50295 +4 0.27671 +8 0.96793 +10 2.64785 +0 0.1421 +5 0.5103 +4 0.70494 +2 0.4909 +1 0.18277 +2 0.122 +3 0.39683 +15 1.53762 +5 0.68448 +11 1.22427 +3 1.30055 +10 4.26763 +3 0.5304 +1 0.28969 +10 1.79115 +62 10.60143 +2 0.43066 +0 0.30384 +19 3.57622 +19 3.10722 +3 1.0548 +1 0.16297 +1 0.42784 +1 0.45594 +6 0.136 +4 0.92276 +16 2.5074 +3 0.40827 +6 0.76287 +6 0.56322 +20 3.15232 +17 2.13763 +6 1.18096 +1 0.30362 +10 1.67392 +5 0.54575 +2 0.22482 +0 0.05104 +3 0.98097 +3 0.54621 +0 0.15691 +1 0.46109 +7 1.45766 +2 0.08889 +2 0.81252 +18 4.47502 +130 31.34895 +2 0.21294 +0 0.01715 +3 0.41871 +8 1.68938 +30 5.71077 +10 3.27976 +1 0.2179 +0 0.0409 +1 0.18396 +7 0.88 +3 0.34743 +8 0.88103 +3 0.77605 +4 0.47932 +2 0.30982 +28 8.29876 +0 0.23348 +1 0.15635 +4 0.58785 +0 0.19087 +3 0.60243 +6 0.98083 +0 0.17669 +2 0.26779 +1 0.07853 +4 0.09063 +2 0.20633 +34 12.05861 +1 0.06964 +3 0.42688 +14 2.03969 +1 0.32977 +1 0.12238 +8 0.88291 +6 1.4139 +0 0.03743 +2 0.08996 +1 0.09468 +1 0.1539 +1 0.06911 +0 0.14968 +169 42.89246 +3 0.35194 +3 0.4333 +1 0.11961 +25 10.65948 +1 0.44404 +2 0.06588 +1 0.24217 +0 0.08956 +1 0.31776 +2 0.42751 +16 2.77573 +0 0.04939 +5 2.70953 +61 15.68949 +3 0.79892 +1 0.3103 +3 0.74849 +3 0.49886 +1 0.09826 +1 0.17273 +0 0.03513 +18 6.58377 +1 0.2249 +5 0.38448 +1 0.40095 +2 0.34063 +31 5.26445 +0 0.12508 +5 0.51073 +0 0.03498 +1 0.16462 +2 0.42443 +6 0.5015 +15 2.53488 +16 2.16245 +2 0.51769 +7 2.1648 +8 0.83397 +0 0.0814 +0 0.19486 +1 0.12838 +1 0.09992 +4 1.11842 +231 66.97872 +8 1.15681 +0 0.14169 +2 0.13099 +7 2.57674 +0 0.08081 +15 1.73111 +32 14.5919 +4 0.76712 +2 0.52581 +12 1.05991 +3 0.72409 +3 0.43867 +8 0.84216 +0 0.08075 +12 1.7587 +3 0.54165 +1 0.04258 +1 0.21641 +2 0.32344 +4 0.70895 +0 0.05615 +28 3.91176 +1 0.12392 +3 0.95563 +19 3.23102 +5 0.50065 +4 0.37195 +8 1.722 +3 0.61531 +0 0.01031 +0 0.01913 +16 1.03993 +0 0.10805 +0 0.00886 +0 0.08188 +3 0.72608 +1 0.08601 +2 1.00672 +0 0.33601 +4 0.44024 +0 0.14615 +4 0.42544 +2 0.35762 +3 0.34989 +12 1.56069 +6 0.45837 +1 0.07256 +0 0.31405 +3 0.42644 +0 0.0016 +29 5.43638 +0 0.15089 +1 0.18502 +28 4.40847 +0 0.0211 +3 0.28141 +1 0.20829 +1 0.10932 +1 0.08983 +5 0.8012 +4 1.13613 +6 0.9923 +0 0.05698 +12 2.5937 +4 0.54432 +1 0.12547 +1 0.23566 +5 0.45886 +34 7.70573 +3 0.49343 +1 0.24205 +0 0.03162 +6 1.1901 +6 0.9497 +1 0.29883 +4 0.34902 +42 7.15914 +1 0.22269 +1 0.05339 +16 1.87191 +12 0.64385 +4 0.45163 +11 2.31233 +1 0.23606 +5 0.41032 +11 0.94795 +21 2.46589 +0 0.17748 +1 0.24592 +11 2.48538 +1 0.07475 +1 0.07341 +3 0.27837 +0 0.31903 +2 0.17207 +0 0.02098 +3 0.29482 +8 1.2035 +3 0.2587 +8 0.97006 +1 0.22642 +1 0.15746 +2 0.51112 +8 1.59629 +1 0.14985 +1 0.06861 +5 0.37951 +1 0.07704 +0 0.48484 +1 0.07719 +39 3.48622 +1 0.17508 +4 1.35002 +1 0.23117 +0 0.03284 +0 0.03448 +0 0.10043 +1 0.19207 +133 30.96654 +18 2.74005 +0 0.02472 +2 0.29918 +0 0.04226 +5 0.62715 +17 2.3427 +47 18.44501 +5 0.29842 +5 0.45765 +6 0.79749 +0 0.07705 +1 0.62769 +6 1.09004 +9 1.18684 +7 1.89888 +10 1.35139 +5 0.60794 +3 0.24406 +8 0.599 +6 4.89336 +6 0.86349 +0 0.11518 +17 2.79578 +1 0.31191 +0 0.48916 +15 6.48425 +3 0.83792 +3 0.16442 +4 1.29231 +12 0.88052 +1 0.172 +3 0.41573 +1 0.30671 +1 0.28203 +5 0.15246 +4 1.09717 +1 2.23545 +3 0.47602 +0 0.02529 +15 6.0042 +3 0.35136 +2 0.26755 +1 0.11512 +4 0.2023 +4 0.83324 +2 0.21318 +1 0.14864 +1 0.31116 +0 0.18749 +1 0.03538 +0 0.05048 +71 21.54724 +3 0.1528 +2 0.57901 +1 0.46461 +1 0.81479 +7 1.09164 +6 0.58616 +26 9.70977 +0 0.42118 +17 2.39247 +2 0.06376 +25 4.86688 +7 0.88501 +17 0.87873 +5 0.73109 +19 3.47583 +2 0.16175 +4 1.12816 +0 0.17993 +3 0.59127 +6 0.71237 +5 0.65528 +17 1.52776 +4 1.41504 +8 1.05928 +14 1.38991 +4 0.66074 +16 2.4691 +4 0.5131 +3 0.21534 +32 4.21691 +2 0.26183 +26 2.47316 +3 0.114 +3 0.17711 +6 0.73531 +5 0.20985 +4 0.62799 +2 0.25782 +2 0.3705 +9 1.26387 +3 0.07612 +2 0.20523 +99 13.35087 +4 0.30446 +0 0.12837 +7 0.752 +0 0.1418 +4 0.39454 +2 0.14277 +122 25.47689 +7 1.32007 +3 0.3451 +0 0.42875 +10 1.07998 +15 2.01683 +6 0.40407 +6 0.78482 +0 0.32991 +4 0.37266 +0 0.18749 +7 0.53985 +11 2.00601 +8 1.27385 +0 0.06154 +4 0.56412 +48 7.0817 +2 0.10522 +0 0.36343 +0 0.25952 +2 0.1954 +5 0.56913 +18 4.27666 +2 0.52577 +2 0.20783 +2 0.27642 +3 0.19829 +5 0.48243 +2 0.19629 +22 3.11617 +0 0.30652 +3 0.30074 +2 0.18386 +4 0.22329 +2 0.23531 +2 0.56666 +4 0.55873 +2 0.44223 +18 1.74314 +2 0.52454 +5 0.31121 +24 6.76517 +1 0.16567 +2 0.15531 +34 4.0277 +8 0.80925 +14 2.51649 +3 0.70016 +2 0.55417 +9 0.87353 +6 0.77416 +3 0.3493 +16 4.62766 +1 0.08367 +4 0.12113 +9 1.02716 +3 0.76541 +9 1.58812 +3 0.27827 +10 1.04874 +4 0.64094 +90 15.78165 +6 0.955 +2 0.41041 +3 0.48079 +9 3.53432 +12 1.63519 +13 1.49662 +53 8.47053 +0 0.09939 +20 2.24484 +8 0.80622 +4 0.15437 +4 1.33189 +1 0.05737 +13 1.91105 +16 1.59671 +11 1.73085 +6 0.64193 +197 34.81509 +38 5.34398 +5 0.81704 +4 0.46153 +11 1.67698 +5 0.24653 +11 1.21788 +6 0.85008 +8 0.48994 +7 0.29107 +117 14.9932 +3 0.35011 +18 2.52862 +1 0.24724 +86 13.9182 +66 9.79729 +6 0.93784 +39 4.72997 +1 0.09251 +10 1.34296 +28 3.94387 +5 0.91088 +33 5.17227 +5 0.37525 +15 1.91573 +3 0.61944 +4 0.36963 +7 0.59572 +19 2.15421 +1 0.1842 +2 0.25451 +0 0.18692 +5 1.09943 +2 0.17418 +1 0.27878 +2 0.80311 +5 0.51629 +12 0.74956 +4 0.31062 +11 1.59237 +8 0.68227 +5 1.0352 +28 4.29169 +5 0.41032 +4 0.54736 +8 0.87053 +2 0.55464 +15 1.28936 +7 0.84551 +3 0.62878 +6 1.38706 +5 0.64316 +4 0.64974 +7 1.93179 +2 0.32348 +4 0.37469 +4 0.64186 +12 1.03144 +2 0.19574 +3 0.18374 +2 0.22841 +9 0.72887 +7 1.27262 +10 1.73752 +3 0.69777 +2 0.25469 +1 0.37861 +1 0.30155 +2 0.39099 +0 0.17463 +0 0.23166 +5 0.56298 +9 1.03496 +6 0.24006 +2 0.41642 +1 0.14634 +27 2.06483 +5 0.60865 +4 0.50792 +4 0.36466 +8 1.10666 +4 0.34398 +41 5.3577 +0 0.34526 +2 0.3838 +5 1.02847 +8 1.39356 +5 0.84077 +10 1.31963 +4 0.41844 +49 9.8598 +25 2.15092 +7 0.68553 +8 1.0365 +2 0.9969 +10 2.17055 +1 0.12803 +24 2.34327 +1 0.21495 +5 1.23928 +8 0.83243 +5 0.46922 +5 0.57237 +2 0.16414 +5 0.46101 +16 1.88292 +3 0.60665 +22 3.53091 +6 0.50967 +15 2.47298 +4 0.4043 +10 0.50965 +5 0.73344 +13 1.97811 +24 2.97973 +6 1.05832 +3 0.36673 +18 1.87453 +139 15.8833 +14 1.02188 +11 0.90614 +19 3.92046 +13 2.01759 +2 0.18237 +3 0.91237 +12 1.04774 +8 1.61366 +2 0.38679 +31 4.13923 +3 0.44695 +32 3.56099 +3 0.3725 +6 1.69088 +11 1.36237 +5 0.3456 +29 2.66986 +2 0.49525 +7 0.67778 +7 0.69947 +7 0.48727 +25 2.32375 +7 0.40574 +20 2.97317 +56 8.79454 +12 1.2935 +12 0.60961 +26 3.75685 +13 1.79221 +2 0.77653 +2 0.2794 +0 0.89778 +3 0.39515 +3 0.30136 +1 0.14789 +6 0.7025 +2 0.3028 +2 0.11043 +0 0.17982 +6 1.9718 +0 0.37697 +16 1.62686 +1 0.05612 +5 0.6289 +0 0.21348 +8 0.64496 +0 0.15691 +4 0.9148 +2 0.49046 +1 0.49196 +2 0.19656 +1 0.1665 diff --git a/sequential/diagnostics.r b/sequential/diagnostics.r new file mode 100644 index 0000000..65a9957 --- /dev/null +++ b/sequential/diagnostics.r @@ -0,0 +1,18 @@ +library(coda) + +r1 = read.csv("results1.csv") +r2 = read.csv("results2.csv") + +a = mcmc.list(mcmc(r1$a[2001:10000]), mcmc(r2$a[2001:10000])) +b = mcmc.list(mcmc(r1$b[2001:10000]), mcmc(r2$b[2001:10000])) + +gelman.diag(a, autoburnin = F) +gelman.diag(b, autoburnin = F) + +pdf("mcmc-trace-alpha.pdf") +plot(a, main = "Alpha") +dev.off() + +pdf("mcmc-trace-beta.pdf") +plot(b, main = "Beta") +dev.off() \ No newline at end of file diff --git a/sequential/empty_file b/sequential/empty_file deleted file mode 100644 index e69de29..0000000 diff --git a/sequential/gibbs_metropolis.cpp b/sequential/gibbs_metropolis.cpp new file mode 100755 index 0000000..f10279c --- /dev/null +++ b/sequential/gibbs_metropolis.cpp @@ -0,0 +1,282 @@ +/* +Created by Zebulun Arendsee. +March 26, 2013 + +Modified by Will Landau. +June 30, 2013 +will-landau.com +landau@iastate.edu + +This program implements a MCMC algorithm for the following hierarchical +model: + +y_k ~ Poisson(n_k * theta_k) k = 1, ..., K +theta_k ~ Gamma(a, b) +a ~ Unif(0, a0) +b ~ Unif(0, b0) + +We let a0 and b0 be arbitrarily large. + +Arguments: + 1) input filename + With two space delimited columns holding integer values for + y and float values for n. + 2) number of trials (1000 by default) + +Output: A comma delimited file containing a column for a, b, and each +theta. All output is written to stdout. + +Example dataset: + +$ head -3 data.txt +4 0.91643 +23 3.23709 +7 0.40103 + +Example of compilation and execution: + +$ nvcc gibbs_metropolis.cu -o gibbs +$ ./gibbs mydata.txt 2500 > output.csv +$ + +This code borrows from the nVidia developer zone documentation, +specifically http://docs.nvidia.com/cuda/curand/index.html#topic_1_2_1 +*/ + +#include +#include +#include +// #include + +#define PI 3.14159265359f + +void load_data(int argc, char **argv, int *K, int **y, float **n); + +float sample_a(float a, float b, int K, float sum_logs); +float sample_b(float a, int K, float flat_sum); + +float rnorm(); + +float rgamma(float a, float b); + +void sample_theta(float *theta, float *log_theta, + int *y, float *n, float a, float b, int K); + +int sum(int * array, int K); +int sum(float * array, int K); + +int main(int argc, char **argv){ + + float a, b, flat_sum, sum_logs, *n, *thetas, *log_thetas; + int i, K, *y, trials = 1000; + + if(argc > 2) + trials = atoi(argv[2]); + + load_data(argc, argv, &K, &y, &n); + + + /*------ Allocate memory -----------------------------------------*/ + + /* Allocate space for theta and log_theta on device and host */ + thetas = (float *) malloc(K * sizeof(float)); + log_thetas = (float *) malloc(K * sizeof(float)); + + /*------ MCMC ----------------------------------------------------*/ + + printf("alpha, beta\n"); + + /* starting values of hyperparameters */ + a = 20; + b = 1; + + /* Steps of MCMC */ + for(i = 0; i < trials; i++){ + sample_theta(thetas, log_thetas, y, n, a, b, K); + + /* Compute pairwise sums of thetas and log_thetas. */ + flat_sum = sum(thetas, K); + sum_logs = sum(log_thetas, K); + + /* Sample hyperparameters. */ + a = sample_a(a, b, K, sum_logs); + b = sample_b(a, K, flat_sum); + + /* print hyperparameters. */ + printf("%f, %f\n", a, b); + } + + /*------ Free Memory -------------------------------------------*/ + + free(y); + free(n); + free(thetas); + free(log_thetas); + + return EXIT_SUCCESS; +} + + +/* +* Take sum of array given the length of the array. +*/ + +int sum(int * array, int array_length) { + int tot = 0; + for (int i = 0; i < array_length; i++) + tot += array[i]; + return tot; +} + + +int sum(float * array, int array_length) { + int tot = 0; + for (int i = 0; i < array_length; i++) + tot += array[i]; + return tot; +} + +/* + * Read in data. + */ + +void load_data(int argc, char **argv, int *K, int **y, float **n){ + int k; + char line[128]; + FILE *fp; + + if(argc > 1){ + fp = fopen(argv[1], "r"); + } else { + printf("Please provide input filename\n"); + exit(EXIT_FAILURE); + } + + if(fp == NULL){ + printf("Cannot read file \n"); + exit(EXIT_FAILURE); + } + + *K = 0; + while( fgets (line, sizeof line, fp) != NULL ) + (*K)++; + + rewind(fp); + + *y = (int*) malloc((*K) * sizeof(int)); + *n = (float*) malloc((*K) * sizeof(float)); + + for(k = 0; k < *K; k++) + fscanf(fp, "%d %f", *y + k, *n + k); + + fclose(fp); +} + + +/* + * Metropolis algorithm for producing random a values. + * The proposal distribution in normal with a variance that + * is adjusted at each step. + */ + +float sample_a(float a, float b, int K, float sum_logs){ + + static float sigma = 2; + float U, log_acceptance_ratio, proposal = rnorm() * sigma + a; + + if(proposal <= 0) + return a; + + log_acceptance_ratio = (proposal - a) * sum_logs + + K * (proposal - a) * log(b) - + K * (lgamma(proposal) - lgamma(a)); + + U = rand() / float(RAND_MAX); + + if(log(U) < log_acceptance_ratio){ + sigma *= 1.1; + return proposal; + } else { + sigma /= 1.1; + return a; + } +} + + +/* + * Sample b from a gamma distribution. + */ + +float sample_b(float a, int K, float flat_sum){ + + float hyperA = K * a + 1; + float hyperB = flat_sum; + return rgamma(hyperA, hyperB); +} + + +/* + * Box-Muller Transformation: Generate one standard normal variable. + * + * This algorithm can be more efficiently used by producing two + * random normal variables. However, for the CPU, much faster + * algorithms are possible (e.g. the Ziggurat Algorithm); + * + * This is actually the algorithm chosen by NVIDIA to calculate + * normal random variables on the GPU. + */ + +float rnorm(){ + + float U1 = rand() / float(RAND_MAX); + float U2 = rand() / float(RAND_MAX); + float V1 = sqrt(-2 * log(U1)) * cos(2 * PI * U2); + /* float V2 = sqrt(-2 * log(U2)) * cos(2 * PI * U1); */ + return V1; +} + + +/* + * See device rgamma function. This is probably not the + * fastest way to generate random gamma variables on a CPU. + */ + +float rgamma(float a, float b){ + + float d = a - 1.0 / 3; + float Y, U, v; + + while(1){ + Y = rnorm(); + v = pow((1 + Y / sqrt(9 * d)), 3); + + /* Necessary to avoid taking the log of a negative number later. */ + if(v <= 0) + continue; + + U = rand() / float(RAND_MAX); + + /* Accept the sample under the following condition. + Otherwise repeat loop. */ + if(log(U) < 0.5 * pow(Y,2) + d * (1 - v + log(v))) + return d * v / b; + } +} + + +/* + * Sample each theta from the appropriate gamma distribution + */ + +void sample_theta(float *theta, float *log_theta, int *y, float *n, + float a, float b, int K){ + + float hyperA, hyperB; + + for ( int i = 0; i < K; i++ ){ + hyperA = a + y[i]; + hyperB = b + n[i]; + theta[i] = rgamma(hyperA, hyperB); + log_theta[i] = log(theta[i]); + } +} diff --git a/sequential/smallData.txt b/sequential/smallData.txt new file mode 100644 index 0000000..4b2e4e2 --- /dev/null +++ b/sequential/smallData.txt @@ -0,0 +1,10 @@ +4 0.91643 +23 3.23709 +7 0.40103 +0 0.40402 +6 1.29803 +0 0.08981 +2 0.29237 +16 2.15126 +7 0.53503 +3 0.56055 diff --git a/sequential/uploadall.sh b/sequential/uploadall.sh new file mode 100755 index 0000000..e5124ac --- /dev/null +++ b/sequential/uploadall.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +scp -i /home/reynaldo/.ssh/uconn_hpc ./* rjm11010@login.storrs.hpc.uconn.edu:/home/rjm11010/hpcproj