arm datacenter ecosystem landscape
TRANSCRIPT
Arm Datacenter Ecosystem LandscapeA Centralized Info Hub For All Arm Developers
Zhenyu Zheng Huawei Technology
Hardware
OS、Libraries
Cloud & Cloud Native
Database/Middleware
Applications
Software Stack
… …
Big Data Web AI
…
glibc Zstandard …
…
…
…
…
…
Arm in Datacenters
# on x86 - java 8Math.log(3): 1.0986122886681098StrictMath.log(3): 1.0986122886681096
# on aarch64 - java 8Math.log(3): 1.0986122886681096StrictMath.log(3): 1.0986122886681096
The problem: The Root Cause:
Suggestion:
- Use StrictMath instead of Math if you want to have mixed deployment, or if you want more precise calculation.
Math.log calls default implementation, it provided dynamic
replacement for implementation on different architecture:
- x86 has assembly implementation,the precision is not guaranteed
- Arm64 has precise mathematical calculation,in JDK8 it uses
common implementation,in JDK11 uses assembly with precision
guaranteed.
Not the same
Happens in Apache Hive, Spark, Flink
Hardware Accelerations – Newer version of JDK
Arm in Datacenters
OS
Hardware
Co
mp
iler &
T
oo
lchain
GCC, OpenJDK, CMake, Clang, GDB, Maven, Ant, Gradle, APR,
Scala, Python, Golang, Lua, Perl, R, Erlang, TypeScript, PHP,
React, Next.js, npm, JavaScript …
Lib
rarie
sGlibc, Hyperscan, AVXtoNeon, Gzip, ZSTD,
Snappy, KAE-Zip, KAE-openSSL, X265, DPDK, ISA-L,
Bcache, OpenBLAS, Lapack,
Scikit-Learn, libmpc, libxml2, Boost …
Mid
dle
ware
Netty, Protobuf, libevent, ACE, Junit, DNSmasq, DHCP, FastJSON, grpc-java, jemalloc, ActiveMQ, RabbitMQ, Ansible, Swagger,
Tornado, Vue, curl, Guacamole, log4cpp, Otter, PaceMaker, pigz, Quartz, Sphinx, Telegraf, ZeroMQ, ZFS, Shiny, Rsyslog, psutil, gi,
Gerrit …
Clo
ud
In
fra
KVM, Qemu, Libvirt, Docker, Kubernetes, OpenStack, Open vSwitch, Stratovirt,
Calio, Flannel, CoreDNS, Containerd, Prometheus, Istio, Envoy, Kata, Ovirt …
Sto
rag
e
Ceph, GlusterFS, Lustre, MinIO,
BeeGFS, MooseFS, LizardFS,
Sheepdog, DRBD …
DB MySQL, MariaDB, PostgreSQL, MongoDB, openGauss, Greenplum, RocksDB, InfluxDB, TiDB,ClickHouse, etcd, SQLite, LevelDB,
Redis …
Big
Data
Hadoop, Spark, Hive, Hbase, Flink, Tez,
ElasticSearch, openLooKeng, solr, Hue,
Kafka, Storm, Impala, Kudo, Zookeeper,
Ambari, Ranger, Parquet, LogStash …
AI
TensorFlow
PyTorch
MindSpore
Caffe …
Web
Apache, Tomcat, JBOSS,
HAProxy, Memcached,
Nginx, .NET, Jetty, LVS,
Spring, Django, uWSGI …
Coding &Local Tests Git
PushBuilding &Testing
Release
Dev workflow in Upstream
x86 x86 x86
x86
Arm
Building &Testing
Release
ArmArm
+ Add Arm to the workflow
Challenges for Arm Ecosystem - Users
Use
rs
Whether the software I’m interested supports Arm Arch?
Which version of this software supports Arm?
How does this software perform on Arm?
Are there any guides and/or best practice about using this software on Arm?
What is blocking the software running on Arm? Is there anyone working on solving them?
Challenges for Arm Ecosystem - Contributors
Co
ntrib
uto
rs
Are there any other contributors interested in making this software support Arm Arch?
Have the work of Arm support previously proposed to the upstream community?
If previously proposed, what is the attitude of the community?
Are there any current or previous work performed? Who is working on it?
Are there any known issues blocking the work?
What are the plan for potential partners in the future? Are there any chance to co-operate?
Challenges for Arm Ecosystem - Community
Op
en
So
urc
e
Co
mm
un
ities
What is the current status about using Arm ARCH in Datacenter?
How many software in this area already supports Arm ARCH?
How many users are behind this request? (Benefit vs. Cost)
How many works need to be done to support Arm? Who will work on them?
Who will continuously maintain the Arm branch of the software?
Where could the community get Arm resources for dev and CI ?
Challenges for Arm Ecosystem – Example
2020.01.06
Arm CIConnected
2020.07.14
First Arm Release
2019.06.11 Initial Discussion with Apache Hadoop Community about supporting Arm
2019.08.22 Detailed Discussion at Hadoop Community Meetup
2019.11.13 Discuss again at Hadoop Online Community Sync
2020.01.06 Hadoop Arm CI Deployed in Apache Hadoop Upstream
2020.07.14 Apache Hadoop released first version with Arm support – 3.3.0
Initial Proposal
2019.06.11 2019.11.13
CI implementationDiscussion
2019.08.22
Introduce ArmDatacenter Status
Landscape and Communication Hub
Open Source Projects
Users Contributors Upstream Maintainers
Landscape + Communication Hub
…