示例#1
0
 def set_process_affinity_mask(pid, value):
     pHandle = _get_handle_for_pid(pid, False)
     current = win32process.GetProcessAffinityMask(pHandle)[0]
     try:
         win32process.SetProcessAffinityMask(pHandle, value)
     except win32process.error as e:
         raise ValueError
     return current
示例#2
0
 def set_affinity(self, value):
     pHandle = self._get_handle_for_pid(0, False)
     current = win32process.GetProcessAffinityMask(pHandle)[0]
     try:
         win32process.SetProcessAffinityMask(pHandle, current)
     except win32process.error as e:
         print("unable to set process affinity")
         raise ValueError(e)
     return current
示例#3
0
 def set_affinity(pid=0, mask=1):
     try:
         hProc = __open_process(pid, ro=False)
         mask_old, mask_sys_old = win32process.GetProcessAffinityMask(
             hProc)
         res = win32process.SetProcessAffinityMask(hProc, mask)
         win32api.CloseHandle(hProc)
         if res:
             raise OSError
     except win32process.error as e:
         raise ValueError, e
     return mask_old
示例#4
0
def generate_main(queue: mp.Queue, worker_id, start, step, n):
    print("[Worker %d] Spawn" % (worker_id, ))
    wp.SetProcessAffinityMask(-1, 1 << worker_id)
    wp.SetPriorityClass(-1, 0x00000040 | 0x00100000)
    for i_sample in range(start, n, step):
        freq_low, freq_high = sorted(
            np.random.uniform(band_freq_list[0], band_freq_list[-1], size=2))
        rd_low, rd_high = sorted(np.random.uniform(0.3, 3.0, size=2))
        disto_low, disto_high = sorted(np.random.uniform(0.0, 0.1, size=2))
        energy_low, energy_high = sorted(np.random.uniform(0.025, 1.0, size=2))
        magn_low, magn_high = sorted(np.random.uniform(0.025, 1.0, size=2))
        snr_low, snr_high = np.exp(
            sorted(np.random.uniform(np.log(8), np.log(1e16), size=2)))
        '''
    rd_low, rd_high = 3.0, 3.0
    disto_low, disto_high = 0.0, 0.1
    energy_low, energy_high = 1.0, 1.0
    magn_low, magn_high = 1.0, 1.0
    snr_low, snr_high = 8, 8
    '''

        use_shape_noise = (np.random.randint(0, 2) == 1)
        n_extend_hop = np.random.randint(0, 32)

        #print("S0")
        osr = np.random.choice(gvm_osr_list)
        f0_list, w = generate_sample_0(freq_low, freq_high, rd_low, rd_high,
                                       disto_low, disto_high, energy_low,
                                       energy_high, magn_low, magn_high,
                                       snr_low, snr_high, use_shape_noise, osr,
                                       n_hop_per_sample + n_extend_hop)
        cut_begin = np.random.randint(0, n_extend_hop + 1)
        f0_list = f0_list[cut_begin:cut_begin + n_hop_per_sample]
        #print("S1")
        feature_list = generate_sample_1(w)[cut_begin:cut_begin +
                                            n_hop_per_sample]

        queue.put((i_sample, f0_list, feature_list))
        '''
    pl.figure()
    pl.imshow(feature_list[:, :, 1].T, interpolation='nearest', aspect='auto', origin='lower', cmap="plasma")
    pl.plot((freqToBark(f0_list) - band_start) / (band_stop - band_start) * n_band)
    pl.figure()
    pl.imshow(feature_list[:, :, 2].T, interpolation='nearest', aspect='auto', origin='lower', cmap="plasma")
    pl.plot((freqToBark(f0_list) - band_start) / (band_stop - band_start) * n_band)
    pl.figure()
    pl.imshow(feature_list[:, :, 3].T, interpolation='nearest', aspect='auto', origin='lower', cmap="plasma", vmin=band_freq_list[0] / sr, vmax=band_freq_list[-1] / sr)
    pl.plot((freqToBark(f0_list) - band_start) / (band_stop - band_start) * n_band)
    pl.show()
    '''

    queue.put(worker_id)
示例#5
0
def run(func, keys, max_procs=None, affinity=None, proc_desc='', **kwargs):
    """
    Provide interface for multiprocessing

    Args:
        func: callable functions
        keys: keys in kwargs that want to use process
        max_procs: max number of processes
        affinity: CPU affinity
        proc_desc: prefix for progressbar
        **kwargs: kwargs for func
    """
    logger = logs.get_logger(run, level=kwargs.get('log', 'info'))

    if max_procs is None: max_procs = cpu_count()
    kw_arr = saturate_kwargs(keys=keys, **kwargs)
    if len(kw_arr) == 0: return

    if isinstance(affinity, int):
        try:
            import win32process
            import win32api

            win32process.SetProcessAffinityMask(win32api.GetCurrentProcess(),
                                                affinity)

        except Exception as e:
            logger.error(str(e))

    task_queue = queue.Queue()
    with tqdm(total=len(kw_arr), desc=proc_desc) as bar:
        while len(kw_arr) > 0:
            for _ in range(max_procs):
                if len(kw_arr) == 0: break
                kw = kw_arr.pop(0)
                bar.update()
                p = Process(target=func, kwargs=kw)
                p.start()
                sys.stdout.flush()
                task_queue.put(p)
            while not task_queue.empty():
                p = task_queue.get()
                p.join()
示例#6
0
    def setPriority(self, pid=None, priority=2):
        """ Set The Priority of a Windows Process.  Priority is a value between 0-5 where
        2 is normal priority.  Default sets the priority of the current
        python process but can take any valid process ID. """

        import win32api, win32process, win32con

        priorityClasses = [
            win32process.IDLE_PRIORITY_CLASS,
            win32process.BELOW_NORMAL_PRIORITY_CLASS,
            win32process.NORMAL_PRIORITY_CLASS,
            win32process.ABOVE_NORMAL_PRIORITY_CLASS,
            win32process.HIGH_PRIORITY_CLASS,
            win32process.REALTIME_PRIORITY_CLASS
        ]

        pid = win32api.GetCurrentProcessId()
        handle = win32api.OpenProcess(win32con.PROCESS_ALL_ACCESS, True, pid)
        win32process.SetPriorityClass(handle, priorityClasses[priority])
        win32process.SetProcessAffinityMask(handle, 1)
示例#7
0
    def SetupProcessors(cluster):
        if sys.platform != "win32":
            return

        handle = win32api.GetCurrentProcess()
        processMask, systemMask = win32process.GetProcessAffinityMask(handle)

        ht = False
        if systemMask & 8:
            #we're going to count this as a hyperthreaded system
            #as we don't currently have any servers with > 2 physical cpu
            ht = True

        if cluster == 0:
            mask = 3 if ht else 1
        elif cluster == 1:
            mask = 12 if ht else 2
        else:
            mask = 1

        print "Setting Processor Affinity Mask to", mask
        win32process.SetProcessAffinityMask(handle, mask)
示例#8
0
 def sched_setaffinity(pid, mask):
     pid = pid or os.getpid()
     handle = win32api.OpenProcess(win32con.PROCESS_SET_INFORMATION, False, pid)
     win32process.SetProcessAffinityMask(handle, _cores_to_mask(mask))
示例#9
0
def setaffinity():
    pid  = win32api.GetCurrentProcessId()
    mask = 3 # core 7
    handle = win32api.OpenProcess(win32con.PROCESS_ALL_ACCESS, True, pid)
    win32process.SetProcessAffinityMask(handle, mask)
示例#10
0
    for h, t in hwnd_title.items():
        if t is not "":
            print(h, t)


if __name__ == '__main__':
    all_memory_address = {"mutil": 0x0061BD9C, "signal": 0x0053B644}
    game_window_text = "[#] 棆揹嘨 (C)2005-2006 MOSS LTD ALL RIGHTS RESERVED. [#]"
    win32_raiden3 = Window(game_window_text)
    win32_raiden3.get_all_hwnds_from_text()

    process_id = win32process.GetWindowThreadProcessId(
        win32_raiden3.hwnd_title[0])[1]
    process_handle = win32api.OpenProcess(0x1F0FFF, False, process_id)
    win32process.SetProcessAffinityMask(process_handle, 0x0001)

    process_id = win32process.GetWindowThreadProcessId(
        win32_raiden3.hwnd_title[1])[1]
    process_handle = win32api.OpenProcess(0x1F0FFF, False, process_id)
    win32process.SetProcessAffinityMask(process_handle, 0x0002)

    proc1 = mp.Process(target=proces1, args=(win32_raiden3.hwnd_title[0], ))
    proc2 = mp.Process(target=proces1, args=(win32_raiden3.hwnd_title[1], ))

    proc1.start()
    proc2.start()

    process_handle1 = win32api.OpenProcess(0x1F0FFF, False, proc1.pid)
    win32process.SetProcessAffinityMask(process_handle1, 0x0004)
    process_handle2 = win32api.OpenProcess(0x1F0FFF, False, proc2.pid)