When I get a chance, I will add a page to the swap valuation spreadsheet on the member page to show DV01. But briefly, it is a good point b/c a swap sort of needs the DV01 since it does not have a yield per se.
But the procedure is similar to what we did for the CDS DV01 (at least in the case of "full simulation" instead of an approximation): we compute the value of the i rate swap (as we already do here).
Then we can duplicate the sheet (not elegant but quick) and take the LIBOR curve assumptions and add 1 basis point to each of them (parallel upward shock to the yield curve; if we just did one, we would be computing a key rate '01). This gives a slightly different swap value and the difference between the two swap values is the DV01 (or PV01).
I was recently trying to price some IR swaps. I noticed that when I shock the yield curve up by 1bps at a single specific node, the DV01 is close to zero except at the node nearest the maturity. Nearly 100% of the DV01 for a parallel shift comes from the shock to the node near maturity.
I don't really understand this, since I would expect every node to have similar risk, perhaps slightly increasing the further away you are. Would it be possible to have an explanation of this phenomenon?