Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@rcoreilly
Copy link
Member

No description provided.

rcoreilly and others added 30 commits January 12, 2025 22:53
@rcoreilly
Copy link
Member Author

@kkoreilly go ahead and merge!

@kkoreilly
Copy link
Member

I confirmed that it works with the our readline, although we should definitely update to https://github.com/reeflective/readline at some point.

Copy link
Member

@kkoreilly kkoreilly left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rcoreilly This looks good enough for now, as long as you can clearly articulate two things:

  1. What is the specific advantage of using gRPC here and all of the extra stuff associated with it instead of just using net/rpc?
  2. What is the difference between simmer and baremetal? Do those names accurately capture that distinction?

@rcoreilly
Copy link
Member Author

What is the specific advantage of using gRPC here and all of the extra stuff associated with it instead of just using net/rpc?

net/rpc is frozen and unsupported going forward, and only supports Go clients. Multiple sources warned against using it for new projects, in favor of gRPC which is actively maintained, automatically provides support for any language client, and has much better docs and examples etc.

What is the difference between simmer and baremetal? Do those names accurately capture that distinction?

from the (updated) READMEs:

Bare metal is a simple compute job manager for bare metal machines, with the manager running on a local "client" (laptop), using the goal language ssh facilities to connect to the servers and execute all the management through that connection, so that nothing needs to be installed on the server.

"Simmer provides a Cogent Lab based GUI for running simulation jobs, and managing and analyzing the resulting data, using the plotcore Editor. It supports both slurm and baremetal job management systems.

@kkoreilly
Copy link
Member

Okay, the simmer and baremetal distinction makes sense.

I am a little bit skeptical about using gRPC to have multi-language support, since that is not a use case we care about, and so we are generating all of these protobuf related files with a major footprint and a massive loss in idiomaticness compared to just transmitting simple https://pkg.go.dev/encoding/gob values that can use our enums and types directly.

@rcoreilly
Copy link
Member Author

it is a small price to pay, and grpc handles all the protocol stuff from one .proto file, so it is conceptually simpler. someone someday (including me) may want to use baremetal via python or js or whatever -- it is a very nice minimal system for managing jobs on a bare metal machine.

-rw-r--r--  1 oreilly  staff    23K Jan 23 16:50 baremetal.pb.go
-rw-r--r--  1 oreilly  staff   3.4K Jan 23 17:03 baremetal.proto
-rw-r--r--  1 oreilly  staff   9.9K Jan 23 16:50 baremetal_grpc.pb.go

@kkoreilly kkoreilly merged commit 77de6c2 into main Feb 15, 2025
1 check passed
@kkoreilly kkoreilly deleted the plot branch February 15, 2025 22:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants