-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update packaging and installation #483
Conversation
In addition to the syntax for compiling with MPI involving an environment variable, there is now another syntax:
This uses recent features of PEP 517. However it's only cosmetic, since the environment variable is still used internally to communicate with This is also valid for compilation with OpenMP:
|
3177777
to
0d175aa
Compare
Rebased on |
Very nice, could you improve the doc page with these informations? I could not find any modifications related to MPI |
@swhite2401 : right, I'll do that. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok after help is updated
@swhite2401: I'd like to have your feedback on the updated documentation that you can preview here. |
This looks fine to me, at some point we will provide examples but for now we are still working on the multibunch/beamloading devs |
This updated the packaging and installation setup with two main changes:
Upgrade
setuptools
:The main motivation is to ease the compilation of AT with MPI. To allow the modification of the build requirements depending on the context, setuptools now provides in-tree backends:
_custom_build/backend.py
here. The command for compilation with MPI is now:Note both the
[mpi]
option to add mpi4py to the installation requirements, and theMPI=1
environment variable which will add mpi4py to the build requirements and select thempicc
compiler.As a side effect, most of the configuration moves from
setup.cfg
topyproject.toml
. Completely removingsetup.cfg
works but is still considered as beta. So for the time being, we keep a minimalsetup.cfg
.Also,
setuptools >= 62
cannot be installed on python 3.6. Removing support for python 3.6 also removes some complexity inat/__init__.py
.Move to project to the root of the repository:
atintegrators
directory) is now part of the project, so we do not need any more to make copy intopyat/integrator-src
.setup.py
is simpler and only deals with the definition of extensions.machine_data
package for both Matlab and python by having the top-levelmachine_data
also part of the project. This still does not work because of restrictions in the waysetuptools
looks for packages. It looks impossible to have package search at two levels, top-level for./machine_data
andpyat/at
for theat
package. So we still have 2machine_data
repositories.The difference for users is that
pip install
must now be run from the top-level instead of from thepyat
directory. The documentation is updated.