Difference between revisions of "HeterogeneousTileraSupport"
Line 98: | Line 98: | ||
* TILE''Pro''64 processor: 64 (8x8) cores | * TILE''Pro''64 processor: 64 (8x8) cores | ||
* 16 GB RAM (16384 MB) | * 16 GB RAM (16384 MB) | ||
− | * 1 TB storage | + | * 1 TB storage of instance storage |
(Only one Tilera instance type for now. When KVM support appears, we will add additional types to support partitioning into smaller instances) | (Only one Tilera instance type for now. When KVM support appears, we will add additional types to support partitioning into smaller instances) |
Revision as of 15:26, 11 April 2011
- Launchpad Entry: NovaSpec:heterogeneous-tilera-architecture-support
- Created: Brian Schott
- Contributors: USC Information Sciences Institute
Summary
This blueprint proposes to add support for the Tilera tiled-processor machines as an alternative machine type in OpenStack. This blueprint is dependent on the schema changes described in the HeterogeneousInstanceTypes blueprint and the scheduler in HeterogeneousArchitectureScheduler.
The target release for this is Diablo, however the USC-ISI team intends to have a stable test branch and deployment at Cactus release.
The USC-ISI team has a functional prototype here:
- https://code.launchpad.net/~usc-isi/nova/hpc-trunk
- https://code.launchpad.net/~usc-isi/nova/hpc-testing
This blueprint is related to the HeterogeneousInstanceTypes blueprint here:
We are also drafting blueprints for other machine types:
- http://wiki.openstack.org/HeterogeneousGpuAcceleratorSupport
- http://wiki.openstack.org/HeterogeneousSgiUltraVioletSupport
An etherpad for discussion of this blueprint is available at http://etherpad.openstack.org/heterogeneoustilerasupport
Release Note
Nova has been extended to allow support for the Tilera TILEmpower Platform (TILEPro64 Processor).
Rationale
See HeterogeneousInstanceTypes.
User stories
Only tp64.8x8 instance type is chosen with 16GB of memory and 64 cores.
euca-run-instances -t tp64.8x8 -k jackie -keypair emi-12345678
Assumptions
This blueprint is dependent on tp64.8x8 being a selectable instance type and that the scheduler knows this instance must get routed to a TILEmpower board. See HeterogeneousArchitectureScheduler.
Design
We propose to add cpu_arch, cpu_info, xpu_arch, xpu_info, xpus, net_arch, net_info, and net_mbps as attributes to instance_types, instances, and compute_nodes tables. See HeterogeneousInsanceTypes. The tilera machine is unique in that it has a NxN mesh of processor cores. Currently there is no support for KVM or XEN virtualization, so we are doing a bare metal approach.
Schema Changes
See HeterogeneousInsanceTypes.
We're proposing the following default values added to the instance_types table.
't64.8x8': dict(memory_mb=16384, vcpus=1, local_gb=500, flavorid=301, cpu_arch="tile64", cpu_info='{"geometry":"8x8"}'), 'tp64.8x8': dict(memory_mb=16384, vcpus=1, local_gb=500, flavorid=302, cpu_arch="tilepro64", cpu_info='{"geometry":"8x8"}'), 'tgx.4x4': dict(memory_mb=16384, vcpus=1, local_gb=500, flavorid=303, cpu_arch="tile-gx16", cpu_info='{"geometry":"4x4"}'), 'tgx.6x6': dict(memory_mb=16384, vcpus=1, local_gb=500, flavorid=304, cpu_arch="tile-gx36", cpu_info='{"geometry":"6x6"}'), 'tgx.8x8': dict(memory_mb=16384, vcpus=1, local_gb=500, flavorid=305, cpu_arch="tile-gx64", cpu_info='{"geometry":"8x8"}'), 'tgx.10x10': dict(memory_mb=16384, vcpus=1, local_gb=500, flavorid=306, cpu_arch="tile-gx100", cpu_info='{"geometry":"10x10"}') }
Implementation
The USC-ISI team has a functional prototype: https://code.launchpad.net/~usc-isi/nova/hpc-trunk
UI Changes
The following will be available as new default instance types.
Tilera TILEPro64
- API name: tp64.8x8
- TILEPro64 processor: 64 (8x8) cores
- 16 GB RAM (16384 MB)
- 1 TB storage of instance storage
(Only one Tilera instance type for now. When KVM support appears, we will add additional types to support partitioning into smaller instances)
Code Changes
- db/sqlalchemy/migrate_repo/versions/013_add_architecture_to_instance_types.py
- add default instance types for tilera
Migration
Very little needs to change in terms of the way deployments will use this if we set sane defaults like "x86_64" as assumed today.
Test/Demo Plan
This need not be added or completed until the specification is nearing beta.
Unresolved issues
One of the challenges we have is that the flavorid field in the instance_types table isn't auto-increment. We've selected high numbers to avoid collisions, but the community should discuss how flavorid behaves and the best approach for adding future new instance types.
BoF agenda and discussion
Use this section to take notes during the BoF; if you keep it in the approved spec, use it for summarising what was discussed and note any options that were rejected.