Automating vGPU Instances with OpenStack- BC-568

Desired discipline(s): Computer science, Mathematical Sciences
Company: AMPD Technologies
Project Length: 4 to 6 months
Preferred start date: As soon as possible.
Language requirement: English
Location(s): Vancouver, BC, Canada
No. of positions: Up to 2
Search across Mitacs’ international networks - check this box if you’d also like to receive profiles of researchers based outside of Canada: 
Yes

About the company: 

AMPD is a Vancouver, BC-based company that specializes in providing high-performance cloud and computing solutions for low-latency applications, including video games and eSports, digital animation and visual effects, and big data collection, analysis and visualization. We are an equal opportunity employer. 

Please describe the project.: 

In high-powered virtual workstation deployments we break down (virtualize) enterprise-grade GPUs. This is currently a manual process.  In the land of OpenStack, we dynamically assign resources (CPU, Memory, Disk) to an instance. 

We would like to automate this process of dividing a GPU and assigning its resulting 'slices' to OpenStack instances dynamically.  
This is likely comprised of:

  • being able to see specifically how instances are currently provisioned (what fraction of which card is assigned)
  • stopping/starting instances, either directly or via Leostream
  • creating instances using the same (available) portion of GPU currently assigned to another instance
  • being able to take a card without any instances assigned to it and redefine how this GPU will be subdivided

Skills we would need any qualified candidate to have:

  • Solving complex problems, applying appropriate technologies and best practices;
  • Maintaining documentation regarding configurations, operations and troubleshooting procedures related to the Cloud platforms;
  • Advanced knowledge of Python, with preference given to candidates of at least some working knowledge of OpenStack.
  • Functional knowledge of SLDC and best practices
  • Functional knowledge of Linux system administration;
  • Functional knowledge of virtualization, storage and networking technology;
  • Ability to communicate effectively with all levels of management and make complex information accessible

Required expertise/skills: 

  • Solving complex problems, applying appropriate technologies and best practices;
  • Maintaining documentation regarding configurations, operations and troubleshooting procedures related to the Cloud platforms;
  • Advanced knowledge of Python, with preference given to candidates of at least some working knowledge of OpenStack.
  • Functional knowledge of SLDC and best practices
  • Functional knowledge of Linux system administration;
  • Functional knowledge of virtualization, storage and networking technology;
  • Ability to communicate effectively with all levels of management and make complex information accessible