In my process definition, I have following:
multiInstanceLoopCharacteristics isSequential="false"....
From this I understand that for multiple sets of input data, engine would create multiple instances of process definition which are then run in parallel.
From official documentation page:
It’s also possible to suspend a process instance. When suspended, the process cannot be continued (e.g. completing a task throws an exception) and no jobs (such as timers) will executed. Suspending a process instance can be done by calling the runtimeService.suspendProcessInstance method. Activating the process instance again is done by calling the runtimeService.activateProcessInstanceXXX methods.
So If I suspend a process definition, would it impact other parallel running instances in any way?
No, this is for single process instance. i.e. the process instance id you provide in the method. You understood correctly, the engine will create multiple instances (each having a unique process instance id) which can be individually suspended later on.