libera/#clasp - IRC Chatlog
Search
13:50:21
drmeister
I drew all the building blocks we have and I now have 7120 training molecules and everything has slowed way down.
14:07:12
Bike
also, i filed my pr to upstream conspack a few weeks ago and haven't gotten any kind of response. i might see about taking over maintenance
14:22:57
drmeister
I've described every building block we have and built all the training molecules and there are about 7000 of them. Now everything has slowed down. So I need to get a machine working where I can profile code and speed some things up.
14:24:49
drmeister
I'm splitting up the conformational searching into multiple submissions - 4 currently.
14:26:22
drmeister
If I wanted to intern a whole bunch of complicated symbols - is there a problem with calling them all keywords?
14:29:13
yitzi
The only downside to keywords is that they won't be garbage collected. It there are used like keys in a dictionary...then that is usually what you want.
14:35:20
Bike
if you want something like interning, you don't have to use keywords. you could make an EQUAL hash table where the keys are (:pro4rr (+side :mrp) ...) or whatever
14:37:02
drmeister
Why??? "The problem is an unfortunate incompatibility of licenses: perf is GPLv2, not GPLv2+, and libbfd is GPLv3+"
14:39:33
drmeister
I would (intern "PRO4RR_{_+SIDE_MRP_}_{_-DKP_APRO4RR_}_+DKP_PRO4RR" :keyword) and then use the result instead of the "PRO4RR_{_+SIDE_MRP_}_{_-DKP_APRO4RR_}_+DKP_PRO4RR" string.
14:40:16
drmeister
I also have a hash table that now uses keys that are conses of two of these strings...
14:40:24
drmeister
(cons "PRO4RR_{_+SIDE_MRP_}_{_-DKP_APRO4RR_}_+DKP_PRO4RR" "PRO4RR_{_+SIDE_MRP_}_{_-DKP_APRO4RR_}_+DKP_PRO4RR")
14:41:28
drmeister
I call a string like "PRO4RR_{_+SIDE_MRP_}_{_-DKP_APRO4RR_}_+DKP_PRO4RR" a monomer-context.
14:42:47
drmeister
and another hash table that maps (cons monomer-context1 monomer-context2) -> vector of allowed conformations of the monomer for monomer-context2 given the conformation of the monomer for monomer-context1
14:43:39
Bike
basically what i'm thinking is, if you have a hash table that maps a monomer context to fragment information, the monomer context could be represented as the (:pro4rr ...) list instead of a string. assuming you start out with something like the list rather than a string, it might be more convenient that way
14:52:03
Bike
well, some stuff does pop out. there's condition-wait, so there's some contention. coerce-to-list and print-object are the kind of calls that might be possible to replace
14:52:25
drmeister
I dug deep into it at one time and I think I learned that backtraces on linux are broken because lots of libraries use the omit frame-pointers optimization (bastards!)
14:53:29
drmeister
So perf uses a technique to recover return addresses - they use this branch buffer that keeps track of like 20 branch addresses to fill in gaps in the backtraces. I'm really unsure about this.
14:53:57
drmeister
That on AMD the branch buffer is different from on Intel chips and perf does this successfully on Intel chips but not AMD chips.
14:54:42
drmeister
AMD has their own profiling tool that supposedly works but it's not perf and the data it generates only works with their x-windows gui for displaying flame charts.
14:55:46
Bike
this is so ridiculous. well, i can see about getting x windows on zeus, at least. that would probably be useful for other stuff anyway.
18:38:04
drmeister
Do you recall any other details? I thought llvm14 automatically upgrades to dwarf5 - so we didn't choose it. I'm wondering if the problem I'm having with addr2line on the hermes ubuntu system is that addr2line doesn't support dwarf5
18:40:23
yitzi
No, we chose it here https://github.com/clasp-developers/clasp/commit/b94f9f30c4119a2dd706fb4ee3d419a617ee18bc
18:41:37
yitzi
Specifically, in jit-setup.lisp with the (defconstant +debug-dwarf-version+ 5) ... its not a koga option
18:42:07
drmeister
I ran into troubles on bigmac and now I have to drive in to Temple to re-install xcode.
18:42:19
yitzi
You could try changing that to a 4 just for profiling...but we need it to be five for source code info to work
18:43:39
drmeister
It sounds like another rabbit hole. Anything that breaks source code info will probably be bad news for profiling.
18:45:07
yitzi
It won't break source code info for C++...just Lisp since I used one of the dwarf fields to store a reverse lookup on the logical pathname that isn't available in v4.
19:16:05
Zevv
hi folks; clasp utter newbie here, I got build failures on latest ubuntu, clang 13.0.1-3. koga did fine, but ninja build fails: http://ix.io/4msj
19:31:35
drmeister
For jitted code we generate a perf-<pid>.map file like javascript. It will take work to figure out if we can get AMD uprof to use that. I personally doubt it will be able to. AMD uprof looks proprietary and I don't see any support for javascript.