Skip to main content

Fastmap is a drop-in replacement for `map` that parallelizes your code on the cloud.

Project description

Note: Fastmap is currently in beta.

Version 0.0.2

Simple distributed computing

Fastmap is a drop-in replacement for map that makes your Python code in parallel on the cloud.

Fastmap is appropriate to use when map is too slow but setting up infrastracture would be overkill.

Demo gif of fastmap. Text tutorial can be found below

  • 🚀 Speed up your code. Fastmap automatically parallelizes your code and distributes work across both your local machine and the fastmap cloud service. If the cloud won't speed things up, fastmap will do all processing locally and you won't be charged.
  • 🐣 Trivial to setup. Get an API token, add global_init to the top of your file, and replace every instance of map with fastmap. There are no servers to provision or code to upload. The SDK consists of only 3 functions.
  • 💵 Cheaper than you think. When you signup, you can get 1000 fastmap credits for free. That's enough for 100 vCPU-hours of processing or 100GB egress. Additional credits are $10 for 1000.
  • 🧟‍♂️ Continuity plan. You depend on fastmap. If for any reason, in the future, fastmap.io must shut down, everything will be open-sourced.

Docs

For complete documentation, go to https://fastmap.io/docs,

Installation

pip install fastmap

Quickstart

import csv
from config import FASTMAP_TOKEN
from my_project import big_function
import fastmap

# Important: Protect your API token like a password and never commit it to version control
config = fastmap.init(secret=FASTMAP_TOKEN)

with open('lots_of_data.csv') as fh:
    long_list = list(csv.reader(fh))

results = list(config.fastmap(big_function, long_list))

When should you use fastmap?

As a rule-of-thumb, fastmap will speed up any call to map that would have otherwise taken more than one second. This is possible because, under the default ADAPTIVE execution policy, fastmap algorithmically distributes work between local execution and the fastmap.io cloud service.

If you are planning to use the 'CLOUD' exec_policy, which prevents local processing, fastmap is appropriate when your function is computationally-heavy. This is because transferring data to the cloud for processing always takes a non-zero amount of time. The tradeoff depends on your network speeds and distance to the fastmap server cluster (GCP: US-Central1).

If in doubt, try running fastmap with a small test dataset. Fastmap attempts to be transparent and will inform you when using it has made your code slower.

Questions

Fastmap.io is a new project and I would love to hear your feedback. You can contact me directly at scott@fastmap.io.

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

fastmap-0.0.3.tar.gz (21.7 kB view details)

Uploaded Source

Built Distribution

fastmap-0.0.3-py3.8.egg (46.0 kB view details)

Uploaded Source

File details

Details for the file fastmap-0.0.3.tar.gz.

File metadata

  • Download URL: fastmap-0.0.3.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6

File hashes

Hashes for fastmap-0.0.3.tar.gz
Algorithm Hash digest
SHA256 a1b1f1ace918705c76386e3f3a16478706f3e570cb3035544cf4f39dd414f7a8
MD5 288fc878fe08adf79902c19e33559cff
BLAKE2b-256 930326f5733cd52938776a0a3fb96f7f5f4a549722c7e31e884ad1a785f9fa8a

See more details on using hashes here.

File details

Details for the file fastmap-0.0.3-py3.8.egg.

File metadata

  • Download URL: fastmap-0.0.3-py3.8.egg
  • Upload date:
  • Size: 46.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6

File hashes

Hashes for fastmap-0.0.3-py3.8.egg
Algorithm Hash digest
SHA256 390c49de903e60fa235f48a506e08c5324176bc6105d92c261d83514b029daf3
MD5 2e9736d9e4bee8c00305183d0019780b
BLAKE2b-256 0629fddd4f61ea86e069e8e90f5c3b8b2b7ecf937ed9c6748cbdfc58fcda6480

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page