Commit Graph

719 Commits

Author SHA1 Message Date
Harendra Kumar
54bb7ea8fd modularize benchmark charting code, use newer bench-graph 2018-10-10 12:39:27 +05:30
Harendra Kumar
0ef728a55f remove the Quit constructor 2018-10-10 12:39:27 +05:30
Harendra Kumar
49542d2445 Fix ahead style nil stream merging live lock 2018-10-10 12:39:27 +05:30
Harendra Kumar
27d277c8cd Simplify code in processWithToken 2018-10-10 12:39:27 +05:30
Harendra Kumar
907f9adc34
Merge pull request #106 from wygulmage/lint
ran src through hlint, made most changes; added .hlint.yaml.
2018-10-07 09:38:10 +05:30
Keith
6c9d241f73 ran src through hlint, made most changes; added .hlint.yaml. 2018-10-01 11:02:10 -04:00
Harendra Kumar
1c9e94809f Update and reorganize the prelude API docs 2018-09-17 17:01:17 +05:30
Harendra Kumar
8c07d9602a make some minor edits 2018-09-14 20:04:27 +05:30
Harendra Kumar
3594a56a79 Create a separate overview section 2018-09-13 19:00:05 +05:30
Harendra Kumar
875b3a00b7 update README 2018-09-13 17:37:02 +05:30
Harendra Kumar
3ce061d81c Add missing Async.md doc file to packaged files 2018-09-13 09:38:14 +05:30
Harendra Kumar
4c356cee04 update containers' version bound 2018-09-12 21:25:59 +05:30
Harendra Kumar
3e24dc1a97 update reference for comparison with existing packages 2018-09-12 21:12:57 +05:30
Harendra Kumar
5688ad0348 bump minor version 2018-09-12 21:01:22 +05:30
Harendra Kumar
5284add0e0 mention API similarity to vector 2018-09-12 20:53:43 +05:30
Harendra Kumar
4100822c84 update README 2018-09-12 16:19:16 +05:30
Harendra Kumar
83dc30a7fe disable some intermittently failing tests
These are parallel/concurrent tests that fail due to unpredictable delays in
scheduling.
2018-09-12 12:39:18 +05:30
Harendra Kumar
cca869f7ed Fix a rate control issue
We were not sending enough workers in the end when the streaming is finishing.
Also, limit the estimated workers to the number of yields required.
2018-09-12 11:13:56 +05:30
Harendra Kumar
e583f563e0 remove heap delayed output check
it caused the "nested" benchmark to become much worse for aheadly and made
memory utilization more in linear aheadly/unfoldrM benchmark (3MB became 10MB)
2018-09-11 14:24:27 +05:30
Harendra Kumar
77d13bc31a stop the workers when heap is being cleared
If we keep the workers running and picking up more work it starves the heap
clearing worker (it is single threaded) and therefore the heap piles up to a
large size.
2018-09-11 12:55:52 +05:30
Harendra Kumar
9d08a586b0 Disringuish the heap clearing and waiting states 2018-09-10 18:50:00 +05:30
Harendra Kumar
302013068f refactor to use IORef and MVar interchangeably 2018-09-10 15:56:07 +05:30
Harendra Kumar
477a6dea13 ahead stream: do not send extra workers
when there is output available in the heap but not yet transferred to the
outputQueue. This change may not be necessary if the output is promptly
transferred from heap to outputQueue, which is not done at this momement, but
future changes may do that.
2018-09-10 13:56:28 +05:30
Harendra Kumar
2eec2cd33c do not send more than on worker to clear the heap
For ahead streams, in the end when the work queue is empty and only heap has
some remaining output to be transferred to the output queue, we should not send
more than worker to do it because anyway only one worker can work on the heap
at a time. Otherwise it leads to unnecessary workers not doing anything and
starving the single worker which is actually clearing the heap.
2018-09-10 13:37:27 +05:30
Harendra Kumar
b11c7cdc31 rearrange benchmarks for aheadly 2018-09-07 08:38:18 +05:30
Harendra Kumar
0f41e2355c Add comparison with async 2018-09-06 22:00:28 +05:30
Harendra Kumar
d73041c957 Pass WorkerInfo only when needed
impacts performance quite a bit when lots of workers are sent, especially in
the case of parallel streams.
2018-09-06 17:30:02 +05:30
Harendra Kumar
772dbd4092 replace "once" with "yieldM" in examples 2018-09-04 18:05:37 +05:30
Harendra Kumar
eeb3b03935 bump version 2018-09-04 16:17:42 +05:30
Harendra Kumar
8a4305c38d update acidrain example in tutorial 2018-09-04 16:17:26 +05:30
Harendra Kumar
b9bfd202cb update README and Changelog 2018-08-25 08:48:39 +05:30
Harendra Kumar
3b1f3dd5a8 Add bench group for rate benchmarks 2018-08-25 08:48:22 +05:30
Harendra Kumar
bf47e461a0 remove adjustLatencies, account consumer idle time too
We must account customer idle time too in the rate computations
2018-08-25 06:38:01 +05:30
Harendra Kumar
ebdfa837f2 implement rateBuffer to forget distant gains/losses 2018-08-25 06:33:08 +05:30
Harendra Kumar
482b971ebb make custom rate combinators functions
instead of constructors
2018-08-25 04:51:00 +05:30
Harendra Kumar
4a546a8aec Fix the min/max limit, swapped them
Also some refactoring/cleanup
2018-08-24 01:29:39 +05:30
Harendra Kumar
aa8345d0d4 Add avg/min/max/const/rate specifications for rate 2018-08-23 06:58:03 +05:30
Harendra Kumar
a74f668de7 rename yieldRate to just rate 2018-08-19 06:24:37 +05:30
Harendra Kumar
904de167ff refactor some of the yieldRate stuff 2018-08-19 05:04:22 +05:30
Harendra Kumar
a385c6a3bb maxThrads and maxBuffer should pass on state even in serial streams
otherwise it becomes confusion and hard to debug, when state is not getting
passed, later we figure out that it is because of serial stream. Since streams
can be changed easily it should not change program behavior.
2018-08-18 02:47:54 +05:30
Harendra Kumar
5d84fb3233 make NanoSecs Int64 instead of Word64
unsigned arithmetic causes trouble during comparison with signed quantities.
specifically when comparing minThreadDelay with sleepTime
2018-08-18 02:43:03 +05:30
Harendra Kumar
e2c366c675 Allow state passing through stream append operations 2018-08-18 02:38:05 +05:30
Harendra Kumar
526f024a51 report latency stats for parallel streams as well 2018-08-18 02:15:09 +05:30
Harendra Kumar
59f9158e91 report SVar creator thread and latencies in diag 2018-08-18 02:04:40 +05:30
Harendra Kumar
6ae6879887 rename maxRate to yieldRate, update doc 2018-08-18 01:51:52 +05:30
Harendra Kumar
ce90b27649 Add DEVBUILD flag for the test suite "test" 2018-08-16 19:34:11 +05:30
Harendra Kumar
844e31ee3a Add since notations 2018-08-16 19:30:18 +05:30
Harendra Kumar
a43b67141e Add thread cleanup in changelog 2018-08-16 06:45:07 +05:30
Harendra Kumar
9a2144e598 Fix travis build timeout 2018-08-16 06:38:30 +05:30
Harendra Kumar
c9aecb3486 Fix some issues in yield limit handling for aheadly 2018-08-16 04:40:49 +05:30