Monday, January 31, 2005

Entertainment

This weekend my advisor gave us his "old" television. "Old" in quotes, because that TV is a lot nicer and newer than anything we had before. It's also really huge, and too big to fit in our TV cabinet. So we set it on top, which isn't an optimal position for it. For a nearly six-footer such as myself, it's at about eye level when I'm standing up. On the other hand, it encourages me to have good posture while sitting on the couch. And from the couch, it's kind of like sitting towards the front of a movie theater.

This television is really deluxe, though. It has stereo sound, lots of inputs on the back (so now we can attach both our DVD player and Jeff's PS2 directly to the television), and that picture-in-a-picture feature, although I haven't figured out how to make it show any picture different from the main picture.

The first thing I watched on it was the end of the Kentucky basketball game. My team pulled off a squeaker, winning by one point, thanks to a basket missed by their opponents at the end of the game.

And I have nearly finished applying for jobs, for now. I'm about to get my advisor's secretary to overnight the final application materials for NIST, and I've finished writing the letter for the Lawrence Berkeley Alvarez fellowship; I just need to send it before tomorrow. Also on Friday I finally pried from my hands the Oak Ridge application and mailed it in.

Friday, January 28, 2005

I Am Popular

... with two out of four siblings in one particular family.

There is a family of four siblings, ages 8, 10, 12, and 15. For Christmas, their parents gave them one month of karate lessons. The 8-, 10-, and 12-year-olds take children's karate, and the oldest does the adult class.

The first night that they came to class, the 8-year-old had a really tough time because she couldn't pick it up as fast as her two older siblings. At the end, I gave her a little pep talk, telling her that when I first started I thought it was really hard too, and I never thought I would get any of it, but now, here I am, teaching karate. I encouraged her to keep trying and not to give up.

The next class, she brought me a painting that she had done, as a thank you. I was very touched, and resolved to hang it on my fridge at home.

Then last night, the second-youngest daughter brought me a thank you card that she had made. I was touched by that, too. She drew a picture of somebody doing karate on the front of it, and she wrote "Ms. Rebecca Sensei" (haha!). Then inside she wrote that she was grateful for the karate lessons, and that if their parents hadn't decided otherwise, this would have been their last class, but luckily the parents decided to sign them up for another month of karate.

I'm really glad that their parents did decide to sign them up for another month. While the class is relatively inexpensive, only $25 per month, with four kids that adds up to $100, which is a considerable sum. But the kids really love it, and I think it is well worth the money. Plus I really enjoy those kids, because they are hard-working and motivated.

I think that the 12-year-old is going to switch to the adult class, a move that I recommended to his mother. He is a lot more mature than all the other kids in the chidren's class, and he picks things up a lot faster than they do. Also, he is almost as tall as I am, and a good head taller than the next tallest kid, so I think he really belongs in the adult class. I recommended that the 10-year-old move up to the adult class too, but I think for now she's going to stay in the children's class. It's going to slow her progress somewhat, but I guess she is young enough that the mother didn't want her staying up so late for the adult class, which ends at 9:15 p.m.

Thursday, January 27, 2005

A Day in the Life of a Numerical Analyst

I imagine that to most people, my work seems terribly dull. To me, the overall picture is very interesting, but the day-to-day stuff is definitely dull.

For example, I devised this exciting new method of optimization. Does it work? That's the big question.

Before you can answer the big question, however, a barrage of little questions must be answered.

You see, before you can answer that question, you have to write a computer program that will perform the optimization method. You have to develop the fine details that you might have glossed over when you first came up with the idea. And no matter how smart you are, no matter how carefully you plan, the program will always have some sort of bug in it that you have to find. The easy ones to find are the places where you forgot to put in a semicolon at the end of the line, or forgot to initialize a variable, or the like. The hard ones to find are where you actually made a mistake in your logic, or forgot how computers do integer arithmetic (HINT: 5/2 = 2, but 5./2 = 2.5), or accidentally didn't allocate enough memory and your program writes over memory it shouldn't have access to.

These things can take weeks, or sometimes months, to track down, especially if you use a parallel machine like I do. Then it is staggeringly difficult to find what went wrong.

Oh yes, there are debuggers out there, commercial programs that help you find your errors, but I have found that careful insertion of print statements works just as well, if not better, than any debugger. And as for finding errors in parallel programs, I have devised a method of having each processor write out a file containing detailed debugging information.

Right now I am working on a generalization of the magnetotelluric geoprospecting problem from two to three dimensions. There is a bug somewhere in there, but I haven't been able to catch it yet. (Actually, it seems likely that there are multiple bugs, because in my experience it is rare that only one thing is wrong with a program of that size.) I have been working on this on and off since December, and I am still unsure of how it will work. I am past the stage of having easy errors like the semicolon, and now I'm looking for an error in my logic or memory allocations.

As for that optimization method, I started writing the program in the spring, and worked on it for at least four months until what I believed to be the final bug was found. I can say that it certainly appears to work correctly. But again, you never really know if the program does what you want it to do; you can only say with a high degree of probability that it seems to work.

Wednesday, January 26, 2005

Three applications completed!

I have spent the past week applying for various jobs. In particular, I was working on the application for the NIST fellowship, and finishing up my application for Oak Ridge National Lab.

This afternoon I clicked the button and turned in my on-line application for the NIST fellowship. All I have to do is send them copies of my transcripts and make sure my letters of recommendation arrive on time. Then I just sit back and wait for them to review it.

The Oak Ridge application is also finished. I haven't yet sealed the envelope and sent it off because I need to look through it a couple more times to make sure that I really have everything I need in there. That application was a lot of work because I had to type all sorts of information into very tiny rectangles on their form. I have finished it now, however, and I've alerted my contacts at Oak Ridge that I'm sending it in.

And on January 14, I turned in an application for the Wilkinson Fellowship at Argonne National Lab. I would be terribly surprised if I got that fellowship, if for no other reason than the sheer numbers of outstanding applicants it attracts, but I figured it wouldn't hurt to try.

I think I have a decent chance of getting the NIST fellowship, and also I think I have a very good chance of getting a job at Oak Ridge. The Wilkinson Fellowship is a long shot. But hey, less probable things have happened!

Tuesday, January 25, 2005

Adventures in Benchmarking

Last night I slept for nearly twelve hours, so that helped me to shake whatever Jeff was trying to give to me. For now, anyhow, I think I am feeling pretty healthy.

It was good to finish up that fellowship application and now be able to concentrate on my research. Right now I'm doing a couple of particularly boring things, the most boring of which is performance evaluation.

You see, I wrote a program that I am hoping is scalable, meaning that I hope that if you use twice as many processors on a parallel computer to do the same amount of work, it should take half the time. And not only that, but this relationship should apply across many different numbers of processors, meaning that the time it takes for 256 processors to do the work should be one-eighth of the time it takes for 32 processors, because 32/256 is 1/8. Generally you test the performance of a program using powers of two for the numbers of processors, plus a few intermediate values. So for my program, I have run it with 16, 24, 32, 48, 64, 96, 128, and 256 processors. Doing these performance runs is called benchmarking your code.

The problem is that you have to do at least three runs for each number of processors, to make sure that you consistently get the same timings. And some runs take over 48 hours to complete, so as you can imagine, this is a time-consuming process.

I finished my first runs on the NCSA supercomputer just last week. It took about a month to complete them all, because of the long wait time on that machine. What happens is that you put your job into a queue, and the scheduler program on the computer decides which jobs should be run in which order. The problem of queue packing is very hard, and essentialy unsolvable, so the scheduler uses heuristics (strategies) to make these decisions. The heuristics on the particular machine I have been using are unfavorable to people like me who run relatively long (in time) jobs on relatively small numbers of processors. I got all my 256-processor jobs done before even one 16-processor job had completed.

Now I am running jobs on the new Apple cluster that my advisor was instrumental in bringing to campus. He went around and got a lot of donations from different departments and divisions in the University to pay for a cluster computer made out of Apple G5's. So since this is his baby, he wants me to run my stuff on it too, in addition to the NCSA supercomputer upon which we received an allocation. I am running the jobs on that computer too, although it is somewhat unstable and sometimes aborts my jobs for no reason at all.

The results on the NCSA supercomputer show that my algorithm is scalable to 512 processors. You can see this if you look at a graph of the run time vs. number of processors, on a log-log scale (looking at essentially the order of magnitude of each number). If the graph is basically a straight line sloping downward, that means your program is scalable. My graph was a straight line sloping downward, so my program is scalable.

I hope my description of benchmarking made sense. Any questions?

Monday, January 24, 2005

Adventures in Multivariate Calculus

My large fan base (ok my sister) has alerted me to the fact that despite its title, this blog has little to do with math. So, as a treat to my readers, I shall now incorporate some math into this blog. Or rather, I shall complain about the lack of mathematical support in the general word processor.

Today I was filling out an application for a fellowship at NIST (National Institute of Standards and Technology, with sites in Gaithersburg, MD and Boulder, CO). Aside from the evil process by which one applies for this fellowship, it seems like a totally cool thing and I would be pretty excited to work there. You have to find a person at NIST who would be willing to sponsor your application, and would theoretically be the person you would work with at NIST. I was hunting through the list of sponsors when I came across this guy who is my twin, in research interests at least. I looked at his web page and his picture on the page gave me the impression that he was a terribly nice guy. So I got up the courage and e-mailed him about being my sponsor. He replied within a couple of hours, happy that I had asked, and even went so far as to send me a research proposal that I needed to fix up and turn in, and to call me on Friday afternoon to tell me all about the process.

Basically we just have to turn in a short proposal that sounds plausible and that appeals to reviewers. He had an idea of applying the optimization method upon which my thesis is based to optimal contaminant sensor location problems. The idea is trying to figure out where inside a building to put sensors so that they will detect a chemical or biological attack. (Anything having to do with stopping the terrorists is an easy sell these days.) So we worked on the proposal, which included a couple of equations, in particular, the Navier-Stokes equation (convection-diffusion). Then I discovered that the proposal had to be submitted in either Word or rich-text form. We had been working in LaTeX, and any sensible call for proposals would have included at least a pdf option for those of us who actually use equations. But these people weren't being sensible.

I don't actually have Word on my computer; I only have AppleWorks and OpenOffice, and I couldn't figure out how to get either of them to translate my equations with nablas (that's upside-down capital deltas for those of you playing along at home without multivariate calculus experience) into Word or rich-text. So eventually I gave up, realizing that I could just call those div and grad as appropriate. But it took me a while to translate into words what the nabla operator was actually doing. It wasn't an equation that I use all the time.

Anyhow, that was my adventure in multivariate calculus for the day. Thank goodness it's over now. I also had to figure out how to send the people who are going to write my recommendations the appropriate documents so that they could write recommendations in just the proper format that these administrative cheeseweasels at NAS (National Academy of Sciences) want them. And I've had a low-grade fever all day which hasn't made things any easier.

Jeff has been sick for a week, and I'm just succumbing to whatever he was kind enough to give me. The only problem is that my CON score is 20 (+5 bonus!) so I rarely get sick enough to stay home and lie in bed. I just get sick enough that I don't feel 100%, so I just subsist through the day.

Adventures in Winter Weather

I stayed at work late on Friday, because I had something important to finish. I'm trying to apply for a fellowship at NIST, and for that you have to create a research proposal, so I was working on that until about 6 p.m. During that time I chatted a bit with Laura on Yahoo IM (yay for instant messaging!) and she told me about the lovely weather in the Bay area, which I have to confess made me quite jealous, because it is cold and miserable here. But, trying to put a positive spin on it, I realized that if the weather here were that nice, I might be outside appreciating it instead of inside getting my work done.

Sometimes, though, the bleak cold can make you want to stay at home and not get anything done. Running errands is a significant chore if it means you have to shovel the walk and thaw out the car. On Saturday I saw in the paper that there was going to be a big sale on some items I needed, so I decided that I shouldn't let the weather dictate my behavior. I got up early and went shopping. I got up about 7:00 (as usual) and moseyed out the door by eight. Then I scraped the car and shoveled the walk as the car warmed up. It was snowing and the street was not clear (which was surprising because I live on a main street). I drove quite slowly to the store, only sliding in the snow a couple of times, and impressing myself with the calmness with which I overcame the sliding. I actually enjoyed driving on the slippery streets, because it was physics in action, and as a former physicist, I really dig anything having to do with kinematics.

The problem was that visibility was quite low. We were actually having blizzard conditions, I learned once I started actually listening to the radio. It's not that it was snowing very hard (it wasn't). It's that the snow was being whipped around by high winds, spreading the snow into the air and reducing visibility. As I drove around, I discovered that there were times that I literally could not see the car in front of me, not to mention where I was going. Fortunately, this is my seventh winter in Champaign-Urbana, and I know where everything is. That and the grid-like layout of streets is handy. When in doubt, just go straight!

For those of you wondering at home, I needed to buy some shoes. I have two suits, one which I inherited from my advisor's secretary, and one which I bought myself, and I needed to buy shoes to match them. So I bought one pair of tan shoes and one pair of brown shoes for those. And I also got a pair of boots, because I'm tired of snow slipping into my shoes. Jeff teased me about buying three pairs of shoes in one day. While I was out, I also stopped by a grocery store that was having a one-day sale, and bought a box of clementines, and several other very cheap items from their circular. I happened to see Glen there too.

When I got home, it looked as if I hadn't shoveled before, so I shoveled again. When my officemate Hanna came to pick me up a couple hours later, it once again looked like I hadn't shoveled. I decided not to worry about shoveling again, until the next day when I had to go out again.

Hanna picked me up to buy some flowers for my advisor and his wife, who were to be hosting us and several other graduate students for dinner the next night. The flower shop was a marked contrast with the blowing snow outside. All the greenery and botanical beauty was a welcome relief from the cold, white outdoors. I definitely need occasional exposure to exquisite plant life like that in the winter. It makes me look forward to the spring even more. I hope these next couple of months rush by!

Friday, January 21, 2005

Weather

As a wimpy Kentucky native, the biting winds and bone-chilling cold of the Midwest still get to me. It is relatively warm right now (as far as Illinois in January goes), in the teens (Fahrenheit; sorry you metric weenies!), but any benefit of the warmth is cancelled out by the brutal winds. The problem with living in the plains is that once the air gets moving, there's nothing to stop it! I now understand why people would plant rows of trees in strategic locations to block the cold, winter winds.

We also get a lot of rapidly changing weather. For example, last Wednesday it was 62 degrees, but within 36 hours it was down to the teens. During that whole time, it rained four inches and snowed an inch on top of that.

According to the USDA climate chart, this part of Illinois is zone 5, while Lexington, where I grew up, is zone 6. It seems like it is consistently about 5 degrees cooler here than in Lexington. And that makes for a really pleasant summer. There are only a couple of weeks where it is significantly more comfortable to run the air conditioner. Otherwise, we usually leave our windows open and enjoy the breeze.

Another thing I sometimes worry about is the fact that Illinois is so flat, and it rains so much. Eventually, it seems like it would flood, since there's not much of a downhill direction for the water to flow. But another difference between Illinois and Kentucky is that the soil here is very absorbent, so most of the water just soaks in. With that four inches of rain last week, some communities did experience flooding, but we had no problems at our house.

I am looking forward to spring, which, as Laura rightly pointed out, is like a reward for enduring the winter. Spring is undoubtedly my favorite season. Every week, something new blooms, and every week, I am convinced that this is the most beautiful thing I have ever seen. But it's going to be over two more months before that starts.

Thursday, January 20, 2005

I'm not the only one

My sisters used to make fun of me for this (look on the upper right side of the picture):



Until I showed them this:

http://www.superherodesigns.com/journal/archives/000453.html

and this:

http://flickr.com/photos/tags/chriscobb/

I think that the large-scale rainbow ordering is particularly spectacular!

On Words

Now that my blog has been formally "outed" by my sister Rachel, I'd better write something memorable and interesting.

Growing up in our family, I was always the least verbally-inclined sister. I never thought I could write very well, until maybe about the ninth grade. It was then that we started writing essays in class, which was something I could actually do well. It was a form of writing that was reinforced by logical thinking. Creative writing I have always been lousy at, mostly because I don't have a knack for making things up. But essays were definitely my cup of tea.

It was in college that I realized that I am very good at writing. I took a history class with a professor who had been nominated for a Pulitzer prize, and he actually gave me A's on all my papers. And here in graduate school, my advisor, who is an excellent writer and the author of a remarkably eloquent textbook on scientific computing, has praised my writing too. That doesn't stop him from marking things up with a red pen, but I think he is delighted that he doesn't have to rewrite my papers for me.

I think that where I lag behind others is in speech. I am not very quick to come up with words I am seeking. In writing, quickness is not important, because you can always go back and edit. But in speech, it is vital.

This is why rehearsal is helpful to me. When I practiced my prelim talk, the phrase "contour plot" completely left my brain, which made it really hard to explain the slide of the contour plot. Somehow I managed to talk my way around it. After the rehearsal, my advisor asked me why I hadn't said "contour plot." From his question I was able to recapture that phrase and put it in a very safe place in the front of my mind. During the prelim, I remembered all the important phrases.

I often write down what I intend to say in a business phone call, such as a call to the utility company to question something on my bill. Similarly, when I teach, I like to write down everything I want to say, because I know my writing is much clearer than my speaking. I don't read straight from what I've written, but I do keep handy notes to remind me of key phrases.

I know I will never be a poet, because I lack the creative intuition about the sound of words. Luckily, "poet" is not high on my list of careers! But I am skilled enough as a writer that I will be able to convey to others the mathematical concepts that I develop.

Wednesday, January 19, 2005

Adventures in Teaching Karate

Last night I taught the children's karate class. For those of you playing along at home, I teach children's karate on average once a week. On the days that I don't teach it, my instructor teaches it. It meets on Tuesdays and Thursdays, and what happens is that I teach on Thursday and then on the next Tuesday, and he teaches the next Thursday and then Tuesday, etc.

Last night I had ten students. That can get pretty overwhelming. What I have discovered is helpful is to give them a summary of the evening's activities. So last night we did our warmups, worked on kata, and then played games for the last five minutes of class.

Sometimes I have a hard time because I get frustrated with students who don't try. For example, there is one student who likes just to wave his arms around instead of actually doing the jumping jacks. For some reason, that behavior kind of hooks me. But I stay calm externally and try to discourage him by not giving him the attention I think he is seeking by engaging in this behavior.

But last night I was pretty calm and managed not to get ruffled at all. I did tell one kid that his behavior was unacceptable when he pretended to kick his sister in the behind. But other than that, I think things went pretty well.

I have a set of three siblings in the class, ages 8, 10, and 12. The two older ones are over-achievers. The youngest just likes to goof off. That's okay by me; I know that kids will be kids. I worry about the oldest one in some ways, because he is such a perfectionist that he often apologizes to me for not doing things perfectly. For example, after sparring for the first time, he apologized to me because he messed up. I told him that he did fine, and not to worry about it. Really I'm very impressed with how well he does. He is outstanding for his level. I think he and his 10-year-old sister probably belong in the adult class.

Last night we finished out the evening with a game that I introduced when I started teaching. It involves taking two of my old karate belts and holding them horizontally, one at knee level and one at shoulder level, and having the children jump through the gap. For some reason this game is a huge hit every time it is played. After a few rounds of jumping through, I just take both the belts and place them together at one level, and have them jump over the belts.

I was really impressed by the over-achieving siblings' ability to jump. They could jump a belt that was at the height of my waist. The girl would walk up to the belt and do a straight jump over it, which I found amazing. The boy could do it too, and I was quite impressed, although he is nearly my height. Still, I am fairly certain that I could not jump that high.

I think I'm going to try another game I've been meaning to implement for quite a while. I think that a limbo game would be a hit too. I could use my bo (a 6-foot stick) as the level. I think I will try that next time.

Tuesday, January 18, 2005

Fun Times with Family

Yesterday we had Glen, Julian, and Glenna over for lunch. Barb has been gone since Thursday, with Nena and Paca. They went to St. Louis to get Nena's operation. Basically Nena has some sort of hole in her head between her nose and her brain, so they're patching that up. From what I hear, the operation was a success.

Anyhow, they came over for lunch. Jeff made his delectable spaghetti sauce, and a good time slurping up noodles was had by all. We also had salad, French bread, and green beans seasoned with herbes de Provence. After feasting on that, we played some games. Jeff and Julian invented some sort of game with miniatures where one army attacks another (very boy-like!) while Glen and I played Carcassone, which was a lot of fun.

After we had digested somewhat, Jeff brought out the dessert: these chocolate-covered peanut butter balls. I ate so many of them that I'm sure I won't weigh less at my next weigh-in. But oh well, they sure tasted good!

Hello, friends!

I thought maybe my family and friends would be interested in seeing what's up with me, too. My blog promises to be even more boring than Laura's ;)

I have several obsessions, and I will talk about them a lot. These obsessions include:

1. Numerical Analysis. I am finishing up my Ph.D. in Computer Science, specializing in numerical analysis. Numerical analysis is basically where applied math, computer science, and scientific computing all meet. I think about math all the time, even when I'm not supposed to be working.

2. Karate. I have taken karate since 2002, and I love it! I currently have a blue belt in Shito Ryu karate, and I should test for my brown belt in a few months. I teach children's karate once a week too, and I tend to obsess about whether I'm doing a good job teaching.

3. Weight loss. I have lost more than 60 lbs since August, 2003, through Weight Watchers. I only have about 3 more pounds to go.

4. Role playing. I love to play role playing games such as D&D.

5. Music. I love classical music, the Gipsy Kings, and Oldies from the 1960's and 1970's.

That is all (for now).