Difference between revisions of "Ant-Computing"

From Ant-Computing
Jump to: navigation, search
Line 44: Line 44:
 
* build farms / loc/s/dollar & loc/J
 
* build farms / loc/s/dollar & loc/J
  
== Getting started ==
+
= Getting started =
  
 
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
 
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]

Revision as of 16:36, 7 December 2014

Ant-Computing (work in progress)

Overview

Ant-computing is a collaborative project born in 2000 with the aim to improve computer efficiency by optimizing them for certain tasks. Observation was made by then that computers were huge and power-hungry, especially in datacenters where the largest pieces of hardware were useless and some under-utilized parts prone to frequent failures could be mutualized (hard drives, power supplies), allowing the remaining parts to achieve higher densities. Compute nodes would then become more easily interchangeable and failures would not be a problem at all. The principle of packing many low-value computers each dedicated to work hard on a specific task quickly sparkled the analogy with ants, and gave its name to the project ("ant-computing"), to the first server ("formicus" = ant in Latin), and to the Linux-based distribution ("formilux").

Below you'll find links to the various sub-parts of the project.

Contents

The project covers several areas detailed in sections below :

  • software : some care is taken to try to centralize any development effort to limit divergence between users, given that the project makes slow progress
  • hardware : since 2000, a significant amount of hardware was evaluated, sometimes used, and publishing observations and tests results can be useful for other people seeking specific features, as well as for hardware makers to try to improve their designs when that can be done at no cost
  • applications : over the years, various parts of the project have been used in several areas ranging from network equipments to walking robots
  • research : a permanent quest for improvement often leaves a taste of something unachieved. Better document and share the state of findings in various areas than delaying them forever

software

  • formilux : this is the Linux-based distribution which was developped from scratch. Its original purpose was to be able to have an up and running system in a matter of minutes to replace any faulty production server, without spending hours reinstalling. This was made possible using card-sized CDs running a small preinstalled system where many services were pre-configured and ready to start. In order to keep the image small (a few MBs), no packages were used, and dependencies were handled at the file level. This ease of deployment has led soem servers to run on this system all their life, and the build and update process had to be redesigned in order to permit upgrades. The system was made smaller, faster and more secure by running entirely on a read-only file system, and updates were distributed as software images. The arrival of non-x86 architectures moved the focus to cross-compilation and a more flexible build process.
  • flx : this utility was initially used only to sign a file system and detect changes between a file system and its backed up signature. It was convenient for upgrades because the signature would tell what package a binary came from. Now that images are most often read-only, the utility is used during the image build process to build package signatures and to detect config changes at run time.
  • toolchain : this is the suite of tools needed to produce binaries for a different architecture and/or system than yours. Initially the project was built on the developers' systems with their own libc, but after system upgrades that started to cause trouble. A first version of the toolchain was built to make it possible to continue to build packages with the original libc (2.1.3, then 2.2.5) regardless of the local one. The recent version also supports multiple architectures. Currently, i386, x86_64, ARMv5, ARMv7 and MIPS are being used with success.
  • compat : even with a toolchain, there is regularly some breakage to expect when upgrading a developers' workstation. GNU Make certainly is the tool causing the most grief, because in addition to introducing bugs in maintenance versions, it does not even always issue a new version when these regressions are fixed! It's very common to require multiple versions of GNU Make on a system in order to be able to build a full distro. Other components such as bash are known for breaking compatibility as well. And sometimes a package will require a more recent version than the developer's. This "compat" component provides build scripts to bring all expected versions of known unstable tools to a developer's system and bring higher compatibility between hosts.

hardware

  • original goals / initial platforms
    • v1
    • v2
  • hardware that has been evaluated for formilux
  • power supply choices
  • enclosures

applications

  • toolbox
  • server chroot
  • sentineo
  • aloha
  • hexapod
  • build farm

research

  • performance vs efficiency ops/s/W or ops/J
  • power usage reduction => joule per operation
  • power converters
  • hexapod walk
  • build farms / loc/s/dollar & loc/J

Getting started