sicsa-mcchttp://offog.org/git/sicsa-mcc.atomgitatom2011-06-17T15:07:00Zhttp://offog.org/git/sicsa-mcc.git#948c478d92ea6133eb04355e564d360b58bf01cb2011-06-17T15:07:00Z2011-06-17T15:07:00ZAdd make-csv script for Paul.Add make-csv script for Paul.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#5b104939286cc75465e6b7616c1575167178079b2011-05-27T07:25:56Z2011-05-27T07:25:56ZMove slides into my writing repository.Move slides into my writing repository.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#b763a72b0f345eb5924ac4e851dbe7620c2bd13a2011-05-26T16:22:46Z2011-05-26T16:22:46ZRemove the "if real" stuff.Remove the "if real" stuff.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#950ca2fcf95968e06ce495d5d667c5d1d16136ca2011-05-26T16:22:16Z2011-05-26T16:22:16ZUse 200 steps rather than 1000 -- 1000 takes too long for the whole testsuite to run!Use 200 steps rather than 1000 -- 1000 takes too long for the whole testsuite
to run!
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#7193295bc254f27005460622dbd95195899dd5252011-05-26T16:21:47Z2011-05-26T16:21:47ZDon't rerun tests where the result exists already.Don't rerun tests where the result exists already.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#8b042085a634405e39c743ce07d107f7fcfb2d912011-05-26T12:21:38Z2011-05-26T12:21:38ZDo 1000 time steps -- 100 is too short.Do 1000 time steps -- 100 is too short.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#b465e9b435d7634cb44e859d41c69f7ab02c9e592011-05-26T12:18:47Z2011-05-26T12:18:47ZUpdate set of tests to run.Update set of tests to run.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#788f274ff695548e3bc295dc18679bbc1f8bf5b32011-05-26T11:51:26Z2011-05-26T11:51:26ZAdd OpenMP implementations.Add OpenMP implementations.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#ec6f7acb9613e157dae97526c568ee92bb811dd02011-05-26T11:28:55Z2011-05-26T11:28:55ZTBB-ified sq and tri implementations.TBB-ified sq and tri implementations.
tri, which uses spin_mutex, is quite a bit better than I expected.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#c6fde435be56a0e3ea39b923a8238ed9619c01c12011-05-26T10:52:28Z2011-05-26T10:52:28ZAdd tri+cache and sq advance implementations.Add tri+cache and sq advance implementations.
tri+cache performs the same as tri.
sq should be twice as slow as tri, but it's actually 1.6x since it has much
better cache locality.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#15a4cc1eb13d6f391f7e7eb1b5aad7ea709b65842011-05-26T10:32:43Z2011-05-26T10:32:43ZImplement mag() using SSE.Implement mag() using SSE.
Interestingly, adding the const annotations seems to have made this work
properly... hrm. It's about twice as fast as using SSE single-float maths.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#65626dadf27978a6356754da852b57294849f4682011-05-26T10:07:42Z2011-05-26T10:07:42ZAdd const annotations on the vector methods.Add const annotations on the vector methods.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#867787794aecc227ba8719178dcf9908d2df2d542011-05-26T10:00:08Z2011-05-26T10:00:08ZAdd a --mode option to switch the advance implementation.Add a --mode option to switch the advance implementation.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#fa70538b7afd408b815c166492cb754416c9e0662011-05-25T18:11:26Z2011-05-25T18:11:26ZAdd SSE implementation of vector class.Add SSE implementation of vector class.
... which works, but has the minor downside of being nearly impossible to use
owing to the alignment requirements.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#2ed3f39c3520571bdd844da5f2f808457ff3ccb42011-05-25T16:11:30Z2011-05-25T16:11:30ZAdd a test suite for the vector class.Add a test suite for the vector class.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#7adebbedc3aaef9742910070b587277a8a7a87012011-05-25T15:57:27Z2011-05-25T15:57:27ZAdd Python program to run tests with assorted options.Add Python program to run tests with assorted options.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#fc7079779b4ecf853e7f57c0f934659a0ccba6212011-05-25T13:57:17Z2011-05-25T13:57:17ZAdd --max-threads option.Add --max-threads option.
This doesn't actually have any effect yet, since the only thing it uses TBB for
so far is this...
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#76ab6ab9963efe83088069a4d6d23072ea3adefd2011-05-25T12:32:09Z2011-05-25T12:32:09ZAdd some folds.Add some folds.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#f297e447facbd0b90c402e7b51133404605331042011-05-25T12:28:50Z2011-05-25T12:28:50ZJunk prefs.hh and add command-line args for most things.Junk prefs.hh and add command-line args for most things.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#9b52d8ab8c8cc78940d2b1dde9caf608eb8f52162011-05-25T12:03:00Z2011-05-25T12:03:00ZMove options out into header file.Move options out into header file.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#f9355016610688c68e87e8fe3d79fcdc815b9a7c2011-05-25T11:45:53Z2011-05-25T11:45:53ZFix inconsistent name.Fix inconsistent name.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#03f52498b57284a1660c967aad656dd7250bf7682011-05-25T11:25:37Z2011-05-25T11:25:37ZAdd code to do timing over several repetitions.Add code to do timing over several repetitions.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#87b3be753517e8be7806cbdac1d6a12358c1e9f92011-05-24T16:25:26Z2011-05-24T16:25:26ZParameterise some more stuff.Parameterise some more stuff.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#08a7995c916d6fff1abfe2b4d34d8ff2f624ca402011-05-24T15:00:02Z2011-05-24T15:00:02ZReimplement the shootout version of nbody.Reimplement the shootout version of nbody.
This reproduces the results of the original.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#82f365ddaabd26a44aec14cce6bdbf1df979955d2011-05-24T13:51:00Z2011-05-24T13:51:00ZEnable -Wall.Enable -Wall.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#c3e0f46710e46906dab6930a48dc6eede6497bcc2011-05-24T13:50:24Z2011-05-24T13:50:24ZMake the shootout implementation write out data.Make the shootout implementation write out data.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#08f589c9bca12aa1d52768922101477d5265e72b2011-05-23T16:07:24Z2011-05-23T16:07:24ZSkeleton for a C++ nbody implementation.Skeleton for a C++ nbody implementation.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#01615b73fbbc37d483fed09d23d2d5a886a29be42011-05-23T16:06:51Z2011-05-23T16:06:51ZAdd partial flocking implementation.Add partial flocking implementation.
I gave up on this; maybe for a future challenge...
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#c1f3bc1230060f2b76692c84919804d06165570f2011-05-23T15:59:57Z2011-05-23T15:59:57ZAdd reference implementation and data file.Add reference implementation and data file.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#2f168533d0a6a719f2771eb6cb6e031e8d20ed2c2010-12-13T21:57:12Z2010-12-13T21:57:12ZAdd gnuplot script.Add gnuplot script.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#ffae066c114184d951d1873a7a352fd9115c1b9c2010-12-13T09:56:13Z2010-12-13T09:56:13ZA bit more work.A bit more work.
(This occam version isn't anywhere near working; this was where I gave up. Use
the Python one instead.)
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#c828a20c6af940fdedc39da16c31cf9b885d7fd52010-12-13T09:55:59Z2010-12-13T09:55:59ZAdd Git URL.Add Git URL.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#d76ba8df3a89f3697453c29927f0a7b8b075a6372010-12-13T03:38:25Z2010-12-13T03:38:25ZAdd presentation.Add presentation.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#79ab755c0d034fed6b9bcfe042e1bd966e670dfe2010-12-13T01:23:07Z2010-12-13T01:23:07ZAdd really little version.Add really little version.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#30a85c18b184a8040aec2454961b8099a78a7e7c2010-12-13T00:56:26Z2010-12-13T00:56:26ZRemove old benchmark script.Remove old benchmark script.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#c98dbec62894e6a0c7edf51524269150834ad73c2010-12-13T00:55:14Z2010-12-13T00:55:14ZAdd benchmark versions and results.Add benchmark versions and results.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#1aa1b6a8f83e3d3fdff9a341e6c531f38c3249b32010-12-13T00:38:54Z2010-12-13T00:38:54ZAdd reference implementation in Python.Add reference implementation in Python.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#d79e92d07da9462f921207beaf5ef93d77b1d6072010-12-13T00:29:11Z2010-12-13T00:29:11ZUse queues to connect concordance and merge_counts.Use queues to connect concordance and merge_counts.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#3fa42307e65b0519582307b70b63fce03c14afea2010-12-13T00:04:42Z2010-12-13T00:04:42ZParallelise output.Parallelise output.
This avoids sending the results back at the end, although it involves some
gymnastics to get the count back too. (You can't mix pools and locks.)
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#b440d284c0c85bcbf53e885b98c99b74cb18de8e2010-12-12T23:38:33Z2010-12-12T23:38:33ZParallelise the merge in a simplistic way.Parallelise the merge in a simplistic way.
This spends much of its time shuffling data around between processes.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#5fe2cfacb9cd97244fe5269ecea97a095c2a2ed92010-12-12T23:38:18Z2010-12-12T23:38:18ZAdd an option for the program to run.Add an option for the program to run.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#b4364faf589df13848fbd25ffa61d8aa843d8cdb2010-12-12T23:08:42Z2010-12-12T23:08:42ZAdd benchmark script.Add benchmark script.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#bd5459c81898cc7edf699e5c609bcf00e1684a2a2010-12-06T18:42:19Z2010-12-06T18:42:19ZDefine die().Define die().
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#49718dd761adb3f7455309aa2a9fe2757f1ad6122010-12-06T18:17:29Z2010-12-06T18:17:29ZSort results, then use heapq.imerge.Sort results, then use heapq.imerge.
This is slower, although it should scale better.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#c8d16bad544190c6c843d4ee7dae5f8c808160a82010-12-06T18:16:22Z2010-12-06T18:16:22ZAdd benchmarking script.Add benchmarking script.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#988fb8bf8b018273a4c3543acace87c77400bdd82010-12-06T17:23:15Z2010-12-06T17:23:15ZJoin the asyncs in main, rather than merge.Join the asyncs in main, rather than merge.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#734580a1d32eb29cb4f1f2d347c27ff0c6ba51e62010-12-06T16:24:45Z2010-12-06T16:24:45ZAdd a -q option to just print the count of phrases.Add a -q option to just print the count of phrases.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#7b61fde786614f0a0e33e47d342ac841c7858cbb2010-12-06T16:14:23Z2010-12-06T16:14:23ZDrop empty words that result from punctuation.Drop empty words that result from punctuation.
This replicates what the Haskell implementation does.
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#28bf7aeae10e2293e5554c8bb9a5cab62ab9634e2010-12-06T16:11:21Z2010-12-06T16:11:21ZCompute the overlap correctly.Compute the overlap correctly.
Previously this was giving different answers for different numbers of chunks...
Adam Sampsonats@offog.orghttp://offog.org/git/sicsa-mcc.git#e71b1e8b2efca0d48c1bf96a1b8ef7d47b1c62d32010-12-06T14:55:58Z2010-12-06T14:55:58ZParallelise using multiprocessing.Parallelise using multiprocessing.
Adam Sampsonats@offog.org