-
Notifications
You must be signed in to change notification settings - Fork 2
/
IDEAS.txt
82 lines (66 loc) · 1.95 KB
/
IDEAS.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
Control flow structures:
* If-then-else (need to allow mix of lazy and strict args)
* Custom control flow procedures implemented in Python
* compound
* replaces a channel.
* when evaluated , replaces channel in output tasks
* CBV or CBN
* Needs to emulate a channel: if user calls get it will have
to unfurl
App procedures:
------------------
* New backends
- Coasters - talking directly to workers
- Swift?
- CIEL
- JETS
* local and remote files
GPU support:
------------
* CUDA
* OpenCL
Misc:
----
* Stack overflow avoidance?
* register named input
Arg Handling:
-------------
* Optional args?
* Lists args via Multiple
* Verify() method on type to check that contents are of correct type?
Programming Abstractions:
-------------------------
* Parameter Sweep Primitives
- combinations, permutations, etc combined with imap
* random number generation
Makefile:
----------
* Implicit rules of Type -> Type
@ruleapp((OFile), (CFile), rename=('%.o', '%.c')) renamerexp?
* register files as sources or intermediates
sources = ["test.c", "test2.c"]
addsources(map(CFile.bind, sources))
- intermediate files?
* need to be able to inspect file times and trace back to see if fresh
.isFresh() method on channels that searches back through dependencies
- need to determine if an channel with missing inputs is out of date or a
source:
Streaming:
* resultbag() could be basis for a stream type
Work stealing + asynchronous evaluation:
* Split Deque data structure
Each thread:
Stack frame for tasks which have some
dependencies not started. Each frame
is just a tuple of unstarted tasks.
-----------------
| |
-----------------
Suspended deques which are waiting on
result of asynchronous evaluation
----------------
| | <- task running asynchronously
----------------
^
|
Tasks which depend on that task