private void deployVirtualAndSwitcherVertices(final JobDescriptor job, final LocalPhysicalGraph pvGraph) {
        Iterator<LocalVertex> iter = pvGraph.iteratorOfVertex();
        while (iter.hasNext()) {
            final LocalVertex lv = iter.next();

            if (lv instanceof LocalSelectorVertex)
                continue;

            final LocalPhysicalVertex pv = (LocalPhysicalVertex) lv;
            final ModuleBase instance = pv.getModuleInstance();
            final Vertex v = pv.getVertex();

            if (v instanceof VirtualVertex) {
                assert (!ReflectionUtil.isImplemented(v.getModuleClass(), PullInputModule.class));
                ThreadUnit unit = pv.getActualVertex().getThreadUnit();
                ThreadContextBase context = handlePushModules((PushModulesThreadUnit) unit, pv, instance);
                pv.setContext(context);
                pv.setThreadUnit(unit);
                continue;
            } else if (v instanceof SwitcherVertex) {
                PushModulesThreadUnit unit = unitController.createPushModulesUnit("SwitcherVertex",
                                                                                  pv.getCpuAffinityIds(),
                                                                                  pv.isBusyLoopMode());
                ThreadContextBase context = handlePushModules(unit, pv, instance);
                threadUnits.get(job).addNewThreadUnit(unit);
                pv.setContext(context);
                pv.setThreadUnit(unit);
                continue;
            }
            assert (v instanceof LogicalVertex);
        }
    }