-
Notifications
You must be signed in to change notification settings - Fork 0
Small package for exposing OpenCL resources over OpenStack
License
apatriciu/OpenStackOpenCL
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Author: Alexandru Patriciu e-mail: apatriciu@gmail.com This is a small interface that allows OpenCL access from OpenStack. I tested the programs on a devstack install. The intalation folder for my configuration was $NOVA_DIR = /opt/stack The interface consists of the following parts ComputeNode: - server side python programs reside in $NOVA_DIR/nova/contrib/OpenCLServer - a shared library PyOpenCLInterface.so that exposes OpenCL to python calls. Controller Node - nova compute api-extesion - WSGI extension - reside in $NOVA_DIR/nova/nova/api/openstack/compute/contrib unit tests are in $NOVA_DIR.nova/nova/tests/api/openstack/compute/contrib these are not integrated yet into openstack tests but they are written using pyton unittest module. The user should run the tests to ensure that the openCL interface is up. - internal OpenCL API client - reside in $NOVA_DIR/nova/nova/OpenCL unit tests in $NOVA_DIR/nova/nova/tests/OpenCL these are not integrated yet into openstack tests but they are written using pyton unittest module. The user should run the tests to ensure that the openCL interface is up. - python client python sources are in $NOVA_DIR/novaclient/v1_1/contrib small test programs $NOVA_DIR/novaclient/tests/v1_1/contrib Instalation: Step 1: Build the PyOpenCLInterface.so library; - go to folder ServerSidePythonOpenCLInterface - Set the include and lib folders to match your system in file OpenCLInterfaceSetup.py. - Build the shared library. $python OpenCLInterfaceSetup.py build This should create PyOpenCLInterface.so in a subfolder 'build'. - Copy the shared library PyOpenCLInterface.so into the tests/ subfolder. Goto subfolder tests to run the unit tests for PyOpenCLInterface. $cd tests - Build the PyTestObjects.so shared lib. $python TestObjectsSetup.py build - Copy the shared library PyTestObjects into the tests folder. - Run the unit tests to ensure that the OpenCL is running properly. Step 2: Install the Compute node components - go to folder InstalationScripts - make sure that the target folder in the script InstallServer is properly set $./InstallServer - The server is started using the script StartServer from the target directory - By default the server loads the amqp configuration from /etc/nova/nova.conf. If this doesn't correspond to your settings you have to change the StartServer script to load the proper configuration file. In settings the rabbit options are under the [DEFAULT] section. If in your configuration the rabbit options are under Group [Rabbit] you will have to change how the options are loaded. Step3: Install the controller components - go to folder InstalationScripts - verify if the instalation directories in the script InstallControllerComponents match your configuration. - run the script InstallControllerComponents Copy the python files for the resource extensions and unit tests into the nova directory structure. The rabbit options are loaded from the nova config file. You can hack and manually set them in class OpenCLRPCAPI.__init__(...)). Step 3: Copy the client python files into the novaclient folder. Step 4: Run the server on the compute node python OpenCLServer.py Step 5: Run the opencl unit tests in folders /nova/nova/tests/OpenCL/ /nova/nova/tests/api/openstack/compute/contrib/ Step 4: Add the following environment variables on the client side describing the credentials OS_USERNAME OS_PASSWORD OS_AUTH_URL OS_TENANT_NAME Step 5: Run the samples in TestcomputeOpenCL. KNOWN ISSUES: - the OpenCLServer has to be manually started - the data transfer is curently implemented using amqp. The MemRead and Write operations should be implemented using Swift
About
Small package for exposing OpenCL resources over OpenStack
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published