Participating in the spring 2025 challenge, which has an aspect of low level optimization, so I wonder what kind of hardware (limits) there are.
Especially:
-
RAM? The rules I find say limit is 768MB, but I manage to allocate more than that. What is the actual limit, or are we as programmers responsible to keep it under the 768MB (and risk disqualification if we exceed that)?
-
Number of CPU cores? I see in the compile flags that pthreads are enabled for C/C++ submissions, suggesting a multi-core arcitecture. Also I found a mention that each entry is run on a hyper-threaded core, giving virtually an extra core to help us. Since I don’t notice any speedup, rather a slowdown, by using additional processes or threads - I suspect there is no additional core. Anyone care to clarify?
-
Code optimization? I gather that optimization is disabled (for C/C++) to improve compile times. Are GCC pragmas and attributes that influence code generation fair game? Or do I risk disqualification if I turn them on? (If not, why are the optimization flags not on? Everyone has to enable them anyway…)
Are SIMD intrinsics or inline assembler valid? There was a mention about it is forbidden to use a language inside another…?
Thank you for any clarification you can provide! Even if it is just one of the considerations above.
/T
ps: and how come nobody else has wondered about these things years ago … anything I am missing!?