Should I run multiple DBCC Shrinkfile if files are in different disk arrays?
Your task is to reduce the size of mdf file, right?

Shrinking a database by dbcc shrinkdatabase is extremely slow. It is single threaded.

There is a faster way to reduce DB size:


Create new filegroup and allocate space for that filegroup as needed (determine how much space is actually used in the old files)
Move all the data to that filegroup and drop the old one


This solution can be multi threaded so it is going to be much faster