我正在研究构建面向HPC(FLOP)计算的强大机器集群的可能性,因此我一直在审查顶级Intel Xeon模型,并且惊讶地发现Xeon E7型号不支持AVX矢量化,而Xeon E5则支持AVX矢量化.另一方面,E7支持SSE 4.2,它似乎是与FLOP计算和HPC无关的优化,而是适合加速字符计算,例如XML解析.
为了确保我得到正确的差异,我想问一下是否是这种情况E7 Xeon型号不支持AVX并且面向"系统"而E5 Xeon型号支持AVX并且面向HPC密集型FLOP计算.
我使用以下方法成功创建了一个图:
# suppose I have a p <- ggplot(data=df, ...) then the following works
# I get those two segments plotted correctly
p <- p + geom_segment(aes(x=1,y=103,xend=1,yend=107))
p <- p + geom_segment(aes(x=5,y=103,xend=5,yend=107))
Run Code Online (Sandbox Code Playgroud)
但是,如果我这样做:
values <- c(1, 5)
for (i in values) {
p <- p + geom_segment(aes(x=i,y=103,xend=i,yend=107))
}
Run Code Online (Sandbox Code Playgroud)
它不起作用,只创建了最后一个段.任何人都可以在这里建议什么是错的吗?
我发现自己在许多新项目中一次又一次地编写相同的编程模式.我一直在考虑创建我自己的这种模式的典型实现的可重用库 - 不是试图涵盖所有可能的设计模式,但只有经验表明将这种典型实现放在库中是有意义的(例如,适配器,工厂等...) - 但在此之前我想知道是否已有可用于Java的现有库?
我知道很难完全概括编程模式,因为它们可以在具有复杂需求的不同实现中重复使用(例如,模式的组合,参与多个模式的类等等).但是,大多数情况下我需要的模式实例非常简单和标准,并且在许多情况下,使用这样的库可以加快实现工作.
感谢您的反馈意见.!
使用jps和jstack我可以到达有问题的等待线程,但不知道如何解决它或导致它的原因.请参阅下面的Maven依赖项以及jstack结果和等待线程tid=0x000000000022c000.进一步分析,对于所选版本,Eclipselink和hsqldb之间似乎存在问题.因为它曾经完全适用于Eclipselink和hsqldb的版本2.0.1和1.8.0.10,所以我在升级这两个库时遇到了这个问题.
<dependencies>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>2.2.9</version>
<scope>test</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<id>EclipseLink</id>
<url>http://download.eclipse.org/rt/eclipselink/maven.repo</url>
</repository>
Run Code Online (Sandbox Code Playgroud)
而堆栈跟踪是:
$ jstack 7552
2012-12-21 22:48:53
Full thread dump Java HotSpot(TM) 64-Bit Server VM (20.12-b01 mixed mode):
"Low Memory Detector" daemon prio=6 tid=0x0000000006a19000 nid=0x1e00 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread1" daemon prio=10 tid=0x0000000006a0a800 nid=0x2184 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread0" daemon prio=10 tid=0x00000000069f5000 nid=0x754 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Attach …Run Code Online (Sandbox Code Playgroud) 我有以下代码,用于为InvocationHandler实现支持的接口类型创建代理实例,但是当我使用具体的类类型时,它不起作用,这是众所周知的,并在Proxy.newProxyInstance中记录:
// NOTE: does not work because SomeConcreteClass is not an interface type
final ClassLoader myClassLoader = SomeConcreteClass.getClassLoader();
SomeConcreteClass myProxy = (SomeConcreteClass) Proxy.newProxyInstance(myClassLoader, new Class[] {
SomeConcreteClass.class }, new InvocationHandler() { /* TODO */ });
Run Code Online (Sandbox Code Playgroud)
但是,如果我没记错的话,我已经在一些模拟框架中看到了这个用例,它可以模拟一个具体的类类型,例如EasyMock.在检查他们的源代码之前,任何人都可以指出需要做什么来代理具体的类类型而不仅仅是接口吗?
我能够在此处理器比较中找到Xeon E5-2690的理论DP峰值性能371 GFlop/s (有趣的是,在英特尔的竞争对手中比在英特尔支持页面本身更容易找到此信息).但是,当我尝试推导出峰值性能时,我的推导不匹配:
add和mul操作,因此我们得到:3.8 x 2 = 7.6因此,Gflop/s的峰值性能为243.2 GFlop/s而不是371 GFlop/s?
请关注我,在OP有意义之前有一些背景.我正在使用Slick 3.1.x和光滑的代码生成器.btw整个源代码可以在play-authenticate-usage-scala github项目中找到.对于这个项目,我希望有一个光滑的通用Dao,以避免为每个模型重复相同的样板代码.
我有一个postgres sql脚本,使用evolutions在这里创建数据库: 1.sql
然后,我调用生成以下数据模型的生成器: Tables.scala
为了能够为模型类提供通用的dao slick实现,我需要它们遵守一些基本的抽象,例如
id例如dao的需要findByIddef copyWithNewId(id : PK) : Entity[PK].这是dao实现的必要条件,createAndFetch它持久保存新实体并id在一个步骤中检索自动生成的PK.这copyWithNewId是OP的要点.请注意,它被调用,copyWithNewId而不是copy为了避免无限递归.为了能够实现允许插入并立即获取自动生成的GenericDaoAutoIncImpl,id实体行需要一个copy(id = id)来自<Model>Rowcase类的方法,在定义GenericDaoAutoIncImpl它时尚未知道它.相关实施如下:
override def createAndFetch(entity: E): Future[Option[E]] = {
val insertQuery = tableQuery returning tableQuery.map(_.id)
into ((row, id) => row.copyWithNewId(id))
db.run((insertQuery += entity).flatMap(row => findById(row.id)))
}
Run Code Online (Sandbox Code Playgroud)
这需要我copyWithNewId在每个AutoInc id生成的模型中实现该方法,这是不好的,例如
// …Run Code Online (Sandbox Code Playgroud) 我正在进行Scala Play项目迁移,由于积累了很多隐式变量,要弄清楚代码中不同点处的可用隐式变量及其类型(例如在Play Controller的内部Action以及委派之前)是一项艰巨的任务。到一个视图即
@Singleton
class Application @Inject() (implicit
val verifier: RecaptchaVerifier,
config: Configuration,
env: Environment,
mat: Materializer,
indexView: views.html.index,
restrictedView: views.html.restricted,
profileView: views.html.profile,
loginView: views.html.login,
restrictedForbidCookieView: views.html.restricted_forbid_cookie,
reloginView: views.html.relogin,
googleAuthenticationView: views.html.google_authentication,
signupView: views.html.signup,
widgetHelper: WidgetHelper,
webJarUtil: WebJarsUtil,
deadbolt: DeadboltActions,
auth: PlayAuthenticate,
userService: UserService,
authProvider: MyAuthProvider,
formContext: FormContext,
googleAuthService: GoogleAuthService,
recaptchaWidget: recaptcha.recaptchaWidget) extends InjectedController with I18nSupport {
import scala.concurrent._
import ExecutionContext.Implicits.global
//-------------------------------------------------------------------
// public
//-------------------------------------------------------------------
def index =
TryCookieAuthAction { implicit jContext =>
deadbolt.WithAuthRequest()() { implicit request =>
Future …Run Code Online (Sandbox Code Playgroud) 我目前正在使用ggplot2和annotate函数,文档中的示例如下.我有限的宽度来注释未知长度的文本,并需要一种自动方式将其包装在一些x_start和x_end值中.由于我不想更改字体大小,我还需要y根据引入的中断数量来移动值.有没有一种简单的方法来实现这一目标?
# install.packages(c("ggplot2"), dependencies = TRUE)
require(ggplot2)
p <- ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point()
p + annotate("text", x = 4, y = 25, label = "Some arbitrarily larger text")
Run Code Online (Sandbox Code Playgroud) 我写了以下代码来计算平均最小的子数组的最小起始索引(至少两个元素)。
但是,无法找到一种方法来使其更快,即O(n)或O(n log n)方法。我想不出任何方法来访问所有可能的子数组而不打O(n ^ 2):
#include <iostream>
#include <vector>
#include <limits>
using namespace std;
int solution(vector<int> &A) {
float previousAvg = 0.0;
float minAvg = numeric_limits<float>::max();
int minStartIx = numeric_limits<int>::max();
for (size_t i = 0; i < A.size(); ++i) {
for (size_t j = i + 1; j < A.size(); ++j) {
if (j == i + 1) {
previousAvg = (A[i] + A[j]) / 2.0;
cout << "avg(from=" << i << ", to=" << j << ") = …Run Code Online (Sandbox Code Playgroud)