| 26 Jun 2026 |
emily | yeah, so := it | 13:47:32 |
emily | what I think I'd prefer is a default preCheck hook that yells if it can tell you're about to do OpenMP stuff but don't have mpiCheckPhaseHook, or something | 13:48:01 |
emily | because it sets a bunch of other stuff too | 13:48:12 |
emily | admittedly "tell you're about to do OpenMP stuff" might be complicated | 13:48:34 |
dramforever | openmp and mpi are almost unrelated | 13:48:47 |
dramforever | might explain why | 13:48:59 |
emily | well | 13:49:06 |
emily | mpiCheckPhaseHook sets OMP_NUM_THREADS | 13:49:11 |
emily | so maybe I'm not the only one confused by this :P | 13:49:23 |
dramforever | might explain why stuff aren't using it i mean | 13:49:23 |
Grimmauld (any/all) | okay other idea | 13:49:41 |
emily | all of these things have to be depending on OpenMP already right? couldn't we just put a setup hook on OpenMP itself to set the var | 13:49:54 |
Grimmauld (any/all) | it might not depend directly. Biggest problem has been python things running via numpy/scipy | 13:50:51 |
emily | give those a setup hook then? :) | 13:51:12 |
Vladimír Čunát | The variable shouldn't hurt to have everywhere in builds (by default), no? | 13:51:33 |
hexa | and they do it via blas I think | 13:51:43 |
Vladimír Čunát | * The variable shouldn't hurt to have everywhere in builds (by default), no? Or possibly just in the check phases. | 13:52:29 |
emily | probably not, and I could see an argument for "we should just set every relevant environment variable for ~everything in stdenv". but that might be an annoying practice to follow in general, e.g. would turn various kinds of flag changes into world rebuilds. and then it doesn't scale if you also need to say, point something at a path or whatever (which mpiCheckPhaseHook also happens to do) | 13:53:02 |
Grimmauld (any/all) | add mpiCheckPhaseHook to blas propagatedBuildInputs ? | 13:53:08 |
emily | so feels like doing it closer to the problem makes sense by default | 13:53:25 |
emily | not sure what it is with Python things and using all the cores all the time | 13:53:52 |
hexa | default numpy/scipy behavior | 13:54:10 |
hexa | they scale right up | 13:54:16 |
Grimmauld (any/all) | python has checks-by-default, and numpy/scipy abstracts away the compute cost of tests | 13:54:20 |
emily | right | 13:54:25 |
hexa | the real deal would be faking nproc for builds | 13:55:03 |
emily | probably just adding setup hooks to those is sufficient then? or the Python check phase could yell at you if it sees them in the dep graph but not a corresponding hook… | 13:55:18 |
Vladimír Čunát | IIRC cgroups only allow you to pin to particular subset of cores. | 13:56:24 |
Vladimír Čunát | * IIRC cgroups only allow you to restrict to particular subset of cores. | 13:56:43 |
Vladimír Čunát | * IIRC cgroups only allow you to restrict to a particular subset of cores. | 13:56:50 |