Parla.py
Parla.py copied to clipboard
A Python based programming system for heterogeneous computing
Currently Python modules isolated in VECs can potentially see things that we don't intend by simply using the Python-level `os` module. We should extend our overrides to cover those interfaces....
The following segfaults, but it should work fine: ```Python from threading import Thread from parla.multiload import multiload_contexts if __name__ == '__main__': def f(): with multiload_contexts[1]: import numpy t = Thread(target=f)...
This is somewhat aspirational, but currently there aren't any debug symbols available in VECs. No backtrace library gives meaningful results and gdb doesn't work. This makes debugging a nastier business...
In the QR-factorization example, we spawn multiple threads for calling into VECs. Each VEC then calls into its own NumPy thread pool to do a qr factorization on its block....
Currently VECs interfere with our hardware topology layer because they have to be imported before numpy, but some other parts of the code may need to use numpy. Really all...
Although we can currently load CUDA into a VEC, we can't currently load cupy. The error shows up as an assertion failure in our custom import code. I've done some...
The Python interpreter segfaults at startup when the modified glibc and forarding libraries for VECs are used and the interpreter is run in interactive mode. Running scripts runs fine. It's...
Currently we only override the default module `tp_getattro`. We should do the same thing for `tp_setattro` to enable monkey patching modules inside VECs. As weird as this sounds, it's actually...
With VECs, we should provide a context manager that allows users to do global imports instead of requiring that they use the `mark_module_as_global` interface. Following dependencies like this will hopefully...
The concept of "multiload" reflects an old way of thinking about VECs that we're really not using anymore. The module naming should reflect this.