Jason Rogers Wins Silver Medal in Beijing

Jason Rogers, a U.S. saber fencer in the 2008 Beijing Olympics won a silver medal Sunday. He is actually a cousin of mine, although I’ve never met him.

From the Chicago Tribune,

BEIJING - In a match pitting the “Bleus” against the “Red, White and Blue,” France beat the United States Sunday in an improbable gold medal match in men’s team saber.

Improbable not because the French, considered the favorites coming into these Games, took home the gold in their second straight Olympics by defeating the Americans 45-37.

Improbable because the United States men’s saber team was not expected to make a blip in Beijing but found its way to the gold medal match Sunday evening after a stunning afternoon of upset wins. The seventh-seeded Americans — led by Keeth Smart, Tim Morehouse, James Williams and Jason Rogers, who did not compete in the final — come home with the silver, their highest ever standing. Their only previous men’s team saber medal was bronze at the 1948 London Games.

http://www.chicagotribune.com/sports/olympics/cs-080817-mens-team-saber-united-states,0,3602565.story

Continue reading

2008 Summer California Wildfires

Recently, I returned from fighting wildfires in Northern California. I have been in the Mt. Shasta area and Chester, CA for the past three weeks (Peterson Complex, Cub Fire, and Onion Fire). Temperatures were hot, often above 100 degrees and the relative humidity in some areas was in the low teens.

On my bus ride back up to Oregon as we were driving through Redding, the hills were releasing smoke on the west side of I-5. I found an article about this, Blaze rushes through hills west of Redding (http://www.redding.com/news/2008/jul/12/no-headline—a1fires12/)

As the burgeoning fire swept through the hills west of Redding, Highway 299 was shut down and mandatory evacuations were issued in the French Gulch area. An advisory evacuation order was announced for some residents in the historic town of Shasta.

From an article from the International Herald Tribune (http://www.iht.com/articles/2008/07/13/america/12wildfire.php),

Hundreds of wildfires have blackened nearly 1,200 square miles, or 3,100 square kilometers, and destroyed about 100 homes across California since a rare lightning storm ignited most of them three weeks ago.

Officials say more fires have been burning at one time this year than during any other period in recorded California history.

“This is truly a national disaster. The magnitude is incredible,” said Daniel Berlant, a state fire agency spokesman.

Jason Kirchner, a spokesman for U.S. Forest Service, said firefighters had spent hundreds of millions of dollars fighting the blazes.

About 20,000 firefighters from 41 states and Puerto Rico were fighting more than 320 active fires around the state, and more were on the way from Mexico, Canada, Australia and New Zealand. Governor Arnold Schwarzenegger has ordered 2,400 members of the National Guard to join the fire crews on the ground, the first time for the first time in more than 30 years.

Continue reading

Greg Kroah-Hartmann Visits my Operating Systems II Class

Greg Kroah-Hartmann, a leader in the linux community, visited my CS411 class last Friday, May 23rd.

He works for Novell in the SUSE Labs division, based out of Nurumberg, Germany. He said only one person works there in Germany while everyone else works around the world.

He explained how the hierarchy of the people who develop linux works. It’s very efficient because at some point a file will have been touched by at least two people.

Linus Torvalds and Andrew Morton used to pull the subsystem trees together by themselves, but now they use something better called Linux NEXT.

I asked him what kind of source control program was his favorite to which he replied, “git”.

There are some stagnated areas in the kernel development like PCMCIA and serial ports, but then again some older ports have been really active.

One thing I liked to hear was that he said, “The most linux kernel developers in the world are in Portland.” so I’m not too far away from some good innovators.

Greg on wikipedia

Continue reading

Linux 2.6.23.17 Shortest Seek Time First(SSTF) I/O Scheduler

Another CS411 project finished! This time around we implemented an I/O scheduler for Linux. What is an I/O scheduler you may ask? Well, it simply manages requests usually from a block device (e.g. hard disk, media drive) and not a character device. An I/O scheduler needs to be fair and give a share of the disk bandwidth to each running process.

With SSTF, requests are serviced based on their proximity to the disk head, with requests closest to the disk head being serviced first. Requests are kept in a queue. The SSTF algorithm looks at the current disk head position and iterates through the queue looking for the request that is the shortest physical distance away. That request is the one that gets serviced next, and the process continues.

Is this the best I/O scheduling algorithm? No. I’m afraid not. If there is a request that was physically very far from the disk head it would possibly never get serviced. This dilemma is known as “starvation”.

More efficient algorithms use an “elevator” approach wheras the disk head moves along the disk surface picking up requests (people on different floors) and when it gets to the end of the disk (top floor) it can turn around and pick up more people (more requests).

We used the built-in linked list structure provided by linux. Many helpful functions were found in list.h.

Here is a good article that discusses changes in the 2.6 kernel from linuxjournal.com.

Continue reading

Linux SLOB (Simple List of Blocks) Memory Allocator

A recent project I completed in my Operating Systems II class was to improve the existing linux SLOB memory allocator from first-fit to best-fit. The kernel currently gives 3 choices of allocators (SLAB, SLUB, and SLOB). The SLOB (Simple List Of Blocks) allocator, is designed to be a small and efficient allocation framework for use in small systems such as embedded systems. Unfortunately, a major limitation of the SLOB allocator is that it suffers greatly from internal fragmentation.

There is a recent reply from Linus Torvalds himself on a Linux mailing list where he suggested the use of a best-fit algorithm.

The first-fit uses the first available space for memory. The best-fit algorithm my team implemented works by looping through the list of free pages until the first page found with enough free space. Then, we sort the list from smallest to largest free space. In this way the first space encountered by the algorithm will be the smallest space which fits the required amount available. Essentially, we are modifying the input to the algorithm to ensure better fragmentation rates and utilizing space on each page better.

There wasn’t a lot lines of code to add. It was a fairly simple hack, but I’m sure it could be even more efficient.
We compared the fragmentation from both algorithms and there was a definite difference.

The version of Linux we used was 2.6.23.17

Continue reading

VirTools - 3D Object Mouse Detection

My video card is having problems drawing the spheres, but you can see the objects I used (Mouse Waiter, 2D Picking, Parameter Selector, etc.).

Continue reading

VirTools Work

I will be showcasing progress of the work I’ve done using the Virtools Development Platform. I had a class that taught this tool at OSU called NMC 487 in Spring 2007.

“The Virtools development platform has been widely used in the video game market (prototyping and rapid development), as well as for other highly interactive 3D experiences, in web marketing, virtual product maintenance.”

Continue reading

Database Management Systems: Final Presentation

I presented my final project for CS440 last Wednesday. Here are the slides my group used.

Sky Express (pdf)

Final Write-Up

Continue reading

Implementing Left Outer Join for Sort-Merge Join

I had a homework question that asked me to implement left outer join for the Sort-Merge Join algorithm for external sorting.

To compute a left outer join, we use the left relation as the outer loop or single-loop because every tuple in the left relation must appear in the result. If there are matching tuples in the other relation, the joined tuples are produced and saved in the result. However, if no matching tuple is found, the tuple is still included in the result but is padded with NULL values.

sort the tuples in R on attribute A;   ## assume R has n tuples (records)

sort the tuples in S on attribute B;    ## assume S has m tuples (records)

set i <- 1, j <- 1;

while (i <= n) and (j <= m)

## Use the left relation as the outer loop or single-loop because every tuple in the left relation must appear in the result.

do { if R(i)[A] > S(j)[B]  ##…Use the left outer join, because we don’t care about the right side.

                then set j <- j + 1

        elseif R(i)[A] < S(j)[B]

                then set i <- i + 1

else   {  ## If there are matching tuples in the other relation, the joined tuples are produced and     

             ##  saved in the result.

       ## R(i)[A] = S(j)[B], so we output a matched tuple

                       output the combined tuple <R(i), S(j)> to T;

               

                       ## output other tuples that match R(i), if any;

                       set l <- j + 1;

                       while (l <= m) and (R(i)[A] = S(l)[B])

                       do {  output the combined tuple <R(k), S(j)> to T;

                                 set k <- k + 1;

       }

       set i <- k, j <- l

                       ## for every tuple tr from R that does not match any tuple in S

                       output the combined tuplpe <R(i), S(j)> to T PADDED WITH NULLS;

       }

}

 

 

Continue reading

Database Query Tree Optimization

In a database management system it is essential that a query be optimized as much as possible to eliminate redundant data that could slow down the system. Query Optimization is used to eliminate expensive paths of execution for a query graph (or tree); e.g, find the lowest cost.

Example of Transforming a Query:
Consider the query Q that states “Find the last
names of employees born after 1957 who work
on a project named ‘Aquarius’.”

In SQL, this query can be specified as:
SELECT LNAME
FROM EMPLOYEE, WORKS_ON, PROJECT
WHERE PNAME=‘Aquarius’ AND ESSN=SSN
AND PNUMBER=PNO
AND BDATE > ‘1957-12-31’;

One way the tree can be shown:

You need to use certain heuristics to step through the tree and optimize.

General Summary of the algorithm to achieve this:

Summary of Heuristics for Algebraic Optimization:
- The main heuristic is to apply first the operations that reduce the
size of intermediate results.
- Perform select operations as early as possible to reduce the
number of tuples and perform project operations as early as
possible to reduce the number of attributes. (This is done by
moving select and project operations as far down the tree as
possible.)
- The select and join operations that are most restrictive should be
executed before other similar operations. (This is done by
reordering the leaf nodes of the tree among themselves and
adjusting the rest of the tree appropriately.)

Continue reading

prev posts