Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow Funnel to run tasks against custom domain socket #809

Open
lbeckman314 opened this issue Jan 23, 2024 · 1 comment
Open

Allow Funnel to run tasks against custom domain socket #809

lbeckman314 opened this issue Jan 23, 2024 · 1 comment
Assignees

Comments

@lbeckman314
Copy link
Member

lbeckman314 commented Jan 23, 2024

Overview

General Use Case: user launches funnel and then launches another process to issue the jobs, all while using named sockets to handle communication between the funnel server and the job issuer process. This would allow the job issuer process to use existing file permissions as the socket network by inheriting permissions from the containing directory.

Specific Use Case: user launches funnel on an Exacloud head node with jobs scheduled by Slurm.

This feature should be configurable from the funnel command line:

Funnel server:

funnel server run --socket ./my_socket

Job issuer:

funnel task create my_task.json --socket ./my_socket

Testing

Minimal testing environment:

  • Funnel server configured to use custom Unix socket
  • One working directory
  • Using Slurm (in Exacloud)
  • Introspect server address to determine whether Funnel server is running over HTTP or over Unix socket
  • Submit tasks with py-tes using Unix socket
  • Submit tasks with Funnel client using Unix socket

Additional Resources

Python Implementation

# Create the Unix socket server
server = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)

# Bind the socket to the path
server.bind(socket_path)

UNIX Domain Sockets Zine by @jvns

https://wizardzines.com/comics/unix-domain-sockets/

@lbeckman314 lbeckman314 self-assigned this Jan 23, 2024
@lbeckman314 lbeckman314 changed the title Allow Funnel to run tasks against custom socket Allow Funnel to run tasks against custom domain socket Jan 27, 2024
@lbeckman314
Copy link
Member Author

lbeckman314 commented Jan 31, 2024

Overview

Diagrams for designing and implementing Funnel on Exacloud
Google Docs Link

Here we are documenting the required connections between the three different entities involved with Funnel's task execution:

  1. The Funnel Server
  2. The Job Submitter
  3. The Task Executor

⚠️ Note: these diagrams outline features under active development and may not accurately reflect Funnel's default behavior.

Funnel on Generic Platform

funnel

Google Diagram Link

Funnel Exacloud

funnel-on-exacloud

Google Diagram Link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant