load multiple mods; Load a fixed number of servers into each proc; run every generator on every CPU core
Project description
eisenmp_examples
Python 3.7 Multiprocess Framework for Server and Mobiles
Examples:
- simple style prime calc to see the basic use
- simple http server on one cpu gets content via queue
- one flask orm server on each cpu - share a user db
- multiple flask orm server on each cpu, port groups - share a user db
- web download csv large list, calculate average over a column
- brute_force_attack with itertools generator and dictionary
- example with two, double fed queues
- All scenarios follow the Template style and have descriptions
How to run the examples?
Clone the repo and run an eisenmp_exa_...
.
Brute force cracks strings of an online-game alphabet salad quest.
.. read wordlist .\lang_dictionaries\ger\german.dic
.. read wordlist .\lang_dictionaries\eng\words.txt
[BRUTE_FORCE] cfhhilorrs
Create processes. Default: proc/CPU core
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
... proc Process-7 ... rohrschilf
... proc Process-14 ... rohrschilf
... proc Process-16 ... rohrschilf
... proc Process-7 ... rohrschilf
... proc Process-13 ... schilfrohr
... proc Process-13 ... schilfrohr
... proc Process-11 ... schilfrohr
... proc Process-11 ... schilfrohr
generator empty, run time iterator 5 seconds
exit WORKER 15
exit WORKER 16
exit WORKER 2
exit WORKER 10
exit WORKER 11
exit WORKER 12
exit WORKER 8
exit WORKER 3
exit WORKER 4
exit WORKER 6
exit WORKER 14
exit WORKER 5
exit WORKER 7
exit WORKER 13
exit WORKER 1
exit WORKER 9
--- Result for [CFHHILORRS]---
rohrschilf
schilfrohr
--- END ---
Processes are down.
BF Time in sec: 12
Process finished with exit code 0
Inbuild example, assert a scrambled string. Use brute force or condensing.
We use an english (.6M) plus a german (2M) wordlist and make a dictionary of it. To gain more read speed.
(A) len(str) <= 11, combined brute force dictionary attack with a permutation generator. itertool prod. duplicates
Permutation lists grow very fast, reaching Terabyte size.
(B) len(str) >= 12, pre reduce a len(str) list. Kick out words which are not matching char type and count.
eisenmp
uses Pythons permutation generator
itertools
for the brute force attack example.
Another example downloads a large list and calculates average for one column.
Python CSV extracts the column and we calculate the average with the assigned number
of Porcesses/CPU cores. It can be more processes than CPU cores, if it makes sense.
- large lists https://www.stats.govt.nz/large-datasets/csv-files-for-download/ Crown copyright ©. All material Stats NZ produces is protected by Crown copyright. Creative Commons Attribution 4.0 International licence.
- German dict https://sourceforge.net/projects/germandict/. License Public Domain
- English dict Copyright (c) J Ross Beresford 1993-1999. All Rights Reserved.
- ORM Flask-SQLAlchemy https://pypi.org/project/Flask-SQLAlchemy-Project-Template/ License MIT 44xtc44
Cheers
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
eisenmp_examples-0.1.tar.gz
(44.0 kB
view hashes)
Built Distribution
Close
Hashes for eisenmp_examples-0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb664ef345342b93e413c6be6a749f781e7df70ea4d9663c8180d464ede530d2 |
|
MD5 | e047a24478d72934f592990e1e327234 |
|
BLAKE2b-256 | c5e4ec50f6d589a5009de1ed8ee994ae78e6da317889e6cc72f3c4c05daf4644 |