Your use of xargs can lead to nasty surprises because of the separator
problem http://en.wikipedia.org/wiki/Xargs#The_separator_problem
GNU Parallel http://www.gnu.org/software/parallel/ does not have that problem.
Watch the intro video for GNU Parallel: http://www.youtube.com/watch?v=OpaiGYxkSuQ