• Introduction to Orion Development
    • Orion Platform
      • Data Record
      • DRConvert
      • Floe
      • Orion Client
      • Artemis
  • Orion Development Tutorials
    • Basic Development of Cubes and Floes
    • Creating a New Orion Package
      • Features
      • Requirements
      • Setup
      • Commands
      • Output Skeleton
      • Package Documentation
      • Advanced Build Options
        • Private Python Packages
        • Script Hooks
      • Creating a Package Image (Advanced)
        • Prerequisites
        • Overview
        • Creating an image from an existing floe
        • Index of Related OCLI Commands
    • Tutorial: Creating a Tensorflow Package
      • Creating the initial package
      • Configuring Conda Requirements
      • Writing a Training Workfloe
      • Testing the Training Workfloe
      • Writing a Prediction Workfloe
      • Testing the Prediction Workfloe
    • Applying Advanced Techniques
      • Introduction
      • Concurrency
        • The Bottleneck problem - Why Do Cubes Stall?
        • The Bookkeeping Problem - How to merge output of subfloes
      • Computational Resources
        • Transportation Costs
        • Cube Group Limitations
      • Parallelization
        • When Not to Parallelize
        • Parallel Cube Groups
        • The end() Method
      • Data Traffic
        • Optimizing Data Traffic
        • Buffering and Batching
        • Buffering
        • Batching
        • Buffering vs. Batching
      • Collections I/O
        • Efficient Collections I/O
        • Serial Writing
        • Advanced Writing
        • Conclusion
      • Summary: Optimized Floe Design
    • Using the Floe Editor
  • Working Programmatically with Molecule Search
    • Search Commands
      • Exact 2D Search
      • Similarity (GraphSim) 2D Search
      • Substructure 2D Search
      • Title 2D Search
      • 3D Similarity Search
    • Commands for Information Gathering
      • Getting a SMILES String from a Name
      • Getting Information about a Specific Query
      • Listing All Queries
      • Listing the Results of a Query
      • Get Information about a Searchable Database
      • Show the Sharing Status of a Custom Database
    • Query Manipulation Commands
      • Update a Molecule Search Query
      • Export Query Results to a Dataset
      • Download Results and Query to Separate Files
      • Delete a Query
    • Database Manipulation Commands
      • Create a Database from a Prepared Collection
      • Load/Unload a Database
      • Share/Unshare a Database
    • orionclient User Stories
      • Molecule Input
      • Query Round Trip
  • OpenEye Orion Platform Packages
    • Orion Platform
      • Quick Start
        • Requirements
        • Installing Orion Platform
        • Migrating from Cube Record
        • Writing Cubes with Orion Platform
        • Building Floes with Orion Platform Cubes
      • Orion Platform Introduction
        • Data handling in Orion
        • Record Basics
        • Shard Collections
        • Port Basics
        • Cube Basics
        • Common Cube Usage
        • Cube Unit Tests
        • Floe Unit Tests
      • Orion Platform Cubes
        • Orion Platform Dataset Cubes
        • Orion Platform File Cubes
        • Orion Platform Collection Cubes
      • Orion Platform Mixins
        • CollectionPortsMixin
        • RecordPortsMixin
        • ShardPortsMixin
      • Orion Platform Ports
        • Record Ports
        • Collection and Shard Ports
      • Orion Platform Parameters
        • Dataset Parameters
        • Field Parameters
        • File Parameters
        • Collection Parameters
        • Secret Parameters
      • Miscellaneous
        • InputSystemTagParameter
      • Orion Environment Variables
      • Supported Operating Systems
        • x86-64
        • arm64
      • Orion Platform Exceptions
        • ParameterException
        • PlatformException
      • Migrating from CubeRecord
        • Summary of differences
        • Migrating Cubes
        • Migrating Cube Tests
        • API Changes
    • Orion Client
      • Quick Start
        • Installing Orion Client
        • Authenticating with Orion
        • Interacting with Orion
      • Orion Client Examples
        • Orion Client Python API Examples
        • Orion Client Command Line Examples
      • Orion Client Session
        • OrionSession
        • in_orion()
        • get_profile_config()
        • get_session()
      • Orion Client Utilities
        • Backoff
        • TemporaryPath
      • Orion Client Helpers
        • Collection Helpers
        • Parameterization Helpers
        • Workfloe Helpers
      • Orion Client Types
        • Storage Types
        • Floe Types
        • Service Types
        • Management Types
        • Molecule Search Types
      • Orion Client Links
        • Orion Type Link
        • Record Type Link
        • Shard Type Link
      • Orion CLI
        • Options
        • Configuration Commands (ocli config)
        • Storage Commands
        • Floe Commands
        • Molecule Search Database Commands
        • Molecule Search Query Commands
        • Services
      • Orion Client Exceptions
        • AuthorizationRequired
        • BadResponse
        • InvalidAPIVersion
        • InvalidCredentials
        • NotFoundResponse
        • OrionConnectionError
        • OrionError
        • OrionLinkError
        • OrionServiceError
        • OrionTimeout
        • RateLimitedResponse
        • ValidationError
    • Floe
      • WorkFloes
        • Overview
        • Writing a WorkFloe in Python
        • Running a WorkFloe
        • Serializing a WorkFloe
        • Cube Execution Order
        • Cube Groups
        • Nested WorkFloes
        • Multistage WorkFloes
        • Cyclic WorkFloes
      • Cubes
        • Cube Types
        • Cube Methods
        • Emitting Items
        • Cube Parameters
        • Writing Cubes
        • Parallel Cubes
        • Packaging Cubes
        • Cube Ports
        • Testing Cubes
        • Debugging Cubes
        • Cube Metrics
        • Tuning Cube Communication
      • Parameters
        • Parameter Types
        • Adding a cube parameter
        • Specifying Parameters at run time
        • Getting a Parameter value
        • Grouping cube parameters
        • Promoting a cube parameter
        • Grouping promoted parameters
        • Parameter Attributes
        • Storing multiple values
        • Specifying parameter choices
        • Providing a static value for a parameter
        • Ordering cube parameters for user interface display
        • Ordering parameter groups for user interface display
        • Basic vs. Advanced Parameters
        • Overriding parameter fields on a cube
        • Overriding defaults in a derived class
        • Parameter Methods
      • Orion Integration
        • Development Lifecycle
        • Packaging
        • Linting and Detection
        • Hardware Requirements
        • Additional Parallel Cube Parameters
        • Job Scheduling
        • Job Logs
        • Cube File Systems
        • WorkFloe System Tags
      • FloeSpecConverter
        • Creating Spec Converter class
        • Using Spec Converters
        • Floe Package vs Floe Spec Versions
      • Dominant Resource Factor
      • Cube Types
        • ComputeCube
        • Cube
        • CubeGroup
        • CubeParametersMixin
        • CycleDetails
        • ParallelComputeCube
        • ParallelCubeGroup
        • ParallelMixin
        • ParameterConnection
        • SinkCube
        • SourceCube
      • Parameter Types
        • BaseParameter
        • BooleanParameter
        • DecimalParameter
        • FileInputParameter
        • FileOutputParameter
        • IntegerParameter
        • JSONParameter
        • ParameterGroup
        • PromotedParameterGroup
        • StringParameter
      • Test API
        • CubeTestRunner
      • Capacity States
    • Datarecord
      • Quick Tour
        • Introduction
        • Basic Functionality
        • Advanced Topics
      • OpenEye-datarecord API Reference
        • OERecord class
        • OEMolRecord class
        • OEField class
        • Types class
        • OEMatchField class
        • OEPrimaryMolField class
        • OEFieldMeta class
        • OERecordMeta class
        • Meta class
        • OEReadRecord function
        • OEWriteRecord function
        • CustomHandler class
        • create_link function
    • DRConvert
      • OpenEye-drconvert API Reference
        • Conversion to Records
        • Conversion from Records
        • Conversion to Alternate Formats
      • Datarecord Type Coercion And Field Splitting
        • Identifier Field Splitting Example
      • Using an External Schema
        • Handling Unexpected Values
        • Manually Splitting Columns
        • Renaming Columns
        • Metadata on the Schema Fields
    • Artemis
      • Quick Start
        • Installing Artemis
        • Writing a Floe Test
        • Running a Floe Test
      • Artemis Examples
        • Handling Local and Orion Floe testing
        • Testing with Collections
        • Dynamic Packaging
      • Wrapper API
        • Utilities
        • WorkFloe Wrapper
        • Input Wrappers
        • Output Wrappers
      • Pytest Markers
        • @package
        • @orion_xfail
        • @on_demand
      • Packaging API
        • OrionTestPackage
      • FloeTestCase
        • FloeTestCase
      • Pytest Options
        • Runtime
        • Resource Management
  • Release History
    • Orion Platform v6.4.0
      • Fixes
      • Orion Client
      • Orion Integration
    • Orion Platform v6.3.2
      • Floe
      • Orion Client
    • Orion 2024.3.1
    • Orion Platform v6.3.1
      • Code-Only Floe Packages
      • Working Around setuptools convert_path Problems Affecting OpenEye Utilities
      • Bug Fixes
      • Orion Client
        • Molecule Search
      • DRConvert
    • Orion 2024.2.1
      • Bug Fixes
    • Orion Platform v6.2.0
      • Orion Client
      • DRConvert
      • Bug Fixes
    • Version 2024.1.1 Highlights for Cube and Floe Developers
      • Bug Fixes
    • Version 2023.3.1 Highlights for Cube and Floe Developers
    • Orion Integration, Version 2023.3.1
    • Orion Platform v6.1.2
      • Orion Client
        • Bug Fixes
      • Floe
    • Version 2023.2.1 Highlights
    • Orion Integration, Version 2023.2.1
    • Orion Platform v6.0.0
      • Floe
      • Orion Client
      • DRConvert
    • Version 2023.1.2 Highlights
    • Orion Integration, Version 2023.1.2
    • Orion Platform v5.1.1
      • Orion Client
    • Orion Integration, Version 2023.1.1
    • Orion Platform v5.0.0
      • Orion Client
      • Floe
    • Orion Integration, Version 2022.3.1
    • Orion Platform v4.5.4
      • Orion Client
    • Orion Platform v4.5.3
      • Orion Client
    • Orion Platform v4.5.2
      • Orion Client
    • Orion Platform v4.5.1
      • Floe
    • Orion Platform v4.5.0
      • Artemis
      • Orion Client
      • Floe
    • Orion Platform v4.4.1 September 2022
      • Orion Client
    • Orion Platform v4.4.0 June 2022
      • Floe
      • Orion Client
      • DRConvert
    • Orion Platform v4.3.2 May 2022
      • DRConvert
    • Orion Platform v4.3.1 February 2022
      • Orion Client
    • Orion Platform v4.3.0 February 2022
      • drconvert
      • Orion Client
      • Floe
    • Orion Platform v4.2.7 November 2021
    • Orion Platform v4.2.6 November 2021
    • Orion Platform v4.2.5 October 2021
      • Orion Client
    • Orion Platform v4.2.4 October 2021
      • Orion Client
    • Orion Platform v4.2.3 October 2021
    • Orion Platform v4.2.2 October 2021
      • Datarecord
    • Orion Platform v4.2.1 October 2021
      • Floe
    • Orion Platform v4.2.0 October 2021
      • Orion Client
      • DRConvert
    • Orion Platform v4.1.0 September 2021
      • Orion Client
      • Artemis
      • drconvert
      • Floe
    • Orion Platform v4.0.0 May 2021
      • Orion Client
      • Artemis
      • Floe
        • Bugfixes
      • DRConvert
      • Datarecord
    • Orion Platform v3.1.3 January 2021
    • Orion Platform v3.1.2 December 2020
    • Orion Platform v3.1.1 December 2020
    • Orion Platform v3.1.0 November 2020
    • Orion Platform v3.0.1 August 2020
    • Orion Platform v3.0.0 August 2020
      • Bugfixes:
    • Orion Platform v2.4.6 May 2020
    • Orion Platform v2.4.5 April 2020
    • Orion Platform v2.4.4 March 2020
    • Orion Platform v2.4.3 March 2020
    • Orion Platform v2.4.2 February 2020
    • Orion Platform v2.4.1 January 2020
    • Orion Platform v2.4.0 December 2019
    • Orion Platform v2.3.0: November 2019
    • Orion Platform v2.2.1 November 2019
      • Bugfixes:
    • Orion Platform v2.2.0 November 2019
      • Bugfixes:
    • Orion Platform v2.1.0 October 2019
    • Orion Platform v2.0.1 September 2019
      • Bugfixes:
    • Orion Platform v2.0.0 August 2019
    • Orion Platform v1.1.4 August 2019
    • Orion Platform v1.1.2 August 2019
    • Orion Platform v1.1.0 August 2019
      • Bugfixes:
    • Orion Platform v1.0.2 July 2019
    • Orion Platform v1.0.1 July 2019
    • Orion Platform v1.0.0 June 2019
      • Bugfixes:
    • Orion Platform v0.3.2 June 2019
    • Orion Platform v0.3.1 May 2019
      • Bugfixes:
    • Orion Platform v0.3.0 May 2019
    • Orion Platform v0.2.3 May 2019
      • Bugfixes:
    • Orion Platform v0.2.2 May 2019
      • Bugfixes:
      • Bugfixes
    • Orion Platform v0.2.1 March 2019
      • Bugfixes
    • Orion Platform v0.2.0 January 2019
    • Orion Platform v0.1.14 February 2019
    • Orion Platform v0.1.13 January 2019
    • Orion Platform v0.1.12 December 2018
    • Orion Platform v0.1.11 November 2018
    • Orion Platform v0.1.10 November 2018
    • Orion Platform v0.1.9 October 2018
    • Orion Platform v0.1.8 October 2018
    • Orion Platform v0.1.6 September 2018
    • Orion Platform v0.1.5 September 2018
    • Orion Platform v0.1.4 September 2018
  • OpenEye Glossary of Terms
  • Legal Notices
    • Copyright and Trademarks
    • Sample Code
    • Citation
      • Orion®
      • Orion Floes
      • Toolkits and Applications
      • Publications for Bibliographies
        • Orion
        • AFITT and FLYNN Applications
        • OEDocking Application and Toolkit
        • OMEGA Application and Toolkit
        • ROCS Application
      • OpenEye MMDS Web Service
    • Technology Licensing
    • GCC
      • GCC RUNTIME LIBRARY EXCEPTION
      • GNU GENERAL PUBLIC LICENSE
Orion Programming Documentation
  • All OpenEye Documentation »
  • Contents »
  • Orion Development Tutorials »
  • Applying Advanced Techniques

Applying Advanced Techniques

This documentation discusses the application of advanced programming techniques to the development of floes and cubes.

  • Introduction
  • Concurrency
    • The Bottleneck problem - Why Do Cubes Stall?
    • The Bookkeeping Problem - How to merge output of subfloes
  • Computational Resources
    • Transportation Costs
    • Cube Group Limitations
  • Parallelization
    • When Not to Parallelize
    • Parallel Cube Groups
    • The end() Method
  • Data Traffic
    • Optimizing Data Traffic
    • Buffering and Batching
    • Buffering
    • Batching
    • Buffering vs. Batching
  • Collections I/O
    • Efficient Collections I/O
    • Serial Writing
    • Advanced Writing
    • Conclusion
  • Summary: Optimized Floe Design
Previous Next

© Copyright 2025, Cadence Design Systems, Inc.