Any way to improve speed on Mesh.MoveNode on list of nodes

Hello,
I am looking to update a large number of nodes position of a mesh. I tried to parallelize this with small pools nodesIDs and then use multiprocessing or multithreading (so I can divide the large number of nodes IDs) and update them separetly as this in theory are independent. but I have not had any luck with multiprocessing if i remember correctly it fails, and multithreading it simply does nothing to the mesh.
would appreciate any input on this!. right now doing this line:

[Mesh.MoveNode(nodeID,newPositions[nNode][0],newPositions[nNode][1],newPositions[nNode][2]) for nNode,nodeID in enumerate(nodesIDs) if nodeID not in allNodesToCalculate]

takes 4.5 hrs…

is there any way to update the nodes potions of the hole mesh? keep the connectivity etc, simply say ‘hey replace current positions with this new ones’ in a single step instead of doing this list comprehension for all the nodes?