4 ms·
That's an interesting idea, and I can see there being some overlap, but the Key operator is actually not my invention, but is a member of a class of operators s
by arcfide 10y ago
That's an interesting idea, and I can see there being some overlap, but the Key operator is actually not my invention, but is a member of a class of operators sometimes called classifiers. You can think about the GROUP BY operator in SQL. Or Henglein's work on discriminators. Key is an operator that is relatively new in Dyalog that came from J and some other APLs, I think. I have to go back to my paper to remember.
http://dl.acm.org/citation.cfm?id=2935331 http://dl.acm.org/citation.cfm?id=2935331
- joe_the_user 10y agoI'm scanning the documents. Basically, group nodes and map/operate on them. It seem like that would be fairly simple if you are dynamically creating kernels. -- Edit: Which implies you're doing a pretty "bare metal" interface to the GPU which still lets you do that and there's interesting story there, if I'd not totally off-base.
- arcfide 10y agoI try to avoid going bare metal as much as I can because of the difficulty involved with working with GPUs at that layer. I try to focus on higher level concerns, and use the excellent low level work of people such as the ArrayFire developers to handle the low level stuff. I still have to understand it and work with it at some level sometimes, but for the most part I stick to my core abstractions.
- joe_the_user 10y agoSo ArrayFire allows the creation of kernels/the calling of functions in parallel/ on the fly?
- arcfide 10y agoIn some limited, restricted cases, yes.
- klettow 10y agohttp://code.jsoftware.com/wiki/Essays/Key#History http://code.jsoftware.com/wiki/Essays/Key#History
- RodgerTheGreat 10y agoIf I follow correctly, the k6 equivalent would be: {x'y@=z} "X of each of Y indexed by the group of Z." As in: key[+/;1 2 5;`x`z`z]