Not infrequently, I get asked what it is I do, anyway, as a scientisty sort of person.

I blogged it, of course, but that was a “typical day” – during term time and filled with paperwork and class prep and general rushing about.

This morning I woke up and found the S^{b} Overlords had frontpaged this quote:

*“I think I need to go back and think about adaptive load balancing block solving of sparse, nasty almost diagonal matrices; that and whether kinetic energy turbulence really affects sound wave propagation (duh, of course it does, but how much…)?”*

Huh?

Ah, Particle Physics snark…

So, how did that come about?

Well, it was a very untypical day.

Right now, I am working on about ~~6~~9+ research projects.

4 are safely ensconced with responsible hardworking grad students, which I can ignore for right now; 1 is waiting on a collaborator, and for the rest I’m now the hold-up…

So, PSU is a football school, term starts early to fit all the games in.

Next week I will be orienting new grad students, assuming they are well behaved, if not there will be manifold problems.

Two of the projects I am scheduled to give a talk on in the foreseeable future, so they really should be submitted as papers by then, all are late.

What to do?

Obviously, I fled town, to KITP. It was perfect, no students, cool cloudy weather, and office with view directly across from my collaborator.

No paperwork for several days, and I actually had time to sit quietly and think for extended periods.

D00d!

Now, one of the many nice things about KITP is there are always 2-4 workshops taking place, so in between other activities I decided to take in a couple of lectures, as one does.

“Dynamics of Development” sounded interesting, but it is a mini-program, and I’m going to a astrobio workshop soon, so skip; Nonperturbative wotsits – skip, too pure; which left LHC ’11 – perfect, and not just because every physicist secretly really really wants to be a particle physicist…

Went to two talks, liveblogged one, and caught up on some of the online versions of what I missed in the previous weeks. Continuing education.

Ok, so the commentary got a little bit snarky, I blame the “Bino” myself, but knowing what is going on with Higgs searches, searches for supersymmetric partner particles (dark matter candidates!) and general status of the standard model actually feed into some of my research interests, and it is of general intellectual interest, and, y’know, kinda cool.

If you like that sort of thing.

Then I had to claw my way back to reality, and the quote is on what I was actually working on that morning… which was…

See, a couple of years ago I got interested in essentially figuring out the colours of some particular and peculiar stars. It is terribly respectable, to do with galaxies and structure formation and almost, like, cosmology.

Anyway, I was hanging out at KITP and discovered they had a nice new toy which I might be able to use. A stellar evolutionary code. Kewl. So I got roped in. I’ll blog about it when the time is right.

Turns out those stars are particularly awkward to model, of course, so I broke the code.

So then I figured I’d better try to help fix it, me and a student did some digging, found some bugs – lots of other people had fixed most all of the bugs before – one or two of which might actually have been important, and then got interested in optimization and validation.

’cause its kinda geeky fun. And needs to be done to actually use the code.

Before I knew it I was working on a couple of completely different projects where efficiency and precision were directly relevant, which got me thinking about yet other things…

Anyway, so before doing any actual real science, some under-the-hood detail work was needed. Up to this stage it was more noodling around with collaborators exploring the possibility of maybe there being some science to be done there eventually.

One problem is the code at some steps has to do some matrix arithmetic, in fact a lot of the computing load is in the matrix arithmetic – actually quite likely much of the world’s total cpu time is spent on matrix arithmetic, and that is even if you throw out all the Excel stuff. As you should.

The code is parallel, and uses moderately large sparse matrices (most of the numbers are zero), but nasty ones with non-zero numbers popping up in isolated corners, not in nice strips (matrices which basically loop over nuclear nets on hydro grids).

To parallelise, the matrices are broken into blocks, partitioned, calculated separately and then the “corners” are communicated to complete the calculation.

There were load balancing problems, some cpu cores were done early and idling while other cores were taking much longer. The problem is that the non-zero entries move around as you do the calculations, in ways not known in advance, if we knew we wouldn’t have to calculate.

So, we came up with an adaptive load balancing scheme to spread the load out, repartitioning the matrices dynamically but not deterministically (yes, this is a well studied problem, but there is a cpu time vs human time tradeoff in deciding how to handle it, trust us we know what we are doing, or at least my collaborators know, really know!).

This made the load balancing worse.

Ah, sign error.

Better now.

So, as I waited to hear about the bounds on the gravitino mass from the LHC upper limits, I was thinking about what scheme for dynamic load balancing was most likely to be easy to implement and near optimal.

We’ll hopefully know soon, it only needs to be good enough.

My other problem involves observations of frequencies of oscillation of stars, which from my perspective boils down to understanding the sound speed in stellar interiors.

Argh.

Well, there is a persistent problem with getting precision fits to this, as the data improved, the fit did not – the misfit is consistently where strong convection is taking place, ie in strongly turbulent fluids. We won’t worry about rotation or magnetic fields, blah blah. Yet.

Well, I realised that a sound wave propagating through a random velocity field generally has effective sound speeds that are different from the adiabatic sound speed, which is what true theorists care about!

Sure enough, this is known, and quick ADS digging reveals there a couple of papers on it (Gruzinov; and Li et al in case you care).

In particular, the dominant effect seems to be the kinetic energy density in the turbulent velocity field – there is an adding in quadrature to the sound speed.

Kewl.

But, two problems: it is turbulence, so it is sensitive to the details (integral over the power spectrum in case you care); and, the observers are using first order variational calculations to invert the frequencies to infer effective sound speeds, maybe with a heuristic turbulence terms sometimes thrown in, depending on what mood they are in.

We can’t do that.

We need a first order correction from intrinsic variables already calculated.

Well, it must be a function of the Mach number!

Try it, throw in a fudge factor, and dammitt, it seems to work.

So now we can compare both adiabatic sound speeds and effective sound speeds with an ad hoc but well rationalised correction for kinetic energy density in the turbulence.

Sure enuff, the fit improves. (Euw, that means having to do real statistics next…)

Woohoo.

Couple of more little things and we can actually maybe do science.

Got the pieces lined up, code running, parameter space staked out, analysis macros written.

Time to outline the damn paper and fill in the blanks as we get to them.

That is NOT a typical day, but I’ll take it, thank you very much!

Time to go home and face the paperwork that I blew off this week…