def iparse(self,meter=None,num_processes=1,arbiter='Line',line_lim=None):
		from Meter import Meter,genDefault,parse_ent,parse_ent_mp
		import multiprocessing as mp
		meter=self.get_meter(meter)
		self.__parses[meter.id]=[]
		self.__bestparses[meter.id]=[]
		self.__boundParses[meter.id]=[]
		self.__parsed_ents[meter.id]=[]
		lines = self.lines()
		lines=lines[:line_lim]
		numlines = len(lines)
		init=self
		ents=self.ents(arbiter)
		smax=self.config.get('line_maxsylls',100)
		smin=self.config.get('line_minsylls',0)
		ents = [e for e in ents if e.num_syll >= smin and e.num_syll<=smax]
		self.scansion_prepare(meter=meter,conscious=True)
		numents=len(ents)
		toprint=self.config['print_to_screen']
		objects = [(ent,meter,init,False) for ent in ents]
		if num_processes>1:
			print '!! MULTIPROCESSING PARSING IS NOT WORKING YET !!'
			pool = mp.Pool(num_processes)
			jobs = [pool.apply_async(parse_ent_mp,(x,)) for x in objects]
			for j in jobs:
				print j.get()
				yield j.get()
		else:
			now=time.time()
			clock_snum=0
			for ei,objectx in enumerate(objects):
				clock_snum+=ent.num_syll
				if ei and not ei%100:
					nownow=time.time()
					if self.config['print_to_screen']:
						print '>> parsing line
					now=nownow
					clock_snum=0
				yield parse_ent_mp(objectx)
		if self.config['print_to_screen']:
			print '>> parsing complete in:',time.time()-now,'seconds'