Пример #1
0
def quickreduce(func,lst,start=None,slavs=None):
	if slavs is None:
		s = slaves.slaves(prod)
		s.start()
		s.pause()
	else:
		s = slavs
	if start is None:
		old = []
	else:
		old = [start,]
	old.extend(lst)
	arr = [old,[],]
	p = 0
	ln = len(arr[p])
	while ln>1:
		prev = arr[p]
		p = 1 - p
		arr[p] = []
		next = arr[p]
		cnt = 0
		for i in range(0,ln/2):
			s.put((prev[2*i],prev[2*i+1],))
			cnt = cnt + 1
		if ln%2==1:
			next.append(prev[-1])
		s.resume()
		for i in range(0,cnt):
			next.append(s.get())
		s.pause()
		ln = len(next)
	s.terminate()
	return arr[p][0]
Пример #2
0
def fact_double(n):
	mid = n/2
	s = slaves.slaves(fact_part)
	s.put((1,mid))
	s.put((mid+1,n))
	s.start()
	rez = s.get()*s.get()
	s.terminate()
	return rez
Пример #3
0
def fact_double_perf(n, max_blocks=15,min_size=500, spec_reduce=reduce):
	s = slaves.slaves(fact_part)
	dist = n/max_blocks
	if dist < min_size:
		dist = min_size
	st = 1
	fin = st + dist - 1
	count = 1
	while fin<n:
		s.put((st,fin,))
		count = count + 1
		st = fin + 1
		fin = st + dist -1
	s.start()
	s.put((st,n))
	lst = []
	for i in range(0,count):
		lst.append(s.get())
	s.terminate()
	return spec_reduce(lambda x,y:x*y,lst,1)
Пример #4
0
import RPi.GPIO as GPIO
import MFRC522
import signal
import lcddriver
import json
import random
import pymysql
import os
import time
import signal

stamp = dict()
realstamp = dict()
mqttdevices = dict()
tordevices = torturedevices()
slaves = slaves()
rfdevice = RFDevice( 27 )
rfsend   = RFDevice( 17 )
rfdevice.enable_rx()
rfsend.enable_tx()
rfdevice.tx_repeat = 10
timestamp = None
old_slave_count = -1
old_device_count = -1
logger = logging.getLogger( 'Punisher' )
logger.setLevel( logging.DEBUG )
log = logging.FileHandler('logs/punisher.log')
log.setLevel( logging.DEBUG )
logger.addHandler( log )
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
log.setFormatter( formatter )