czr114
November 18th, 2010, 02:56 AM
Work with me here, because this idea is a bit out there.
Many of us are familiar with Gentoo Linux (http://en.wikipedia.org/wiki/Gentoo_Linux). For those who aren't, the basic concept behind Gentoo is that it is a distro whose repositories are filled with source, which is dynamically compiled by the user's machine.
This can provide a substantial boost to performance, simply by invoking the compiler to take advantage of processor-specific optimizations.
The problem with Gentoo is that it's a royal pain to install and maintain, among other things. All in all, I'd still rather run a stock Ubuntu than an optimized Gentoo.
In a perfect world, Canonical would have Launchpad set up with unlimited CPU and disk space, and could afford to build a branch for each major CPU architecture. Maybe one day this will happen, but until then, there is an opportunity to build a highly-optimized system on the client machines.
I'm trying to collect some thoughts on how the source PPAs might be used to accomplish this goal. I'm not that familiar with package management in Ubuntu, which is why I'm taking this opportunity to think out loud.
It might be possible to override apt, by abstracting the software sources, and running a source fetch and build prior to package installation, with the freshly built binary being passed to apt from local storage.
It might also be possible to script the fetching and compilation of all packages as part of the standard Ubuntu installation, replacing them and the md5sums on the ISO prior to installation.
I do know that Launchpad is autobuilding the binaries we use, so adding in an autobuild targeted to the client machine, on the client machine, would need only make use of that code, albeit in a local context.
Can anyone with more knowledge of package management enlighten me as to whether this is even remotely within the realm of possibility, or whether it's so far out there as to be a complete and total mess?
Being able to code up such a setup would be a benefit to everyone, from the desktop user who wants more from his hardware, to the netbook user who needs the efficiency of properly-built packages to prolong battery life, to the user on a budget who can't afford new hardware, or to the educational institution which needs to get the best of a limited budget.
With 2% of the world's electricity consumption being used for computing, global use of better compiler optimization could make for a substantial cut, particularly among Ubuntu server farms, or in the ever-expanding cloud. Of course, for this to offer the best improvement, it would have to be done centrally at Launchpad, although end-users could also see a benefit from taking the hit at installation time to ensure the highest quality binaries are used in everyday operation.
Fetching source or optimized binaries through the PPAs might also be able to bring update bandwidth requirements down.
Am I even within the ballpark on this one?
Many of us are familiar with Gentoo Linux (http://en.wikipedia.org/wiki/Gentoo_Linux). For those who aren't, the basic concept behind Gentoo is that it is a distro whose repositories are filled with source, which is dynamically compiled by the user's machine.
This can provide a substantial boost to performance, simply by invoking the compiler to take advantage of processor-specific optimizations.
The problem with Gentoo is that it's a royal pain to install and maintain, among other things. All in all, I'd still rather run a stock Ubuntu than an optimized Gentoo.
In a perfect world, Canonical would have Launchpad set up with unlimited CPU and disk space, and could afford to build a branch for each major CPU architecture. Maybe one day this will happen, but until then, there is an opportunity to build a highly-optimized system on the client machines.
I'm trying to collect some thoughts on how the source PPAs might be used to accomplish this goal. I'm not that familiar with package management in Ubuntu, which is why I'm taking this opportunity to think out loud.
It might be possible to override apt, by abstracting the software sources, and running a source fetch and build prior to package installation, with the freshly built binary being passed to apt from local storage.
It might also be possible to script the fetching and compilation of all packages as part of the standard Ubuntu installation, replacing them and the md5sums on the ISO prior to installation.
I do know that Launchpad is autobuilding the binaries we use, so adding in an autobuild targeted to the client machine, on the client machine, would need only make use of that code, albeit in a local context.
Can anyone with more knowledge of package management enlighten me as to whether this is even remotely within the realm of possibility, or whether it's so far out there as to be a complete and total mess?
Being able to code up such a setup would be a benefit to everyone, from the desktop user who wants more from his hardware, to the netbook user who needs the efficiency of properly-built packages to prolong battery life, to the user on a budget who can't afford new hardware, or to the educational institution which needs to get the best of a limited budget.
With 2% of the world's electricity consumption being used for computing, global use of better compiler optimization could make for a substantial cut, particularly among Ubuntu server farms, or in the ever-expanding cloud. Of course, for this to offer the best improvement, it would have to be done centrally at Launchpad, although end-users could also see a benefit from taking the hit at installation time to ensure the highest quality binaries are used in everyday operation.
Fetching source or optimized binaries through the PPAs might also be able to bring update bandwidth requirements down.
Am I even within the ballpark on this one?