Monday, March 29, 2010

Architectures and Algorithms

I used to not care one way or the other about supercomputer architecture, back when I was more on the math side of things. After all, math is math, right? It should always work no matter what the machine looks like.

But as it turns out, a supercomputer's architecture influences the feasibility of algorithms. An algorithm that requires a lot of communication will not perform well on a supercomputer with a slow interconnect, for example. There are many different architectures out there, and different algorithms work better on different machines.

There are seven common patterns in the scientific computations we encounter in the high-performance computing world: sparse linear algebra, dense linear algebra, structured grids, unstructured grids, N-body problems, fast Fourier transforms, and Monte Carlo algorithms. There are other patterns, but these are the top seven in HPC. Each of these types of algorithms thrive under different conditions.

When you are designing and building a supercomputer, you have constraints on budget, power consumption, and size. What elements of the machine do you beef up, and what elements do you cut corners with?

At this point, you have to think of your intended users. If all your users are computational biologists studying protein folding, then there's a machine already out there for them: the IBM BlueGene. This machine is great for the N-body algorithms employed in the study of protein folding and molecular dynamics in general.

But, if your users are nuclear physicists, then the BlueGene is about the worst way to go. BlueGenes are low processor power, low memory machines -- the antithesis of an ideal nuclear-physics machine. The two things nuclear physicists need the most for their sparse and dense linear algebra calculations are memory and floating-point operations. Nuclear physicists would do best on machines that had huge shared memory banks, but unfortunately, there aren't really any machines like that these days.*

The hard part is when you have a mixed group of target users, who use more than one or two of those seven fundamental patterns. Since each pattern stresses different elements of the machine, you would like your all-purpose machine to have top-of-the-line processor speed, memory, and interconnects. But, since you are constrained by cost, power consumption, and existing technologies, something's gotta give.

Today, floating-point operations (Flops) cost practically nothing, because fast processors are cheap. So today's supercomputers are capable of performing more Flops than application scientists are capable of consuming. The real bottlenecks lie in memory and communication.

Memory is constrained by two factors: cost and power consumption. The cost of memory on a single node does not scale linearly -- 4 GB per core costs more than twice as much as 2 GB per core. Memory also requires a lot of power, so the more memory you have, the less power you have remaining to be used by the processors.

As for the interconnect, it definitely costs more for faster communication. Not only does the fiber cost more, but it also depends on how many miles of cables you must use on your machine. (And yes, for the big machines, it is on the order of ten miles of interconnect.) How do you want your processors to be able to communicate -- do you want a direct connection from every processor to another (completely infeasible on large machines due to space constraints, to say nothing of expense), or by hopping along a network? What kind of network will work? Most machines today use a 3-D torus, as a balance between cost and efficiency.

At my workplace, we are a general-purpose center so we try to have a balanced machine. This pleases everyone and no one. The thing we're the most lacking is probably memory, but that is true everywhere. If you look at the ratio of flop capability to memory capability, it has skyrocketed in the past decade, and that trend will continue. So what ends up happening is that codes that require a lot of memory (such as the nuclear physics applications) end up using a lot of nodes inefficiently in terms of floating point operations, but filling up every last bit of the memory. Part of my job is to help these folks reduce their memory footprint, thereby being able to run bigger problems on the same number of processors.

Now that I am more on the practical implementation side of things, I see how much of a difference the architecture of a machine can make in terms of application performance. I wish I had realized this earlier, because I would have made an effort to learn more then about all the very interesting ideas in computer architecture!


* There were machines that were considered to have huge amounts of shared memory, at the time when they were new, but compared to the agregate memory of today's top supercomputer, they had only tiny amounts of memory.

Sunday, March 28, 2010

The Ebb and Flow of Blogging

Sorry, vast blogging audience, not to have posted anything in more than a week, or anything substantial in nearly two weeks. I've been busy, but also, I find that my blogging inspiration comes and goes.

It seems like the number of topics I can think of to write about is inversely proportional to my posting frequency. In other words, the more I write, the more I can think of to write about. This month's big deadline left me with no time to keep up the fairly good pace I had last month. My momentum has been interrupted, and now it is an uphill battle to regain my inspiration.

I have a few ideas to expand upon the future of HPC, so I will keep working on those, and with luck that will expand my inspiration to other topics as well. Stay tuned.

Saturday, March 20, 2010

Freedom!!!

I have spent the past two weeks tucked away in my office working on a big document. Finally, on Friday, it was turned in to the gubmint, and I am off the hook (at least for now). This weekend, I am celebrating by doing as little as possible!

Tuesday, March 16, 2010

The Diversity Tax

There is a tax that I pay for being a woman in computational science. Compared to my (majority) male colleagues, I am disproportionately called upon to do outreach activities and participate in photo shoots. So I can relate to what Female Science Professor is talking about when she seeks "diversity help." Although I've never been explicitly asked to do something for the sake of diversity, it has always been implicit in the invitation.

Many of my fellow "diverse" colleagues (and this group includes not just women, but African-American, Hispanic, and Native American men as well) resent this tax upon their time. I can see where they're coming from. After all, while I'm out talking to middle schoolers, all the dudez are actually getting some work done. It's true, we have to do these types of outreach activities on a volunteer basis -- we get no credit at work for helping to mold the minds of the next generation. Management loves that we do it, as long as it doesn't interfere with the day job.

I think this is a shame. And when I am in management, I will work to change that attitude and actually provide some concrete means of crediting those who go out and make a difference in the community.

In the meantime, though, I see the need for those of us who are not stereotypical scientists to do outreach. I don't let it take over my life, but I do enjoy speaking at middle schools and giving machine room tours to young people, especially girls. It is every citizen's duty to give something back to society, and I'm glad that I can contribute by being a role model for the next generation of scientists, and help make science that much more inviting to those who don't fit the stereotypes.

Thursday, March 11, 2010

Oh So Busy

Have I mentioned how busy I am lately?

I mean, dang!

You would think one little-old document wouldn't take that long to create. You would be wrong.

Monday, March 08, 2010

HPC and the Future of Algorithms

As parallel computers get bigger and and more powerful, the way we use these machines has to change. The reason is that the machines are not just growing in clock speed, they're changing in architecture as well.

Over the past decade, leadership high-performance computing resources have evolved from systems with thousands of CPUs to systems with hundreds of thousands of multicore CPUs. And in this time, the algorithms in the best science application programs have adapted to this change. Today, the best programs exploit threading (such as OpenMP) within a node, and MPI between nodes. They use clever algorithms that minimize communication between nodes, with broadcasts and other all-to-all communication minimized.

But a radical change is about to happen. At this point, adding more cabinets of multicore CPUs to create an even bigger supercomputer is unsustainable in both space and power consumption. The most powerful supercomputer in the world takes up more than 4000 square feet of floor space -- the same footprint as a large house. It idles at 3 megawatts -- when it's just turned on but nobody's using the thing, it consumes enough electricity to power a large neighborhood. And during its full-machine runs of the Linpack benchmarks, it was demanding 7 MW. Quadrupling (or more) the machine size to reach 20 Petaflops* is not feasible, even here in the land of cheap land and plentiful power. So a new architecture is needed.

The harbinger of this new architecture was the first machine to cross the petaflop barrier, Roadrunner. Los Alamos National Laboratory, together with IBM, put together this novel machine which came online about two years ago. The novel part of the architecture was that it was no longer homogeneous -- not all the processors were the same. Roadrunner has three different types of processors in it.

Sadly, Roadrunner is going the way of the dodo, because it was too complicated to program. But it was a good experiment that led the way to the architecture that will be in the next 20 PF machines. In this next class of machines, additional floating-point operations will be provided by accelerators, kind of like the graphics cards in the machine you're probably using to read this post. This new architecture requires new algorithms to be able to exploit the accelerators. Accelerators are massively threaded -- on the order of a million different threads can be run at once on a single accelerator. So we're having to rethink our algorithms, and redefine them in a way that can exploit that kind of parallelism.

Looking to the future, the exascale** will be here before we know it. Early reports suggest that exascale machines will have millions of heterogeneous processors. At this point, we will have to completely rethink our algorithms.

Too many codes still rely on the manager-worker paradigm. There's one process, P0, who is in charge, who tells everybody else what to do, and collects and compiles results from them. This is a great paradigm if you don't have too many processes, but rapidly becomes inefficient when you reach more than a thousand. There are things you can do to improve the efficiency at higher processor counts, but in the end, this is not a scalable paradigm. Something will need to change radically before these codes will be able to run on millions of processors.

I like to think of the algorithm problem in analogy with music. Let's say that computations are like music, and computer processors are like musicians. Today's algorithms are like compositions for a marching band. When the algorithms are running, the band is in lock-step, each member with a very predefined role in the composition/part in the score. There's a leader, who keeps everybody in time. There's a predefined structure and order of operations. You can use different arrangements of the score to accommodate different sizes of marching bands.

But a marching band is not scalable. One conductor can be seen by only so many musicians. How would you lead a million musicians?

Maybe you could broadcast a picture of the conductor, or something like that, but it's not the same because the conductor can't keep track of all the musicians. Ultimately, you really can't lead a million musicians in lock-step. So you have to rethink your algorithm for creating music.

The musical equivalent of the algorithms that we must develop for the exascale are unfamiliar to the Western ear. If the ultimate goal is to create music, who says we have to do it in a scripted way? What if we provided certain parameters, such as the key and the starting note of the scale, and then let everybody improvise from there, perhaps with some synchronization between neighbors, kind of like a distributed, million-musician Raga?

In fact, the algorithms we have developed function very much in this way. The work is spread amongst all processes in a statistically even way. Due to variations in the machine, the algorithms may not run in precisely the same way every time, but this is controlled for and the answers we compute are still the same. The cost of communicating with millions of other processes is hidden by overlapping communication and computation. If you haven't heard from a process you need to complete the current task, move on to another task and come back to it later. The computations travel to the location where the data is, instead of the data being transported to the computation.

I've heard it said like this: let's say your goal is to reach the moon. There is a series of progressively taller trees that you can climb and get progressively closer to the moon. But there are not any trees tall enough to reach the moon by climbing them. So you have to think of another solution to reach your goal.

It will be interesting to see what application developers do to exploit exascale computing resources. How many of them will keep climbing trees, and how many others will abandon their tree-climbing programs in favor of something else?


* A flop is a floating point operation -- any basic arithmetic operation involving a decimal point, e.g., 1.1+1.1. A petaflop machine is capable of performing one quadrillion floating point operations per second -- a feat that would take everyone in the whole world, working together, doing one flop per second, roughly three days to complete.

** The exascale is the level above the petascale -- on the order of one quintillion flops. Exascale machines should come online in 2017 or 2018.

Friday, March 05, 2010

Weekend Fun

In a rare moment of convergence, both of my sisters and their sons will be at my dad and bonus mom's house on Sunday. This means that we'll be heading up there tomorrow and spending all day Sunday with them. There will be a cousin party. My sisters and I will have special sister time. I am bringing a cake baked by me and my favorite baking assistant, to celebrate my bonus mom's birthday (which was last month, but who's counting?!?!).

I am looking forward to this little break from work. For my latest responsibility, there is a hugely important report due to the gubmint after the Ides of March. I've been working on it nonstop for the past two weeks, so it will be nice to have some fun times with my family.

Wednesday, March 03, 2010

Today in "Things You Learn As a Parent"

Did you know that there are people who put videos of box fans and ceiling fans, complete with commentary about the quality of said fans, on YouTube? Neither did I.

Monday, March 01, 2010

Running Like Mad

So, I learned from blogfriend PhizzleDizzle that until 1960, there were no women's summer Olympics events in which women ran 800 meters or more. And the women's marathon was not an event until 1984! (Here's her post -- warning for those sensitive to words of the four-letter variety: it is full of very descriptive and highly justified cursing!)

Anyhow, this outraged me too after I learned about it. It's pretty sad that women couldn't participate in these sporting events because of erroneous beliefs about women.

Sometimes I think my struggles against gender inequity in science are bad, and then when I see the struggles in other fields... well, on the one hand I feel better, because it's not just my field; on the other hand, I feel dejection, because it's not just my field.

But, it made me realize that athletic talents in women is just as subversive as mathematical and scientific talents are. I'm no athlete, but I can at least participate in athletic endeavors and appreciate all the strides that have been made.

So, today I ran for an extra long stretch, out of solidarity with my Olympian systers. Because if some overweight, out-of-shape computational scientist can run non-stop for a mile or more, that just tells you how ridiculous these proscriptive rules of femininity are. I'm never going to win a race, but I can help run over these ridiculous stereotypes.

Friday, February 26, 2010

Our Little Engineer

Vinny is incredibly observant, and curious about his surroundings. Every day when I drive him to his preschool, he asks me something new about the car. First he wanted to know what that blinking arrow on the dashboard was. So I told him about turn signals. Then he wondered what I was holding in my right hand, so I told him about the gear shift. He was pretty excited to learn that the car had gears.

He's also curious about things around the house. He asks me multiple times every day to tell him about how electrical outlets work. You know how sometimes people freshly in love want to hear their partner tell them how much they love them, over and over again? Well, he asks about electrical outlets with the same breathless excitement.

I take a great delight in telling Vinny about how all these things work. I try to explain it within his vocabulary, and I think he understands. He really enjoys discovering new things and I enjoy sharing those moments with him.

Wednesday, February 24, 2010

By the Book

At bedtime, I read Vinny three books every night. Last night, I was reading him a book and his hand was obscuring one of the words. It was a book I'd read him a zillion times, but I was sure I knew what it said, so I didn't bother to move his hand.

Turns out that I knew what it meant, but I said a synonym of the actual word on the page. Vinny quickly corrected me with the proper word. I had to laugh that the person who can't yet read was correcting the one who can read.

He's really close to reading, but not quite there yet. He can read certain words, like "off," "stop," and "exit," and he can rattle off all the letters he sees on the page in sequence. We've been encouraging him to sound out words, and I think they're working on his reading in preschool too, but he doesn't quite have it yet. I think he will have it figured out very soon, though.

Monday, February 22, 2010

Violins and Fungi

Did you ever wonder what beautiful violin music and fungi had in common? No? Why not?

As it turns out, scientists treated wood with fungi to see if they could create wood similar to the wood that Stradivarius used to create the violins that today go for millions of dollars. Please read this article about it, written by a high school student for more details!

Thursday, February 18, 2010

For ScienceGirl

Blogfriend ScienceGirl is about to embark upon a new journey in her life: she and her husband are about to have their first child! This exciting news is tempered by the fact that she and her husband have only recently moved to the place where they live, and don't have much of a network of friends yet. This means that they're not having a baby shower, and will have to depend mostly on themselves when the baby comes.

I unfortunately don't live close enough to help out (otherwise I'd be inviting myself to come help like I did for my sister et al. in December!), but at the suggestion of blogfriend EcoGeoFemme, we are holding a virtual baby shower/blog carnival for ScienceGirl. Hopefully our words of support will be good for something.

ScienceGirl, I'm privileged to know you not just through the internet but also in real life! I know that you will be an excellent mother and you probably don't need any of my help in doing so. Still, I hope that my experience will be of help to you. I would like to offer you two pieces of advice -- two themes, if you will, that have helped me make it through the journey of motherhood so far.

The first is "This, too, shall pass." The immense pain of childbirth? Lasts on the order of hours. The sleep deprivation? Doesn't last forever. The temper tantrums? They'll go away as she matures.

On the other hand, it's not just the bad things that pass. Before you know it, your Baby Girl will be sitting up, crawling, then walking. She'll become more and more independent with every passing day. And she'll be too big to cuddle in your lap before you know what happens. So you need to savor the moment -- watch her explore those new-found things called hands, enjoy the groans and sighs of ecstacy as she drinks that milk, and caress that soft, soft skin and those tiny little fingers.

There will be moments that you miss. I missed my son's first crawl, because I had to go to bed early so I could go to work. You may get jealous of her other caregivers, and this is understandable. But remember this: at the end of the day, nobody can compare to Mama. You will be loved by your daughter more purely, more fiercely, than she loves anyone else. Enjoy her, and your time with her, in the moment -- because this too shall pass.


The second thing I'd like to talk about is what it means to be a good parent. You don't try to get a Ph.D. in Science from a Prestigious Institution of Higher Learning if you're not ambitious and somewhat competitive. Making comparisons between yourself and others, and striving to be Better than others may work okay in an academic environment* -- but when it comes to parenthood, it does not. You will never be the Best Mother in the World; you can only strive to be the best mother you can be.

First, comparing your parenting, as measured by the outcome of your child's development, to others' will only serve to get you into trouble. "So-and-so's kid walked at 10 months, and mine had just started crawling then" -- so what? Different kids develop at different rates; one person's kid developing skills earlier than another's is not a referendum on their parenting skills, or on the quality of your child. Certainly, there's something to be concerned about if your child doesn't pick up these skills, but there is such a wide range of developmental curves, that in 99.9% of all cases, there's nothing to worry about.

Second, being overcritical of your own parenting actions is counterproductive. This is not to say that you should never examine your actions, or be critical of what you've done. But it is counterproductive to punish yourself over mistakes that you've made.

Examine your history and your behavior patterns, and know your vulnerabilities. For example, I tend to yell out of anger, because that's how I was brought up. Do your best not to be triggered into doing the undesirable behaviors by learning what it is that pushes that button. (In my case, it's when I am drawn into a battle of wills -- plus sleep deprivation, stress, hunger, etc.) Then, avoid getting into that situation. (I try to redirect rather than directly confront disobedience -- with the exception of immediate dangers like running out into the street -- which works much better than imposing my will on him ever could. I also try to keep myself healthy to avoid the second set of triggers.)

You won't always succeed. I have barked at my son more times than I would have liked, but it's okay. I've transformed those situations from failures to learning experiences by figuring out what triggered me, how I can avoid that situation in the future, and (most importantly) apologizing to my son for my unacceptable behavior. Our children use us as role models, and modeling grace and humility in the face of a mistake is one of the best ways we can help them deal with their own inevitable mistakes and frustrations.

But love yourself enough to know that even in that dark moment, you had only the best of intentions. Create a plan of action, forgive yourself, and move on. Get some help (from family and friends, or from an expert) if you need it. Just believe in yourself confidently enough to know that you are growing and maturing even as an adult, and that you are and will continue to mature into the best parent you can be.

ScienceGirl, I am so happy for you and I'm looking forward to someday meeting your little one. Please know that I'll be thinking positive thoughts in your general direction as you get adjusted to life as a mother, and that I'm only a phone call away.


* I find this assertion debatable, but that is a subject for another post.

Tuesday, February 16, 2010

Feeling Blah

One problem with sending Vinny to preschool is that he's picked up some bugs from his classmates, which he in turn shares with us. In other words, he's the world's cutest disease vector.

So far he hasn't been sick enough to miss school (with the exception of one day that turned out to be a snow day), and I haven't been sick enough to miss work, but just sick enough to feel kind of blah. (Jeff, on the other hand, has really gotten it a lot worse than we have.)

My throat is kind of sore, just sore enough to be annoying. My head is kind of congested, just congested enough to be annoying too. It's not enough to pull out the cold medicine, but just enough to keep me from feeling my best. I imagine that Vinny is feeling the same way. Hopefully his immunities will build up and we'll stop picking up bugs from Typhoid Vinny.

Sunday, February 14, 2010

Math is Lucrative... Let's Be Computer Engineers!

I am pretty excited about the fact that Barbie's 126th career is Computer Engineer. I'm with blogfriend PhizzleDizzle, I'm happy that Barbie is becoming one of us. I'm more of the old school nerd than Barbie (or PhizzleDizzle, for that matter!) -- fashion is really not my thing. I might wear the shirt Barbie's sporting but only if it came in a looser cut, and even then, not to work.

The best thing about Computer Engineer Barbie, from my perspective, is that she's showing girls that they too can succeed in computer science. Computer scientists don't have to be male, they don't even have to be nerdy -- they just need to have an interest in computers/computing and follow their passion.

I for one am looking forward to the day that Barbie comes and installs our next supercomputer. In the meantime, I might just have to preorder her and display her prominently on my desk when she arrives late this year.

Saturday, February 13, 2010

This Week's Headlines

If there were a newspaper boring enough to find me newsworthy, here might be some of the articles you could read:

Local Woman Still Recovering from Business Travel
Could use about 24 additional hours of sleep


Roomba Great Source of Entertainment for 3-Year-Old
Floors cleaner than ever


Computational Scientist Breaks Yet Another Compiler
'Not another bug report to file,' complain exasperated system administrators


World's Best Second-Rate Mathematician Gets Some Work Done this Week
Rare opportunity for work arises during two days without meetings


Mother and Son Have Dinner out at Area Restaurant
Father attending meeting


Area Woman Still Running Three Times a Week
'Thank goodness for my mean running coach,' she says

Monday, February 08, 2010

Business Travel

Last week I was on business travel to our nation's capital. Now, as you all know, I hate travel, especially when it's business travel and not vacation travel. This was going to be a pretty long trip: leave home on Monday, return Friday night, and I was not feeling too happy about it. To make the trip more palatable, I arranged to have dinner on Wednesday night with one of my cousins who lives in the area.

As it turned out, a gigantic snowstorm was making its way towards the area. The meeting was shortened and we were to finish up on Thursday rather than Friday. Because of that, the organizers moved some sessions from later in the week to Wednesday night. To preserve my sanity, I skipped those sessions and had dinner with my cousin as originally planned.

The last question was, how to get out of there before the blizzard struck. On Wednesday, my airline was not letting people change flight plans without paying $800 for the privilege. So I called my work's travel agency and they reserved me a rental car (1/4 the cost of changing flights). I had two other friends in the same boat with the same airline, so driving home seemed both economical and doable. But just before we picked up the car, we thought we'd try one last time person-to-person at the airline counter. The folks at the counter had more of an incentive to let us change -- they were the ones who'd have to deal with us on Friday after our flights were canceled. So they agreed to change our reservations for free. We got home Thursday afternoon safe and sound, more than a day earlier than originally planned, and several hours earlier than I had anticipated based on driving.

Sunday, January 31, 2010

SNOW!

They canceled school for the next day on Thursday night, but the snow didn't start to fall until Friday afternoon. I left work a little early to get home before the crazy drivers made the roads more dangerous. I took a different route than before (so as to avoid the aforementioned crazy drivers) and made it home just fine -- the roads were wet but not icy.

It snowed through the evening and all night, and we woke up to about 2 or 3 inches of the white stuff on the ground. We made a snowman -- this one was taller than Vinny, unlike the tiny one we made in December -- and shoveled the walks and the driveway.

Today the snow is melting, but it will do doubt freeze overnight and make for an interesting morning. I've looked at the local TV station website to find out if the public schools are canceled for tomorrow -- the preschool follows the public school schedule -- but so far they are still open.

Thursday, January 28, 2010

Musical Interlude

In November, in an effort to ruin my life, my sister Rachel disagreed with me about Bob Dylan (whose composition efforts I enjoy, but whose performance efforts I abhor). This of course occurred right when I was leaving for a big conference and was too busy to reply. But in the meantime, I've thought a lot about it and decided to formulate a better explanation of what I dislike and why.

Music serves different purposes for different people, but to me, music is kind of an aural riddle, constrained by certain rules, that challenges my mind and influences my emotions. When it's something I like, I listen, my brain is stimulated, and I enjoy it. For example, if I'm in a good mood and I listen to a "sad" song, I enjoy the wave of sadness that contrasts with my baseline emotional level. If I'm in a bad mood, I get pleasure out of commiserating with a collection of sounds that are feeling the same way I am.

When I say rules, I'm thinking of the rules of music theory and musical traditions and conventions. This is of course quite fluid over the course of history, and probably one of the reasons I loathe Baroque music quite as much as I do is that it's too constrained by theory rules. I enjoy Medieval and Renaissance music, however, because while it is constrained by the rules of its day, those rules are so different from modern music theory that it is interesting.

A clever composer/artist/whatever can get away with bending or even breaking certain rules, and I like it. But, there are certain things that to me are non-starters. Bad intonation is one of those things. It distracts from the riddle. All I can think about is how off it sounds. And this is what I dislike so much about Bob Dylan.

There is music from other cultures that contains notes that one could not play on a piano -- quarter tones, which fall between adjacent keys on the keyboard. In the context of that cultural musical tradition, these "off-key" notes do not bother me in the least -- it's part of the setting of the riddle. But when we have a Western artist who is clearly playing by Western rules and then singing notes that do not exist in the context of Western music theory,* this is a dealbreaker for me. I don't perceive it as Bob Dylan bending or breaking the rules of Western music theory -- if he were, I would expect to hear the accompanying instruments also coming out with quarter tones. No, Bob Dylan is just being sloppy, and I don't like it.


* There are cases when quarter tones are used in Western music for emotional effect, such as in Jerry Goldsmith's soundtrack for Alien. He's using these "alien" notes to create a disturbing musical background for a disturbing movie foreground. This rule-breaking works in this context. Again, I don't think Dylan is deliberately using quarter tones to create a disconcerting aural environment -- that goes against the context of the words and the rest of the melody that he's singing.

Wednesday, January 27, 2010

Our Preschooler

Vinny had a great time at preschool on Monday. They're kind of trying to gradually get him used to school, so he's just going on Monday, Wednesday, and Friday this week before plunging in to 5 days next week.

He was very enthusiastic on his first day, the teachers said, and he made a couple of friends. He also received an invitation to a birthday party this Saturday. I guess we might go to that -- I don't know. It seems a little weird since we have no idea who the birthday girl is, and probably Vinny doesn't yet either.