Although, LabVIEW is easy to configure for multithreaded applications (more than 1 while loop), there might be better ways of programming more efficiently. I am assuming that the reason you have 8 while loops for the Reads and 8 while loops for the Writes is because you need each FP-1000 to have a different read AND a different write poll rate. If this is the case than eight independent while loops is the only way to go.
I am not sure what you mean by "slow". It may be the correct speed for what hardware you are using. Remember the FPAdvise has an option for returning only when new data arrives. Also, the most efficient way to Read/Write data with Fieldpoint is to read and write only ONE tag for each IO module (i.e. Use the ALL tag).
Also, make sure that
you are only polling channels at reasonable rates. If it doesn't change that often then decrease the poll rate. Also, only write new values to channels if the old value has changed. It sounds like you are using global variables to pass the data from one while loop to the next. That is fine but you defeat dataflow programming and synchronization that way. Think about using a queue (look on the web for RT Queue or ND Queue)or other synchronization techniques (look on the functions palette for Advanced>>Synchronization). Most likely it is not a limitation with LabVIEW (although it may be a limitation with the hardware), but probably with the design of the code.
Joji