Skip to content

Instantly share code, notes, and snippets.

@hannibalhuang
Created September 15, 2017 17:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hannibalhuang/b4a2522e8918649953793ca7196136e7 to your computer and use it in GitHub Desktop.
Save hannibalhuang/b4a2522e8918649953793ca7196136e7 to your computer and use it in GitHub Desktop.
cyborg official application commit msg
Cyborg Application For Official Projects
First of all thanks for TC audience for our project update at PTG.
The overview slide presented at the meeting could be found here[0].
**What is Cyborg**
Cyborg is a new project that aims to provide a general management
framework for accelerators[1], such as FPGA, GPU, ARM SoCs, NVMe
SSDs,DPDK/SPDK and so forth, basically any types of dedicated
hardware/software that designed specifically to accelerate the
performance of the general computing infrastructure.
**Motivation**
The motivation behind Cyborg projects orginally came from Telco NFV,
and later on more from Scientific WG on HPC and public cloud providers
who want to provide FPGA/GPU instances. Details of the requirement for
Cyborg could be found in the slide[0]
**Two Important Facts**
- Cyborg is started from scratch within the community, which means there
was no code dump from vendor and we wrote every specs and code implement-
ation from zero in an OpenStack way.
- Every decision in Cyborg project is done through election/voting, even
the project name was voted from team members.
**One More Fun Fact**
* We have the LONGEST team meeting in OpenStack (meeting starts late in
China timezone and often left open since the organizer passed out on desk,
we are working hard to improve on that :) )
**Functionality**
Cyborg's two main jobs are resource discovery and life cycle management,
which means Cyborg leaves the functionality of scheduling entirely to
Nova when the user needs a virtual machine deployment, or Kubernetes/Mesos
/Docker if the user needs container solution running on baremetal.
**Cross Projects Relationship**
As mentioned above, Cyborg interacts with Nova via Placement. Cyborg does
not reinvent any wheels or tries to drop in to replace any current modules.
It heavily relies on working with the current OpenStack structure. Nova's
FPGA/GPU support is very critical for Cyborg to be able to work for VM related
deployments.
Cyborg has constant discussion with the Nova/Placement team and
we will continue to do so in Queens and following cycles to make sure we got
an awesome collaboration.
Cyborg has also very good relationship with the Scientific WG and OPNFV
DPACC project. We gathered inputs/requirements from these groups.
**Scenario/Usage**
To put it very simply, if you have just one type of accelerator, you could just
use what Nova provides for PCI-passthrough functionalities. If you have more
than one types of accelerators, or you have one type of accelerator but you want
fine grained control, then you probably needs Cyborg on the side to help you manage
them, working alongside Nova.
**Community Principle Compliance**
Cyborg project follows the core principle of "Four Opens" within OpenStack
Community:
* Open Source
This goes without saying, all the Cyborg source code could be found at OpenStack
repo[2] or its github mirror[3], including feature codes, documentations[4] and
tests[5]. Apache Lisence 2.0 is applied as usual.
* Open Design
As mentioned above, Cyborg is designed from ground up within the community. We have
weekly team meetings[6] at #openstack-cyborg and public available/searchable meeting
logs[7]. We have organized PTG design sessions for each of the past ones[8][9]. We
have also used [acceleration] or [cyborg] for mailinglist discussion.
* Open Community
Cyborg has a truely diverse team composition with no single vendor dominance[10]. PTL
of Cyborg comes from Huawei and current two core reviewers come from RedHat and Lenovo.
We have also performed election/voting on these positions[11][12].
* Open Development
All of the Cyborg pacthes could be found here[13]. We have a implicit policy of the
core that landed the patch should comes from different company from the ones that
submit the patches. We try to review the patches as thorough as possible and we are
honored to have people from other team help reviewing, for example[14][15].
The Cyborg project team has been doing everything according to the community's tradition
and best practices, and we also believe that by putting Cyborg under official governance,
it will show OpenStack's capability on heterogeneous computing that provides the foundation
for Artificial Intelligence, Machine Learning, HPC, NFV and many other cutting-edge technologies.
0. https://docs.google.com/presentation/d/1RyDDVMBsQndN-Qo_JInnHaj_oCY6zwT_3ky_gk1nJMo/edit?usp=sharing
1. https://wiki.openstack.org/wiki/Cyborg
2. https://review.openstack.org/gitweb?p=openstack/cyborg.git;a=summary
3. https://github.com/openstack/cyborg
4. https://github.com/openstack/cyborg/tree/master/doc/source
5. https://github.com/openstack/cyborg/tree/master/cyborg/tests
6. https://wiki.openstack.org/wiki/Meetings/CyborgTeamMeeting
7. https://wiki.openstack.org/wiki/Cyborg/MeetingLogs
8. https://etherpad.openstack.org/p/cyborg-ptg-pike
9. https://etherpad.openstack.org/p/cyborg-queens-ptg
10. http://stackalytics.com/?project_type=openstack-others&module=cyborg&metric=person-day&release=all
11. https://openstack.nimeyo.com/113991/openstack-cyborg-nominate-rushil-justin-kilpatrick-reviewers
12. https://openstack.nimeyo.com/117806/openstack-dev-cyborg-queens-ptl-candidacy?show=117812
13. https://review.openstack.org/#/q/project:openstack/cyborg
14. https://review.openstack.org/#/c/448228/
15. https://review.openstack.org/#/c/445814/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment