Creates a noiseless virtual engine object from a device specification template.

processor_ids names of the processors to simulate. These are arbitrary string identifiers and do not have to match the processors' names in QCS. There can be a single string or a list of strings for multiple processors.
template_names File names of the device specification templates, see cirq_google/devices/specifications for valid templates. There can be a single str for a template name or a list of strings. Each template name should be matched to a single processor id.
gate_sets Iterable of serializers to use in the processor.

ValueError if processor_ids and template_names are not the same length.