freenode/#sicl - IRC Chatlog
Search
8:50:30
no-defun-allowed
After a conversation with the program manager, I have submitted all the transfer credit forms. The immediate result of that is that I have about a month with no work to do, and another two with a reduced workload.
8:53:20
no-defun-allowed
The manager decided the "bootcamp" classes were definitely unnecessary, given my studies last year. But she insists that I should re-learn databases and some other stuff formally, so the other classes have to be evaluated properly. (Though the relational algebra didn't get any more complex since I learnt it in high school...)
8:54:35
beach
So classes that are new to you won't start for another month? Did I understand that right?
9:02:50
beach
Well, then. You can take on some interesting programming project for a month or more. Or you can start reading up on the classes that you will take later. Or you can go surfing. Lots of possibilities.
9:21:17
no-defun-allowed
Would it be too weird to find the high performance computing group when I've only been enrolled for a week? Perhaps the trick is not to mention it.
9:32:30
splittist
Find interesting people doing interesting things and make yourself useful. Worked for Guy Steele (:
9:33:08
no-defun-allowed
beach: I am hoping to test concurrent hash tables on larger machines with more cores. Not exactly heisig's territory from what I hear.
9:40:35
splittist
Virtual Keypunch: https://www.masswerk.at/keypunch/ (I promise to try to get back on topic...)
10:33:02
beach
Nah. It's just that there is such a huge amount of stuff to do that there is plenty to choose from.
11:13:06
no-defun-allowed
ebrasca: The trick is to relax until you are bored enough that programming some more is more enjoyable. That usually provides a good average productivity per time unit.
12:55:49
beach
My experience from my day job is that it is common to be simultaneously bored and overworked.
13:07:45
jackdaniel
it is enough to avoid distractions (i.e cut off the internet) and deprive yourself of interesting materials (books, intellectual puzzles)
13:08:31
jackdaniel
while having plenty of distracitons keeps you from boredom, boredom seems to be a more honest way of wasting time - i.e nobody plays tricks with your brain (aka user engagement/addiction patterns)
13:11:01
splittist
I am often amazed at the insights that can be gained from (a) going through a printout of some code with a pen (or pens of different colours) or (b) going for a walk with a specific topic in mind to think about. Especially after hours/days of staring at screens.
13:12:36
splittist
(Of course, you may think that what counts as insight for me is a fairly low bar...)
13:15:43
beach
I use my private sauna for that. No distractions there. Just thinking time. A significant fraction of my paper ideas were invented there.
14:20:39
beach
So for the EDU computation, I have a work list that starts off containing every instruction. When I pop and process one instruction, new instructions will be pushed, but it is likely they will already be on the work list. I could use PUSHNEW, but that could be slow.
14:20:40
beach
I am thinking a combination between a hash table and a list. Instruction are in the hash table if and only if they should be processed. When an item is "popped" off the work list, before it is processed, I check whether it is in the table. Does that sound good?
14:21:10
beach
If there were a way to select some arbitrary item in a hash table that would work too.
14:22:01
Bike
you can do that by mapping with a function that returns the first result, though it's kind of clum- yeah
14:27:26
beach
By that I mean, instead of checking the hash table before deciding to push a new item, check the hash table when it is popped.
14:38:17
heisig
Here is how I solve this (operating repeatedly on the nodes of a graph) in Petalisp.
14:39:01
heisig
What I do is that I assign each node a unique number, starting from zero. The number is stored in the node.
14:40:21
heisig
So whenever I need to attach state to each node, I create a vector whose length is one larger than the highest number that has been handed out so far.
14:41:33
heisig
I also have a function for recomputing the node numbers in case the graph is modified.
14:52:06
beach
Yes, I have always resisted putting slots in IR instructions for such purposes. I could possibly accept a stealth mixin.
14:54:06
heisig
I understand that. I justify it this way - numbering the nodes is just useful for this trick, but also for efficiently traversing all nodes exactly once.
14:59:26
heisig
Also, trying to understand your attitude of not bothering too much about performance has helped me a lot, so far.
15:00:00
heisig
Because now I am one of the few people in HPC that can deliberately 'switch off' this obsession about performance.
15:00:49
Bike
i have been considering keeping a node count in the BIR structures. With the backpointer maintenance I think it might be possible to update the count transparently, and then it can be used to make hash tables from nodes without needing to resize repeatedly (which really hurts performance)
15:02:22
heisig
It isn't. One sweep to set all counts to -1 or :INVALID, and a second sweep to assign the new numbers.
15:04:22
heisig
Oh, right. The difference is that the way I hand out numbers, they can be used directly as the 'keys' of a vector storing node information. So there is often no need for hash tables anymore.
15:10:22
Bike
https://github.com/s-expressionists/Cleavir/blob/master/Dominance/dominance.lisp#L85 It iterates through the graph to get the size, and then uses that to make a vector
17:37:23
beach
Major progress. I think the calculation for "estimated distance to use" is working. I invoke it for every IR program during bootstrapping, and I have checked that the result seems plausible. Also good news, it did not significantly impact the time to run the bootstrap procedure.
17:38:15
beach
In less than 20 minutes, my (admittedly small) family will announce that dinner is served. I will be around until then, but otherwise I am calling it a day.
17:48:57
beach
My (admittedly small) family just announced that dinner is served. I'll be back tomorrow.
19:12:34
karlosz
its useful for fast dominance algorithms too, since dfo numbering is actually useful for things like semidominator computation