Showing posts with label energy. Show all posts
Showing posts with label energy. Show all posts

Sunday, September 30, 2012

High Tech Infrastructure

Weil-McLain Boiler / DHW system
We've replaced our 30 year old oil boiler and hot water system with new 95% efficient natural gas equipment.

Bringing in the gas line from the street was a job, since we had to trench through granite ledge. Fortunately, the gas company was willing to do it on their nickle.

Our friends at Viglione Heating & Cooling produced a nice bit of industrial art in our basement.

Now we just have to count on a rising oil to gas price ratio and the passage of time (8 years?) to start making a profit. Meanwhile, we can feel green (less CO2) and happy not to import oil -- but sad about dirty fracking. Nothing is simple.

And there's an on-board microcomputer to be hacked!

Friday, August 07, 2009

Gimli Perfected

If you read my earlier post, we left this new Gimli system (Intel Core i7 920) on the edge in terms of operating temperatures and cooling. We experimented with ducting and undervolting and got almost to the point of running at an acceptable temperature at full CPU load. Almost, but not quite.

The problem was Intel's default stock chip cooler system, which is marginal if you want to run full out for an extended period. Marginal, at least, if you don't implement their recommended side ducting system.

I wanted to get this problem solved so that I will not have to watch my operating temperatures so closely while running BOINC or other intensive applications. After some research, I ordered the Cooler Master V8, a large heat pipe / radiator / fan system that fills up my computer case very nicely. (Leaving a little room, but not much, for hooking up the wiring afterward. This kind of assembly is not for everyone.)

The following photo gives an idea of the scale and airflow. The flow from the cooler's embedded fan conveniently goes directly to the case's rear exhaust fan.
The bulk of the radiator system really does take up nearly all the volume above the CPU, but fortunately there were no mechanical interferences on my Gigabyte EX58-UD4P motherboard or RAM. The whole thing just fits in the Antec case without trouble. It does weigh almost 900 g (about 2 pounds). While the motherboard mounting seems fairly secure, I am sure that my computer will not fare too well if dropped on a concrete floor.

Results

The quick before and after comparison, with my undervolted i7 (Vcore=1.01250 V):

Temperatures are (Tgpu, Tcore, Tamb, Tchip in deg. C)
8 threads of BOINC code (Proteome Folding Project)

Before: 48, 80, 39, 75
After: 45, 52, 36, 45

The final (chip) number is the best one to focus on. An improvement of 30C is a lot more than I had expected, but I will accept it! This is all with the cooler fan running at 1767 rpm. It will run up to about 1970 rpm, but that noticeably adds to the noise level. The higher speed does not lower the operating temperature by much. We might need to speed up the case's exhaust fan if we care about cooling more than noise. (I don't!)

I should emphasize that "normal" interactive computer operations would be much less than the 100% load we are discussing here, so that even the stock Intel cooler would be fine. On the other hand, if you are spending the money for the i7 system, why wouldn't you want to run it full blast?

According to my (perplexed) intuition, having read much of the Intel literature, it should be fine to run at a chip temperature of 60 C, at least. So there is a lot of headroom to explore overclocking with higher core voltages.

Sunday, August 02, 2009

New Atom System

The latest computer system to come to life here at AA6E is based on the Intel Atom 230 processor. The Atom (out for a year now) uses the latest 45 nm fab technology for a chip that is optimized for low power consumption, but it supports either 32- or 64-bit operating systems and hyperthreading, giving the appearance of a dual-core system to the OS.

I bought the Intel D945GCLF board, which has the mini-ITX format -- it's really small compared to my other ATX and mini-ATX systems.

Intel D945GCLF Motherboard and Atom 230 Processor

The board mounts nicely in a spare Mini-ATX computer case, with all kinds of room to spare. I attached an older 20 GB hard drive and DVD to the legacy IDE port. Eventually, I may repackage the system into a smaller case, with more modern IO devices. But one of the nice features of the motherboard is its support for ancient interfaces -- Serial, Parallel, PS/2 Mouse, keyboard, and IDE, along with newer SATA, USB, etc.

The focus for me was low power consumption and low out-of-pocket cost. The CPU is supposed to require only 4 W and the basic board was $64 at Amazon, including CPU but no RAM. The major glitch building the system was that my numerous old PC power supplies did not supply the ATX12V connector (the 4 pin 12 V CPU power connector) or any SATA-style connectors. So, while I might have been able to wire up some connectors to use with an older supply, I sprang for a new unit. Selecting one was not as easy as it might have been. The power demand is minimal (under 100 W), but if you want "quality" (efficiency, power factor, noise filtering), those features are promoted for larger supplies. I ended up with a 500 W, $35 unit.

Performance

A thorough review of an Atom 230 system is available at Tom's Hardware. I did some testing that is more specific to my environment, comparing it with other systems here.

A favorite benchmark, which works with multi-threaded systems, is to "make" the hamlib system from source. (I am a Hamlib developer.) The make "-j" switch lets you specify how many parallel threads to divide the workload into. This is a useful test for some kinds of programming work, but it is hardly representative of all possible applications.

Pentium III 800 MHz
(This is the one that the new Atom system will replace.)
  • Idle power: 112 W (AC at wall plug)
  • Make (single thread) : 483 sec.

Athlon XP 2000+
  • Make (single): 239 sec

Core i7 920 (See prior article here and here.)
  • Idle power: 100 W
  • Full CPU load: 150 W
  • Make (-j 1): 41.8 sec
  • Make (-j 8): 17.3 sec
  • Make (-j inf.): 16.1 sec

Atom 230
  • Idle power: 40 W
  • Make (-j 1): 276 sec
  • Make (-j 2): 229 sec (showing improvement by hyperthreading)
  • Make (-j inf.): requires excessive virtual memory, never completes

Conclusion

The Atom-based system works very nicely for my application: running all my ham radio operations - digital modes (fldigi), logging (xlog), transceiver control, etc. The system has a responsive "feel" under Ubuntu that is equal to anything I was using before my Core i7 system came along. The low operating power and silent operation are pluses, and the small board size would be handy if I put it into a smaller case. Cheap is good, too.

Update:
BOINC benchmarks, Atom 230 (40 W)
612 floating point MIPS (Whetstone) per CPU
1530 integer MIPS (Dhrystone) per CPU

BOINC benchmarks, i7 920 (150 W)
2450 floating point MIPS (Whetstone) per CPU
5654 integer MIPS (Dhrystone) per CPU

Since the i7 920 has 8 "processors" (4 cores) and the Atom 230 has 2 "processors" (1 core), the i7 is much better in CPU MIPS per Watt.

Saturday, July 04, 2009

Cooling, Undervolting, and Greening Gimli

So here's the best answer so far. I don't want to make an unsightly hole in my computer case's side wall (see prior post), but I need to get air flow under control for best cooling my Core i7 920 chip. The solution is to use some 4-inch plastic air hose with wire reinforcing to direct supply air from one of the two front air inlet fans (lower right on photo) to the CPU cooler fan. This minimizes the "blow back" of hot air from the CPU cooler outlet to the cooler inlet. This solution still works well when the case is buttoned up. We don't have to worry about the acoustic and radio frequency noise that would leak out through any new holes.

The hose is available at hardware stores for clothes dryer connections.

So, the airflow and CPU cooling is about as good as it is going to get without moving to a more exotic chip cooler scheme. The next step toward controlling operating temperature is to minimize CPU power consumption. My philosophy is to keep the specified CPU performance (i.e., clock rate), but to reduce operating voltage to a safe minimum. This is called "undervolting".

(Many computer tinkerers want to get the highest performance possible from their chips, e.g., by "overclocking". This generally requires operating at higher voltage which in turn means more power dissipation, bigger and noisier cooling systems, etc.)

I devised a simple Python program that loads all 8 "processors" (4 cores x 2 hyperthreads/core) for a specific interval and measures the temperature rise. This is a good test of the cooling system and the power level of the CPU (as a function of core Voltage, clock rate, etc.) It is not meant to be a typical application program, just a source of heat. (Actually, it is such a trivial program -- a tight loop -- that it causes more power drain than typical real programs.)

The standard CPU core Voltage (Vcore) is 1.29375 V. Our Gigabyte GA-EX58-UD4P motherboard provides great flexibility in selecting all kinds of CPU parameters, but I am mainly varying Vcore. Running the test program, I observe a final case temperature (Tc) of 65 C and mean junction temperature (Tj) of 75 C. The AC supply power is about 204 W under load, and 98 W at idle.

I tried successively lower Vcore settings. At Vcore = 0.91250 V, the computer would begin the BIOS display at boot, but would fail before it completed. At Vcore = 0.95000 V, it booted partly into Linux, but it failed before getting to the Ubuntu login. At Vcore = 0.97500 V, we had a successful boot. The supply power was 150 W under load, 97 W at idle. Final temperature was Tc = 53 C, Tj = 57 C.

It is not clear how stable the system would be at 0.975 V under all conditions (room temperature, computing loads, etc.), so I raised the voltage a couple of steps to Vc = 1.01250 V. At this voltage, we ended with Tc = 53 C and Tj = 58 C. AC power under load was 155 W; at idle, 97 W.

From Intel's data, it is not clear what the ultimate "safe" operating temperature of the i7 920 chip is. As we said earlier, it comes down to a subjective judgement about how much stress is acceptable. Less is always better from the standpoint of system stability and longevity. Some of Intel's charts suggest that Tc = 68 C is an acceptable maximum. In that case, our operating maximum of 53 C should be fine. (Note that we must allow for ambient temperature changes. Our measurements here are at Tamb ~ 20 C, but our ambient could rise to ~ 30 C on a hot day.)

For now, the engineering is "done", and we can go back to BOINC running all day without fear. We have also trimmed about 25% from our power bill.

Monday, June 29, 2009

Gimli Explorations (Core i7 Thermal)

My earlier posting introduced Gimli, our new Intel Core i7 920 system. Time for some progress reports. My main focus has been operating with a heavy scientific computing load -- running under the BOINC framework for distributed computing on large-scale scientific problems, such as the Search for Extraterrestrial Intelligence (SETI), protein folding, etc.

The system is based on a Gigabyte EX58-UD4P motherboard in an Antec "Solo" case:

The CPU cooler is the stock Intel system. The photo shows the bottom of the cooler with the central copper disk, which after coating with heat sink compound presses down on the top of the CPU. Under the heat sink is a fan that draws air down (up in the photo) from "cool" the case interior, past the fins, and then radially outward to be drawn away by the case's nearby exhaust fan.


Normally, the Antec case is covered on the side by a solid removable panel, which works very well for noise control and appearance. However, Intel's Chassis Air Guide manual suggests a different "solution" for good thermal performance. They propose a duct leading from ambient air external to the case down to the top of the CPU cooler. This will prevent recirculation of warm air within the case that will tend to heat the CPU unnecessarily. So, I did experiments under 3 conditions: (1) cased closed with normal side, (2) side removed, and (3) side removed with temporary duct installed. The photo shows the temporary duct in place, made from two 8.5 x 11 inch sheets of paper and Scotch tape. (I suppose I should have used duct tape...)


The computing load ranged from zero (Ubuntu Linux 9.04 idling) drawing 100 W AC power, to full load (8 parallel threads of SETIathome jobs) drawing about 200 W AC. The LCD display is not included in power measurements, and I am running at stock clock speeds -- no overclocking.

There are 9 temperature values reported by the CPU: one junction temperature for each hyperthread (two per CPU core) and one temperature for the CPU case (below the chip). There is considerable discussion about how to treat these values. For example see the post at Tom's Hardware site. There are calibration questions, and there are questions about what actual CPU temperatures should be permitted. The Core i7 has several self-protection features that will control power dissipation if temperatures are allowed to get "too high". Unfortunately, there is apparently no published maximum temperature spec for the chip. In any case, the maximum we want to tolerate is subjective. Lower temperatures generally mean more operating stability and longer lifetimes.

It's not clear if there is any meaning to any difference between the two temperature readings associated with each physical core -- or even between the different cores, assuming that the Linux scheduler distributes the computing work equally among cores. These junction temperatures typically vary up to +/- 2 C among the group. I will report only the approximate median Tj of the 8 junction readings. I also report the case temperature Tc.

The numbers given are summaries of a number of readings. I don't claim great statistical power -- only a rough comparison of the options. Room temperature ~ 74 F.

Antec side panel on
Sytem Idling
Tj = 43 C; Tc = 41 C
System 75% load (6 jobs)
Tj = 72 C; Tc = 63 C
System 100% load (8 jobs)
Tj = 75 C; Tc = 63 C

Antec side panel off
System 100% load
Tj = 72 C; Tc = 62 C

Antec side panel off; paper duct installed
System 100% load
Tj = 67 C; Tc = 62 C

Moral: Intel's ducting scheme really does make a substantial improvement. A 5 - 8 C temperature reduction is significant, but in the absence of hard temperature specifications, it is hard to say how great a benefit to system stability and lifetime will result.

Another moral is that if you buy a packaged Core i7 system from a mainstream manufacture, you are likely to get an "engineered" thermal system that is better than what a do-it-yourselfer is likely to concoct with generic motherboards and cases. Of course, it's less fun and more expensive to buy complete systems!

The cooling improvement is specific to Intel's standard CPU cooler. There are numerous more exotic chip coolers on the market, which may not require a ducting system.

My options seem to be:
  • Accept up to 75 C junction temperatures when running full loads.
  • Cap operation at 50 - 75% of full load.
  • Cut a hole in the Antec side panel and install a permanent duct.
  • Check out a different CPU cooler.
Note also that the BOINC / SETI CPU load is only one particular application. It is not hard to make programs with more or less power dissipation, but this test does seem to be representative.

Thursday, June 11, 2009

Say hello to Gimli

Gimli is a new home-built system comprising an Intel Core i7 CPU, 6 GB RAM, 1 TB HD, and GeForce 9500 graphics. It runs 64 bit versions of Ubuntu 9.04 and Windows 7. The chip provides 4 CPU cores with hyper-threading, or 8 concurrent threads of execution, more or less.

I am hoping to start to understand CUDA programming and otherwise to see what kinds of DSP we can do. Oh, and maybe load a game or two.

Sunday, November 16, 2008

HAUS Software

The OMS utility monitor project is now called HAUS (Home Automatic Utility System). Going for the big time, here!

The Python software is available now on my "static" site:

http://aa6e.net/software/HAUS/index.html

More information about operating experience and preliminary conclusions for the project will be coming.

Original blog post: http://blog.aa6e.net/2008/10/more-important-than-amateur-radio.html

Sunday, October 12, 2008

More important than Amateur Radio?

Yes, my oil usage, my carbon footprint, and ways to evade the financial meltdown. All these have taken me away from ham radio for the moment.

All these, plus one other. I won a little applications contest being held by a company called Plat'Home. They have a line of tiny Linux servers called the OpenMicroServer (OMS 400). These are headless, diskless Linux platforms, based on the RMI Alchemy au1550 chip -- a MIPS architecture device that runs at 400 MHz. A Compact Flash chip can be installed to serve as a hard drive. I use a 2 GB device. Plat'Home supplies a minimal Linux distribution called SSD/Linux, but you can also install Debian. (I haven't gone to Debian yet, but may do so.)

My application was a "Home Utility Support System" - a combination of hardware and software that would monitor operation of the home heating and hot water systems with an eye toward analyzing operations and reducing heating costs.

A prelimary report is available here as a PDF. The installation is shown in the photo at left. (Click on photos for high res.) Physical I/O is through Ethernet connected to a WiFi bridge that hooks into the household LAN, and through the USB to an inexpensive DLP-IO8-G 8-channel data acquisition and control module from DLP Design.

I built a number of interface devices that monitor the state (on/off) of the oil burner, the hot water circulator, and our three heating zone circulators. (Our hot water is supplied indirectly through a heat exchanger that receives hot water from the furnace "boiler".) The DLP interface also supports DS18B20 digital temperature sensors. I use two of these to monitor outside ambient temperature and hot water outlet (pipe) temperature.


The software is all developed in Python to log data every 30 seconds and to do analysis and data plots once a day. A sample run is shown here, as produced by gnuplot software running on the OMS400. The computer also runs the standard Apache web server to make data available to any authorized user anywhere on the Internet.

The work is still in progress, but I have a preliminary interesting, if depressing, result. The idle cycle of boiler (when no heat or hot water is demanded) is about one burst of several minutes every 3 hours. This just maintains the boiler's water temperature in its operating range. At a nominal 1.65 gallons per minute burn rate and with the current price of heating oil, that amounts to some $3.00 a day every day of the year!

Furnace people tell us never to let the system cool down, because of the thermal/mechanical cycling and because of possible corrosion problems, but paying ~$1,000 per year to idle is excessive. (I do dial down the operating temperature in the summer months, but we can't go too far or the domestic hot water will not come to full temperature.)

So there is some incentive to continue this project, potentially saving money (for ham work, of course), saving the environment, and having a little fun by the way.

Many thanks to Plat'Home for their support.